Thursday, April 30, 2009

The test form is only available for requests from the local machine

Solved: http://support.microsoft.com/kb/819267

  • ปกติเมื่อเราเขียน 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:

No comments:

Post a Comment

Popular Posts