- ปกติเมื่อเราเขียน web service บนเครื่องตัวเอง สมมุติ เราสร้าง service ขึ้นม 1 web ในเว็บก็มีตัวอย่าง method อันหนึ่ง คือ HelloWorld เมื่อเราทำการทดสอบบนเครื่องตัวเอง เราก็จะเรียกhttp://localhost/service1/service.asmx
- ซึ่งจะมีปุ่ม invoke หรือ ถ้าเป็น method ที่มีการรับค่าก็จะขึ้น textbox ให้เราใส่ค่าลงไปก่อนกดปุ่ม Invoke
- แต่ถ้าเราเรียก service นั้นจากเครื่องอื่นก็จะขึ้นปะมาณนี้ซะงั้น ไม่มีปุ่ม Invoke ให้เราทดสอบ oper นั้นๆอ่ะ ตอนแรก งงอย่างแรง แต่พอทดสอบก็ถึงบางอ้อว่า เป็นเรื่องปกติ ของเค้าที่จะทดสอบได้เฉพาะ localhost ซะงั้น
- แสดงว่าไม่ใช่ปัญหา แต่ถ้าเราต้องการปรับแต่งให้ทดสอบ service บนเครื่อง client อื่นได้นั้นเราต้องปรับแต่งค่าใน web.config ซะหน่อย
Config
1. เปิด web.config ของ service ตัวนั้นขึ้นมา
2. เพิ่มตามนี้เข้าไปภายใต้ <system.web>
<webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
3. ผลลัพธ์ก็จะเป็นประมาณเนี๋ย
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
สรุป
- อันนี้เป็นเรื่องปกติเมื่อเราทำการเรียกทดสอบ service จาก client
- วิธีแก้เพิ่มแท๊ก <webservices> เข้าไปภายใต้ <system.web>
References: