Help and Support

文章编号: 216493 - 最后修改: 2006年11月21日 - 修订: 3.2

BUG: 您可能会收到 HTTP 405"方法不允许使用"当您浏览不指定文件名的默认文档

本页

展开全部 | 关闭全部

症状

当您浏览默认文档时, 您将收到以下错误信息之一:
HTTP 错误
405 方法不允许

请求行中指定该方法不允许请求所标识的资源。 请确保您有正确的 MIME 类型设置为所请求的资源。

请如果此问题仍然存在,与服务器的管理员联系。
不允许的 HTTP 405-资源
Internet Information Services
如果以下情况就会出现此问题:
  • 不要指定文件名。 是例如不要指定 http://Server/Web/。
  • 启用脚本对象模型 (SOM)。
  • DTC 事件调用。

原因

此问题仅在您使用 Microsoft Internet Information Services (IIS) 4.0 和 Microsoft Internet Information Services 5.0 时发生。 如果到运行 IIS 4.0 或 IIS 5.0 的服务器发送 POST 请求则会出现此问题,并且 POST 请求包含以斜杠 (/) 结尾的 URL。 IIS 返回 405 的错误消息而不是默认文档。 但是,如果 Verb 属性的方法值为 GET 或 HEAD,IIS 将返回默认文档。

解决方案

当启用 SOM,并调用一个 DTC 事件

为页启用 SOM 时, <form> 标记与以下内容类似的被插入页面。
<FORM name=thisForm METHOD=post>
				
由于没有操作属性指定在标记中,Netscape Navigator 和 Internet Explorer 尝试进行 HTTP POST 请求 URI 为"Web /"。 根据要在 HTTP RFC (RFC 2068) 这不是有效请求的 URI 为 POST 操作。

要变通解决此问题,使用下面的方法:
  • 从默认文档重定向到不同的文档。 在这种情况下 SOM 启用文档不再将默认文档。 新的默认文档只是将重定向到 SOM 启用文档中。 是例如如果 MyDefault.asp 名 SOM 启用文档为默认文档 (Default.asp) 将包含仅在以下 code.
      <%
      Response.Redirect "mydefault.asp"
      %>
    						
  • 使用客户端脚本可确保文件名包含在 URL 中。 如果您必须与默认文档中使用 SOM 启用文档,使用为第一个代码块 <head> 节中页的类似于以下代码块的客户端代码块。 此代码块执行下面的位置替换。
    <SCRIPT Language=JavaScript>
      var loc = document.location.toString()
      var loclen = loc.length
      
      //The name of the default document
      var filename = "default.asp"     
      var filelen = filename.length
      
      loc = loc.substring(loclen - filelen, loclen)
      
      if (loc.toUpperCase() != filename.toUpperCase()) { 
        location.replace(filename) 
      }
    </SCRIPT>
    						

远程脚本调用时

如果您使用 HTML 文档中 window.location.href 属性确定当前文档的路径,可能会出现此问题。 如果您启动远程脚本调用时执行此,远程脚本调用失败,原因在客户端页面文件名称。

要确定是否页可以使用远程脚本在客户端,验证 window.location.href 属性的值不会以一个斜杠标记结尾。 提供在客户端浏览器中的文件名和若要避免在的服务器上错误使用 Response.Redirect 方法重定向到另一页请求默认页面。 有关详细信息,请参阅第一个的解决方法,在""部分。

状态

Microsoft 已确认这是本文"适用于"一节中列出的在 Microsoft 产品。

此错误已在 Microsoft Internet Information Services 6.0 中纠正。

这篇文章中的信息适用于:
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
关键字:?
kbmt kbbug kbctrl KB216493 KbMtzh
机器翻译机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。
点击这里察看该文章的英文版: 216493? (http://support.microsoft.com/kb/216493/en-us/ )
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

文章翻译