Đây là lần thử đầu tiên của tôi cố gắng sử dụng WCF, vì vậy tôi đoán tôi đang làm điều gì đó không chính xác. Tôi đang cố gắng truy cập dịch vụ xà phòng được WSDL định nghĩa tại http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1?wsdl Tôi đang sử dụng VS2010 và tôi thêm Tham chiếu dịch vụ vào dự án của mình và trỏ đến URL đó (hoặc đúng hơn là cài đặt mạng nội bộ của nó), nhưng khi tôi sử dụng Trình duyệt đối tượng để xem dịch vụ, các hoạt động trên giao diện là TẤT CẢ các phương thức trống không có tham số. Dường như WCF không đọc chính xác loại thông tin. Nó không cung cấp cho các lỗi, nhưng nó đem lại cho tấn cảnh báo như sau:Tham chiếu dịch vụ WCF tạo ra các phương thức void từ WSDL
Cảnh báo cảnh báo công cụ 1 tùy chỉnh: Fault tên InvalidSessionException trong getPermissions hoạt động không thể nhập khẩu. WSDL không được hỗ trợ, phần thông báo lỗi phải tham chiếu đến phần tử . Thông báo lỗi này không tham chiếu một phần tử. Nếu bạn có quyền truy cập chỉnh sửa vào tài liệu WSDL, bạn có thể khắc phục sự cố bằng cách tham chiếu một phần tử lược đồ bằng thuộc tính 'yếu tố' . Z: \ TestLibrary \ Dịch vụ Tài liệu tham khảo \ Confluence \ Reference.svcmap 1 1 TestLibrary
Cảnh báo cảnh báo công cụ 2 tùy chỉnh: Các tùy chọn WSDL mở rộng yếu tố 'body' từ namespace 'http://schemas.xmlsoap.org/wsdl/soap/' đã không được xử lý. XPath: // wsdl: định nghĩa [@ targetNamespace = 'http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1']/wsdl: binding [@ name = 'confluenceservice-v1SoapBinding']/wsdl: operation [@ name = 'getPermissions']/wsdl: input [@ name = 'getPermissionsRequest'] Z: \ TestLibrary \ Service Tham khảo \ Confluence \ Reference.svcmap 1 1 TestLibrary
Tôi đang làm gì sai? Tôi đã thử thay đổi cấu hình của dịch vụ bằng cách kết hợp các tùy chọn, nhưng tôi không bao giờ có thể kéo các loại từ WSDL một cách chính xác. Tôi đã giả định rằng WCF sẽ tự động tạo ra các lớp kiểu cùng với giao diện dịch vụ. Tôi có nên tìm ra loại nào đang được sử dụng trong WSDL và tự tạo ra các lớp và các hợp đồng dữ liệu, hay nó là cái gì khác?
+1 để đề xuất svcutil.exe. – Bernard
Hmm ... có vẻ như nó đang hoạt động với svcutil.exe. Đó là thực sự kỳ lạ. Cảm ơn mặc dù. – StarKat99
Cũng làm việc cho tôi, nếu bạn đi theo Visual Studio Bắt đầu trình đơn có một shortctu cho dấu nhắc lệnh VS mà làm cho svcutil dễ truy cập, sau đó: 'svcutil.exe http: // somedomain.com/someapi.wsdl' – AaronLS