ฉันต้องการรับไฟล์ WSDL สำหรับบริการเว็บและสิ่งเดียวที่ฉันมีคือ URL ของมัน (เช่น webservice.example / foo)
หากฉันใช้ URL โดยตรงจะมีการส่งการตอบสนองข้อผิดพลาดเท่านั้น
ฉันต้องการรับไฟล์ WSDL สำหรับบริการเว็บและสิ่งเดียวที่ฉันมีคือ URL ของมัน (เช่น webservice.example / foo)
หากฉันใช้ URL โดยตรงจะมีการส่งการตอบสนองข้อผิดพลาดเท่านั้น
คำตอบ:
โดยการแก้ไข URL ภายหลังด้วย ?WSDL
หาก URL เป็นตัวอย่าง:
http://webservice.example:1234/foo
คุณใช้:
http://webservice.example:1234/foo?WSDL
และ wsdl จะถูกส่ง
WSDL
( Web Service Description Language
) จาก URL บริการเว็บเป็นไปได้จาก SOAP Web Services:
http://www.w3schools.com/xml/tempconvert.asmx
เพื่อรับ WSDL เรามีเพียงเพิ่ม?WSDL
ตัวอย่างเช่น:
เป็นไปได้เพียงอย่างเดียวที่จะได้รับ WSDL หากมีการกำหนดค่าบริการเว็บให้ส่งมอบ ดังนั้นคุณต้องระบุ serviceBehavior และเปิดใช้งาน httpGetEnabled:
<serviceBehaviors>
<behavior name="BindingBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
ในกรณีที่สามารถเข้าถึงบริการเว็บได้ผ่าน https เท่านั้นคุณต้องเปิดใช้ http s GetEnabled แทน httpGetEnabled
ในการดาวน์โหลด wsdl จาก url โดยใช้Developer Command Prompt สำหรับ Visual Studioให้เรียกใช้ในโหมดผู้ดูแลระบบและป้อนคำสั่งต่อไปนี้:
svcutil /t:metadata http://[your-service-url-here]
ตอนนี้คุณสามารถใช้ wsdl ที่ดาวน์โหลดมาในโปรเจ็กต์ของคุณได้ตามที่เห็นสมควร