Asp.net

Web 應用程序問題(web.config 錯誤)HTTP 500.19 與 IIS7.5 和 ASP.NET v2

  • November 27, 2009

這讓整個團隊都發瘋了。IIS 或我們的 Web 伺服器肯定有一些簡單的錯誤配置部分,但是每次我們嘗試在 IIS 7.5 上執行 ASP.NET Web 應用程序時,我們都會收到以下錯誤…

這是完整的錯誤:

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration  
data for the page is invalid.

`Detailed Error Information` 
Module              IIS Web Core
Notification        Unknown
Handler             Not yet determined
Error Code          0x8007000d
Config Error
Config File         \\?\E:\wwwroot\web.config
Requested URL       http://localhost:80/Default.aspx
Physical Path 
Logon Method        Not yet determined
Logon User          Not yet determined
Config Source
  -1: 
   0: 

該機器正在執行Windows Server 2008 R2。我們正在使用Visual Studio 2008開發我們的 Web 應用程序。

根據微軟的說法,程式碼 8007000d 意味著我們的 web.config 中存在語法錯誤——除了項目在本地建構和執行良好。在 XML Notepad 中查看 web.config 也不會出現任何語法錯誤。我假設它一定是我的某種糟糕的配置……?

有誰知道我可以在哪裡找到有關該錯誤的更多資訊?EventViewer 中也沒有顯示任何內容:(

不知道還有什麼可以幫助提及…

非常感謝您的幫助。謝謝!

更新!- 在下面發布 WEB.CONFIG

好的,因為我在上面發布了原始問題,所以我已經在web.config中找到了導致錯誤的確切行。

這是行(它們出現在<System.webServer>標籤之間)…

   <httpHandlers>
       <remove verb="*" path="*.asmx"/>
       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   </httpHandlers>

注意:如果我刪除我仍然得到錯誤之間的行。<httpHandlers>我實際上必須刪除<httpHandlers>(以及中間的行)才能停止出現上述錯誤。

但是,一旦完成此操作,我就會收到一個的500.19 錯誤。謝天謝地,這一次 IIS 實際上告訴我 web.config 的哪一部分導致了問題……

   <handlers>
       <remove name="WebServiceHandlerFactory-Integrated"/>
       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   </handlers>

查看這些行,很明顯問題已在同一<system.webServer>標籤內進一步遷移到該<handlers>標籤。

新錯誤也更加明確,特別抱怨它無法辨識屬性“validate”(如上面第三行所示)。刪除此屬性然後會抱怨同一行沒有所需的“名稱”屬性。添加此屬性會引發ASP.NET錯誤…

無法載入文件或程序集“System.web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=f2cb5667dc123a56”或其依賴項之一。該系統找不到指定的文件。

顯然,我認為這些新錯誤是由於我一開始就刪除了**<httpHandlers>**標籤而引起的——它們顯然是應用程序需要的——所以問題仍然存在:為什麼這些標籤首先會在 IIS 中引發錯誤? ??

我是否需要在 IIS 上安裝一些東西才能使其與它們一起工作?

再次感謝任何幫助。

網頁配置

這是我們的web.Config的麻煩點……我希望這有助於有人找到我們的問題!

<system.Web>

<!-- stuff cut out -->

   <httpHandlers>
       <remove verb="*" path="*.asmx"/>
       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
   </httpHandlers>
   <httpModules>
       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   </httpModules>
</system.web>

<system.webServer>
   <validation validateIntegratedModeConfiguration="false"/>
   <modules>
       <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   </modules>
   <remove verb="*" path="*.asmx"/>
   <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   <handlers>
       <remove name="WebServiceHandlerFactory-Integrated"/>
       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
   </handlers>
</system.webServer>

啊哈!我解決了這個問題!天哪,對於像我這樣的 IIS 經驗有限的人來說,這簡直是一頭野獸。我真的以為我會花整個週末來修復它。

這是任何遇到這個邪惡問題的人的解決方案。

首先要注意:如果您希望這是您的解決方案,請確保您具有相同的錯誤程式碼 ( 0x8007000d ) 和配置源 ( -1: 0 :) 。如果沒有,這不是您的解決方案。

接下來要注意的是:AJAX 未正確安裝在您的 web.config 中!

按照本指南修復該問題:

http ://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx

然後,通過以下連結在生產伺服器上 安裝AJAX 1.0 擴展:

<http://www.asp.net/ajax/downloads/archive/>

更新微軟似乎已經刪除了上面的頁面:(

而已!

我有這些確切的症狀,我的問題與彼得的問題相似。正在新伺服器上設置現有項目。我的項目引用了 IIS7 URL 重寫模組,但尚未在新伺服器上安裝該模組。安裝它解決了我的問題。

您可以使用Microsoft Web 平台安裝程序來安裝它。執行它,選擇Products,在左側菜單中選擇Server並在列表中找到URL Rewrite並安裝它。

或者你可以在這裡下載。

引用自:https://stackoverflow.com/questions/1808680