Tôi muốn lấy tệp WSDL cho một dịch vụ web và thứ duy nhất tôi có là URL của nó (như webservice.example / foo).
Nếu tôi sử dụng trực tiếp URL, chỉ một phản hồi lỗi được gửi.
Câu trả lời:
Bằng cách postfix URL với ?WSDL
Nếu URL là ví dụ:
http://webservice.example:1234/foo
Bạn dùng:
http://webservice.example:1234/foo?WSDL
Và wsdl sẽ được giao.
WSDL
( Web Service Description Language
) từ URL Dịch vụ Web.Có thể thực hiện được từ Dịch vụ Web SOAP:
http://www.w3schools.com/xml/tempconvert.asmx
để lấy WSDL, chúng tôi chỉ phải thêm vào ?WSDL
, ví dụ:
Chỉ có thể lấy WSDL nếu dịch vụ web được định cấu hình để phân phối nó. Vì vậy, bạn phải chỉ định một serviceBehavior và bật httpGetEnabled:
<serviceBehaviors>
<behavior name="BindingBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
Trong trường hợp dịch vụ web chỉ có thể truy cập qua https, bạn phải bật GetEnabled cho http s thay vì httpGetEnabled.
Để tải xuống wsdl từ url bằng cách sử dụng Dấu nhắc lệnh dành cho nhà phát triển cho Visual Studio , hãy chạy nó ở chế độ Quản trị viên và nhập lệnh sau:
svcutil /t:metadata http://[your-service-url-here]
Bây giờ bạn có thể sử dụng wsdl đã tải xuống trong dự án của mình khi bạn thấy phù hợp.