ข้อมูล: ปิดการใช้ GET HTTP และ HTTP POST มีงาน โดยค่าเริ่มต้น

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 819267 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้กล่าวถึงการเปลี่ยนแปลงใน.NET Framework 1.1 ที่ส่งผลต่อการhttp รับวิธีการ และการลงรายการบัญชี httpเมธอดบนเว็บเซิร์ฟเวอร์ นอกจากนี้บทความนี้อธิบายการแก้ไขปัญหาสำหรับฟังก์ชันการทำงานนี้ใหม่

ข้อมูลเพิ่มเติม

เชื่อมต่อ.NET เว็บเซอร์วิสสนับสนุน HTTP GET, HTTP POST และโพรโทคอล SOAP โดยค่าเริ่มต้น ใน.NET Framework 1.0 โพรโทคอลสามทั้งหมดจะเปิดใช้งาน ปิดการใช้เป็นค่าเริ่มต้น ใน.NET Framework 1.1, HTTP GET และ HTTP POST ทั้งสองงาน ทั้งนี้เป็นเหตุผลด้านความปลอดภัยของระบบ

โปรแกรมประยุกต์ที่ใช้ HTTP GET หรือ HTTP POST เพื่อเรียกใช้บริการเว็บ ล้มเหลวเมื่อการบริการเว็บมีการปรับรุ่นเป็น.NET Framework 1.1 โปรแกรมประยุกต์เหล่านี้ได้รับการ
System.Net.WebException
ข้อความแสดงข้อผิดพลาดที่ระบุรูปแบบคำร้องขอไม่รู้จัก

โปรดสังเกตว่า รูปแบบ HTML โดยใช้การทดสอบใช้ HTTP POST และดังนั้น รูปแบบ HTML โดยใช้การทดสอบไม่ทำงานใน.NET Framework 1.1 นี้เป็นจริงยกเว้นใน localhost ตามที่บันทึกไว้ด้านล่าง

ใน.NET Framework 1.1 กำหนดโพรโทคอลใหม่ที่ชื่อHttpPostLocalhost. โดยค่าเริ่มต้น โพรโทคอลนี้ใหม่ถูกใช้ โพรโทคอลนี้อนุญาตให้ invoking บริการเว็บที่ใช้การร้องขอ HTTP POST จากโปรแกรมประยุกต์บนคอมพิวเตอร์เครื่องเดียวกัน นี้เป็นจริง โดยใช้ POST URLhttp://localhostไม่http://hostname. ซึ่งช่วยให้นักพัฒนาบริการเว็บใช้รูปแบบ HTML โดยใช้การทดสอบเพื่อเรียกการบริการเว็บจากคอมพิวเตอร์เครื่องเดียวกันที่อยู่ของเว็บเซอร์วิส

เมื่อคุณพยายามเข้าถึงเว็บเซอร์วิสจากคอมพิวเตอร์ระยะไกลที่ คุณไม่เห็นปุ่ม Invoke แล้ว คุณได้รับข้อความแสดงข้อความแสดงข้อผิดพลาดต่อไปนี้:

แบบฟอร์มการทดสอบได้เฉพาะสำหรับการร้องขอจากภายในเครื่อง

การแก้ปัญหา

HTTP GET และ HTTP POST อาจถูกเปิดใช้งาน โดยการแก้ไข Web.config แฟ้มสำหรับ vroot ที่อยู่ของเว็บเซอร์วิสได้ การกำหนดค่าต่อไปนี้ช่วยให้ทั้ง HTTP GET และ HTTP POST:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
อีกวิธีหนึ่งคือ คุณสามารถเปิดใช้งานโพรโทคอลเหล่านี้สำหรับเว็บเซอร์วิสทั้งหมดบนคอมพิวเตอร์ โดยการแก้ไขส่วน <protocols>ใน Machine.config ตัวอย่างต่อไปนี้ช่วย HTTP GET, HTTP POST และยัง SOAP และ HTTP POST จาก localhost: </protocols>
<protocols>
	<add name="HttpSoap"/>
	<add name="HttpPost"/>
	<add name="HttpGet"/> 
	<add name="HttpPostLocalhost"/>
      <!-- Documentation enables the documentation/test pages -->
	<add name="Documentation"/>
</protocols>

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าคอนฟิกบริการเว็บ ให้ดู<protocols></protocols>องค์ประกอบในเอกสารประกอบของ.NET Framework 1.1:.aspx http://msdn2.microsoft.com/en-us/library/ccbk8w5h (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 819267 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft .NET Framework 1.1
Keywords: 
kberrmsg kbwebclasses kbwebserver kbhttp kbhtml kbinfo kbmt KB819267 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:819267

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com