带有IIS7.5和ASP.NET v2的Web应用程序问题(Web.config错误)HTTP 500.19

带有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

这让整个团队都疯了。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记事本中查看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>