ฉันต้องการใช้บริการเว็บ พวกเขาส่งไฟล์ WSDL มาให้ฉัน ฉันควรทำอย่างไรเพื่อเพิ่มลงในเว็บไซต์ของฉันและเริ่มใช้เป็นพร็อกซี (ถ้าฉันวางไว้ใน Virtual Directory จะสามารถค้นพบได้ แต่จะให้การเชื่อมต่อกับบริการเว็บจริงหรือไม่)
ฉันต้องการใช้บริการเว็บ พวกเขาส่งไฟล์ WSDL มาให้ฉัน ฉันควรทำอย่างไรเพื่อเพิ่มลงในเว็บไซต์ของฉันและเริ่มใช้เป็นพร็อกซี (ถ้าฉันวางไว้ใน Virtual Directory จะสามารถค้นพบได้ แต่จะให้การเชื่อมต่อกับบริการเว็บจริงหรือไม่)
คำตอบ:
ฉันจะเปิดใช้ Visual Studio สร้างโครงการเว็บ (หรือแอปคอนโซล - ไม่สำคัญ)
สำหรับ. Net Standard:
หากไม่มีข้อผิดพลาดคุณควรตั้งค่า NameSpace ที่คุณต้องการใช้เพื่อเข้าถึงบริการและจะสร้างขึ้นให้คุณ
สำหรับ. Net Core
วิธีการใด ๆ ข้างต้นจะสร้างไคลเอนต์ WCF ที่เรียบง่ายและเป็นพื้นฐานให้คุณใช้ คุณควรพบคลาส "YourservicenameClient" ในโค้ดที่สร้างขึ้น
เพื่อวัตถุประสงค์ในการอ้างอิงไฟล์ cs ที่สร้างขึ้นสามารถพบได้ใน Obj / debug (หรือ release) / XsdGeneratedCode ของคุณและคุณยังสามารถค้นหา dlls ในโฟลเดอร์ TempPE ได้
บริการที่สร้างขึ้นควรมีวิธีการสำหรับแต่ละวิธีที่กำหนดไว้ในสัญญา WSDL
สร้างอินสแตนซ์ไคลเอนต์และเรียกใช้วิธีการที่คุณต้องการโทร - นั่นคือทั้งหมดที่มี!
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
หากคุณต้องการระบุ URL ระยะไกล (ไม่ใช้ URL ที่สร้างขึ้นโดยค่าเริ่มต้น) คุณสามารถทำได้อย่างง่ายดายในตัวสร้างของพร็อกซีไคลเอ็นต์:
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
configName
ชื่อของปลายทางที่จะใช้อยู่ที่ไหน(คุณจะใช้การตั้งค่าทั้งหมดยกเว้น URL) และremoteURL
เป็นสตริงที่แสดงถึง URL ที่จะเชื่อมต่อ (แทนค่าที่อยู่ในการกำหนดค่า)
ในสตูดิโอภาพ
หากไม่มีข้อผิดพลาดคุณควรจะเห็นการอ้างอิงบริการในเบราว์เซอร์ออบเจ็กต์และวิธีการที่เกี่ยวข้องทั้งหมด
ใช้ยูทิลิตี้ WSDL.EXEเพื่อสร้างพร็อกซีบริการเว็บจาก WSDL
คุณจะได้รับซอร์สไฟล์ C # ขนาดยาวที่มีคลาสที่มีลักษณะดังนี้:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
...
}
ในโค้ดที่ใช้บริการบนเว็บฝั่งไคลเอ็นต์ของคุณ:
หากคุณต้องการเพิ่มการอ้างอิง wsdl ในโครงการ. Net Core จะไม่มีตัวเลือก "เพิ่มการอ้างอิงเว็บ"
ในการเพิ่มการอ้างอิง WSDL ไปที่การแก้ไขปัญหา Explorer คลิกขวาที่อ้างอิงโครงการรายการและจากนั้นคลิกที่เพิ่มตัวเลือกการเชื่อมต่อบริการ
จากนั้นคลิก 'Microsoft WCF Web Service Reference':
ป้อนเส้นทางไฟล์ลงในกล่องข้อความ URI และนำเข้า WSDL:
มันจะสร้างไคลเอนต์ WCF ที่เรียบง่ายและพื้นฐานมากและคุณจะใช้มันดังนี้:
YourServiceClient client = new YourServiceClient();
client.DoSomething();