我注意到我每天使用的一个Web应用程序今天早些时候运行的问题。代码编译正常,当应用程序开始运行时,我收到HTTP响应500.19 - 内部服务器错误。
Detailed Error Information:
Module IIS Web Core
Notification Unknown
Handler Not yet determined
Error Code 0x80070032
Config Error The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
Config File \\?\C:\TFS\Source Control\ManagementSystem\Prod\MS\App\web.config
Requested URL http://localhost:40095/Ship/AddEditOrder.aspx
Physical Path
Logon Method Not yet determined
Logon User Not yet determined
Request Tracing Directory C:\Users\{User}\Documents\IISExpress\TraceLogFiles\
在此下方,我看到以下内容:
更多信息:
读取时出现此错误 Web服务器或Web应用程序的配置文件。在一些 例如,事件日志可能包含有关原因的更多信息 这个错误。
如果您看到文字“有重复 'system.web.extensions / scripting / scriptResourceHandler'部分 定义“,此错误是因为您正在运行.NET Framework .NET Framework中基于3.5的应用程序4.如果您运行的是WebMatrix,要解决此问题,请转到“设置”节点以设置 .NET Framework版本为“.NET 2”。您也可以删除额外的 来自web.config文件的部分。
这听起来像IIS的问题,我已经检查了这个问题的建议解决方案如下:
上一篇文章看起来最有希望,但我无法找到我试图运行的应用程序的任何痕迹。
答案 0 :(得分:0)
我终于解决了这个问题!
该消息有点误导,但在将这些文章与其中一些文章联系起来后,我提出了以下解决方案。我的本地解决方案似乎已将其自己的IIS设置保存到我们的.Net Framework从3.5升级到4.0的特定“站点” 之前 。换句话说,IIS条目有一个陈旧的应用程序池框架声明。
其中许多文章都提到了更改IIS Express设置的需求,这些设置通常会指向基于用户的文件夹目录,例如
C:\用户\用户\文档\ IISExpress \配置\对ApplicationHost.config
但正如我在原帖中所提到的,我的任何项目都没有遗留下来。
我一直在挖掘,发现解决方案本身实际上也保留了这些设置的本地副本!您可以在“。vs”文件夹中找到本地项目解决方案附近的文件!
示例:的
C:\ TFS \ Source Control \ WMS \ Prod \ WMS.vs \ config \ applicationhost.config
从那里我追踪了有问题的网站
<site name="WHSMGMTApp" id="3">
<application path="/" applicationPool="Clr2IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\TFS\Source Control\WMS\Prod\WMS\WHSMGMTApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:40095:localhost" />
</bindings>
</site>
我导航到我的网站的应用程序池节点,发现它仍然在.Net版本2.0上,但它必须是4.0。
查找“应用程序池”节点并找到您的应用程序池
就我而言,它是 Clr2IntegratedAppPool
<applicationPools>
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
</applicationPools>
我将managedRuntimeVersion从“v2.0”更改为“v4.0”并且繁荣,它有效!
这似乎是一个非常小众的场景,您已经在解决方案中升级了.Net Framework并且您已经针对特定的代码分支具有本地IIS Express条目。 (这解释了为什么我的QA分支正在工作而不是我的Prod分支,因为它们在.config文件中有单独的条目)
对 为什么 视觉工作室需要它自己的.config版本的任何见解都是受欢迎的!