文章編號: 216493 - 上次校閱: 2000年11月15日 - 版次: 1.0

BUG:預設文件發生 HTTP 405「Method Not Allowed」的錯誤

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文曾發行於 CHT216493
全部展開 | 全部摺疊

徵狀

未指明檔名瀏覽預設文件時 (例如,http://Server/Web/),如果有啟用「Scripting 物件模型」(SOM) 且有呼叫 DTC 事件,就會發生下面的錯誤:
HTTP Error
405 Method Not Allowed

The method specified in the Request Line is not allowed for the resource identified by the request.Please ensure that you have the proper MIME type set up for the resource you are requesting.

Please contact the server's administrator if this problem persists.

發生的原因

當頁面有啟用「Scripting 物件模型」,頁面會插入一個類似下面的 <FORM> 標記:
<FORM name=thisForm METHOD=post>

因為標記中未指定動作 (ACTION) 屬性,Netscape Navigator 和 Internet Explorer 都會接受 HTTP POST 至 URI "web/"。 根據HTTP RFC (RFC 2068),這不是 POST 作業有效的Request-URI。

解決方案

解決這個問題的方法有二:
  1. 將預設文件重新導向到別的文件。在這種情形中,啟用 SOM 的文件便不再是預設文件。新的預設文件會重新導向至啟用 SOM 的文件。例如,若啟用 SOM 的文件名為 MyDefault.asp,則預設文件 (Default.asp) 只會包含下面內容:
      <%
      Response.Redirect "mydefault.asp"
      %>
  2. 使用用戶端指令碼來確保檔名有包含在 URL 中。若必須以啟用 SOM 的文件為預設文件,則您可以將下列的用戶端程式碼放在<HEAD> 區段的最開始,來解決這個問題:
    <SCRIPT Language=JavaScript>
      var loc = document.location.toString()
      var loclen = loc.length
      
      var filename = "default.asp"     //name of default document
      var filelen = filename.length
      
      loc = loc.substring(loclen - filelen, loclen)
      
      if (loc.toUpperCase() != filename.toUpperCase()) { 
        location.replace(filename) 
      }
    </SCRIPT>

狀況說明

Microsoft 已確認本篇文章開頭所列產品確實有上述問題。

?考

191276? (http://support.microsoft.com/kb/191276/EN-US/ ) BUG:要求預設頁面時發生 "HTTP 405" 錯誤

?考

本文件是根據 Microsoft Knowledgebase 文件編號 Q216493 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

http://support.microsoft.com/support/kb/articles/Q216/4/93.asp (http://support.microsoft.com/kb/216493/en-us?ln=en-us&sd=gn&fr=0)

這篇文章中的資訊適用於:
  • Microsoft Visual InterDev 6.0 Standard Edition
關鍵字:?
kbbug kbvisid600 kbctrl kbasp kbgrpasp kbvisid600bug KB216493
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。