【发布时间】:2010-12-20 23:44:36
【问题描述】:
这让整个团队都发疯了。 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>(以及中间的行)才能停止出现上述错误。
然而,一旦我这样做了,我就会得到一个 new 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, 版本=1.0.61025.0,文化=中性, PublicKeyToken=f2cb5667dc123a56' 或 它的依赖项之一。系统 找不到指定的文件。
显然,我认为这些新错误是由于我一开始就删除了 <httpHandlers> 标记而引起的——它们显然是应用程序所需要的——所以问题仍然存在:为什么要这些标签首先会在 IIS 中引发错误???
我是否需要在 IIS 上安装一些东西才能使其与它们一起工作?
再次感谢您的帮助。
WEB.CONFIG
这是我们的 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>
【问题讨论】:
-
删除
web.config中的所有cmets。它们以<!--开头,以-->结尾。 -
哇。这与
有关 -
刚刚替换了我的 web.config 中的 httphandlers 和 httpmodules 部分,一切正常。谢谢!
-
您的建议使我开始随机删除 web.config 的部分,直到错误发生变化,这帮助我了解了 URL ReWrite 没有正确安装(必须重新安装)的事实,所以 部分导致了 500.19。
-
仅供参考,我也遇到了这个错误......这只是因为.Net Framework 没有安装在服务器上。
标签: asp.net iis web-applications web-config iis-7.5