INFO:默认情况下禁用 HTTP GET 和 HTTP POST

文章翻译 文章翻译
文章编号: 819267 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文讨论 .NET Framework 1.1 中影响 Web 服务器上的 HTTP GET 方法和 HTTP POST 方法的变更。本文还针对这一新功能提供了解决方法。

更多信息

连接 .NET 的 Web 服务支持 HTTP GET、HTTP POST 和 SOAP 协议。在 .NET Framework 1.0 中,默认情况下所有这三种协议都会被启用。但在 .NET Framework 1.1 中,默认情况下 HTTP GET 和 HTTP POST 同时被禁用。这是出于安全方面的考虑。

当 Web 服务升级到 .NET Framework 1.1 后,应用程序使用 HTTP GET 或 HTTP POST 调用 Web 服务时会失败。这些应用程序会收到以下一条错误信息
System.Net.WebException
指出无法识别请求格式。

请注意,基于 HTML 的测试窗体使用 HTTP POST,因此,基于 HTML 的测试窗体在 .NET Framework 1.1 中不适用。除非该窗体在下面提到的本地主机上,否则情况都是如此。

.NET Framework 1.1 定义了一个名为 HttpPostLocalhost 的新协议。默认情况下,这个新协议处于启用状态。该协议允许从与使用 HTTP POST 请求的 Web 服务位于同一计算机上的应用程序调用该服务。允许的前提条件是:POST URL 使用 http://localhost,而不是 http://hostname。这使得 Web 服务开发人员可以使用基于 HTML 的测试窗体,从 Web 服务所在的同一计算机调用该 Web 服务。

当您尝试从远程计算机访问 Web 服务时,不会显示“调用”按钮。并且,您会收到以下错误信息:

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

替代方法

通过编辑 Web 服务所在的 vroot 的 Web.config 文件,可以启用 HTTP GET 和 HTTP POST。以下配置同时启用了 HTTP GET 和 HTTP POST:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
或者,可以通过编辑 Machine.config 中的 <protocols> 节为计算机上的所有 Web 服务启用这些协议。下面的示例启用了 HTTP GET、HTTP POST 及 SOAP,此外还从本地主机启用了 HTTP POST:
<protocols>
	<add name="HttpSoap"/>
	<add name="HttpPost"/>
	<add name="HttpGet"/> 
	<add name="HttpPostLocalhost"/>
      <!-- Documentation enables the documentation/test pages -->
	<add name="Documentation"/>
</protocols>

参考

有关 Web 服务配置的更多信息,请参阅 .NET Framework 1.1 文档中的 <protocols> 元素说明: http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx

属性

文章编号: 819267 - 最后修改: 2007年5月16日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft .NET Framework 1.1
关键字:?
kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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