Web 應用程序問題(web.config 錯誤)HTTP 500.19 與 IIS7.5 和 ASP.NET v2
這讓整個團隊都發瘋了。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並安裝它。
或者你可以在這裡下載。