带有IIS7.5和ASP.NET v2的Web应用程序问题(Web.config错误)HTTP 500.19
这让整个团队都疯了。IIS或我们的Web服务器中肯定存在一些简单的错误配置部分,但每次尝试在IIS 7.5上运行ASP.NET Web应用程序时,我们都会遇到以下错误 下面是完整的错误:带有IIS7.5和ASP.NET v2的Web应用程序问题(Web.config错误)HTTP 500.19,asp.net,iis,web-applications,web-config,iis-7.5,Asp.net,Iis,Web Applications,Web Config,Iis 7.5,这让整个团队都疯了。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. `Detaile
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记事本中查看web.config也不会带来任何语法错误。我想这一定是我的配置不好
有人知道我在哪里可以找到关于错误的更多信息吗?EventViewer中未显示任何内容,或者:(
我不知道还有什么可以说的
非常感谢您的帮助。谢谢
更新!-发布在下面的WEB.CONFIG
好的,既然我发布了上面的原始问题,我已经在web.config中找到了导致错误的精确行
以下是行(它们出现在
标记之间)
注意:如果我删除
之间的行,仍然会出现错误。我必须删除
(以及中间的行)才能停止出现上述错误
然而,一旦我这样做了,我会得到一个新的500.19错误
<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>
从这些行可以清楚地看出,问题已经在同一个
标记中进一步转移到
标记中
新的错误也更加明确,特别是抱怨它无法识别属性“validate”(如上面第三行所示)。删除此属性会让它抱怨同一行没有所需的“name”属性。添加此属性会出现ASP.NET错误
无法加载文件或程序集
'System.web.Extensions,
版本=1.0.61025.0,区域性=中性,
PublicKeyToken=f2cb5667dc123a56'或
它的一个依赖项。系统
找不到指定的文件
显然,我认为这些新错误是由于我首先删除了
标记而产生的——它们显然是应用程序所需要的——因此问题仍然存在:为什么这些标记首先会在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>
啊哈!我解决了这个问题!天哪,对于像我这样的IIS经验有限的人来说,这简直是个怪兽。我真的以为我整个周末都要花时间来修复它 这里有一个解决任何其他人谁曾经来过这个邪恶的问题 首先要注意的是:如果您希望这是您的解决方案,请确保您有相同的错误代码(0x8007000d)和配置源(-1:0:)。否则,这不是您的解决方案 接下来要注意的是:您的web.config中没有正确安装AJAX! 按照本指南进行修复:
然后,从以下链接在生产服务器上安装AJAX 1.0扩展:
更新:Microsoft似乎已删除上述页面:(
就是这样!这可能有关系,也可能没有关系……我从上面提到的同一个错误开始,开始谷歌搜索,做出更改,得到新的错误,无休止的循环 由于该错误而导致我更改的是服务器管理部分下IIS管理器中的功能委派。很抱歉,我记不起更改了哪一个,但谷歌搜索可能会有所帮助 这让我越过了第一个错误,进入了一个全新的错误流,有些完全是荒谬的。(我在虚拟目录下运行时会遇到一个错误,将其转换为应用程序会产生另一个错误,etec等)。最终解决这一系列错误的是: IIS管理器、应用程序池、DefaultAppPool、启用32位应用程序=True 我在一个32位的WindowsXP机器上启动了这个应用程序,现在我在一个64位的Windows7机器上运行它
因此,希望这能帮助其他人。我有这些确切的症状,我的问题与Peter的问题类似。我正在新服务器上设置一个现有项目。我的项目引用了IIS7 URL重写模块,但该模块尚未安装在新服务器上。安装它解决了我的问题 您可以使用Microsoft Web平台安装程序安装它。执行它,选择“产品”,在左侧菜单中选择“服务器”,然后在列表中找到“URL重写”,然后安装它
或者您可以下载它。在web.config文件中注释以下行
<modules>
<!--<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</handlers>
这会起作用。我只是添加了一个answear,因为我花了几个小时试图解决相同的症状(但不同的问题):
可能的原因是64位应用程序池中存在x86 dll,解决方案是在应用程序池设置中启用32位应用程序。My IIS 7.5不理解web.config中的标记 在VS2010中,该标记也要加下划线。请检查配置文件是否准确,以查找所有带下划线的标记。
我把它放在评论里,错误就消失了。在一台新机器上与它搏斗了一天之后,我发现了以下链接
<modules>
<!--<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</handlers>
aspnet_regiis.exe -i
start /w pkgmgr.exe /uu:IIS-WebServerRole;WAS-WindowsActivationService
Config File \\?\E:\wwwroot\web.config
c:\users\user\documents\visual studio 2013\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2015\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2017\projects\WebProject1\WebProject1.web\web.config
etc..
<rewrite>
<rules>
<clear />
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^.*spvitals\.com$" />
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>