2009-06-04 34 views

Trả lời

105

Sử dụng svcutil, bạn có thể tạo giao diện và lớp (hợp đồng dữ liệu) từ WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic) 

Điều này sẽ tạo một tệp có tên "your.cs" trong C# (hoặc "your.vb" trong VB.NET) chứa tất cả các mục cần thiết.

Bây giờ, bạn cần tạo lớp "MyService" sẽ triển khai giao diện dịch vụ (IServiceInterface) - hoặc một số giao diện dịch vụ - và đây là trường hợp máy chủ của bạn.

Giờ đây, một lớp học không thực sự hữu ích - bạn cần phải lưu trữ dịch vụ ở đâu đó. Bạn cần tạo một cá thể ServiceHost của riêng bạn để lưu trữ dịch vụ, cấu hình các điểm cuối và vv - hoặc bạn có thể lưu trữ dịch vụ của bạn bên trong IIS.

+0

Tôi đã thử cùng với svcutil, nhưng không thực sự thành công với lỗi. Bạn có thể có một số gợi ý cho vấn đề của tôi: http://goo.gl/dlen – Juri

+11

"svcutil your.wsdl your.xsd" là những gì tôi cần để tôi làm việc! cảm ơn! –

+2

Xem câu trả lời SO này để biết thông tin về tải xuống wsdl và xsd theo định dạng mà svcutil sẽ thích. http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service –

7

Bạn có thể sử dụng svcutil.exe để tạo mã máy khách. Điều này bao gồm định nghĩa hợp đồng dịch vụ và mọi hợp đồng dữ liệu và các hợp đồng lỗi được yêu cầu.

Sau đó, chỉ cần xóa mã máy khách: các lớp triển khai hợp đồng dịch vụ. Sau đó, bạn sẽ cần phải thực hiện chúng cho mình, trong dịch vụ của bạn.

39

Có những tài nguyên tốt ngoài kia nếu bạn biết những gì cần tìm kiếm. Hãy thử "Hợp đồng đầu tiên" và WCF. hoặc "WSDL đầu tiên" và WCF.

Đây là một lựa chọn:

+2

Đối với bất kỳ ai theo dõi * Tổng quan cơ bản về bài viết WSDL-First *: Hãy lưu ý nhận xét mà nói về ' Trả lờiHành động = "*" '. Có vẻ như bạn cần phải loại bỏ điều đó. Có một lời giải thích từ nhận xét đó đưa ra lý luận, nhưng tôi đã không đọc nó. –

28

Sử dụng svcutil. exe với chuyển đổi /sc thành gen xóa các hợp đồng WCF. Điều này sẽ tạo một tệp mã mà bạn có thể thêm vào dự án của mình. Nó sẽ chứa tất cả các giao diện và kiểu dữ liệu bạn cần để tạo ra dịch vụ của bạn. Thay đổi vị trí đầu ra bằng cách sử dụng công tắc /o hoặc bạn có thể tìm tệp trong thư mục nơi bạn chạy svcutil.exe. Ngôn ngữ mặc định là C# nhưng tôi nghĩ rằng (tôi chưa bao giờ thử nó), bạn sẽ có thể thay đổi điều này bằng cách sử dụng /l:vb.

svcutil /sc "WSDL file path" 

Nếu WSDL của bạn có bất kỳ tệp XSD hỗ trợ nào vượt qua các đối số đó dưới dạng đối số sau WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path" 

Sau đó, tạo một lớp mới là dịch vụ của bạn và triển khai giao diện hợp đồng mà bạn vừa tạo.

+0

Xem thêm: [MSDN về cách triển khai WSDL của người khác] (https://msdn.microsoft.com/en-us/library/ms735109 (v = vs.110) .aspx) – sq33G

1

Sử dụng "Add Service Reference" công cụ trong Visual Studio, bạn có thể chèn địa chỉ như:

file: ///path/to/wsdl/file.wsdl

Và nó sẽ tải đúng cách.

Các vấn đề liên quan