visual studio 2015 IIS Express 无法调试 asp.net 4 项目
visual studio 2015 IIS Express cannot debug asp.net 4 project
我正在使用 VS 2013 处理 2 个项目。最近我不得不切换到 VS 2015 并在同一环境中打开这些项目。 2 个项目之一,它是一个 .net 4.5 框架版本项目,工作正常,我可以在 IIS Express 中进行调试。
但是,第二个项目 - .net 4.0 项目 - 我无法使用 IIS Express 进行调试。
当我尝试调试时出现 500 错误
The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
在这个 Whosebug link The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
的帮助下,我设法解决了那个特定的错误
但我仍然无法调试,因为我遇到了另一个错误
Unrecognized attribute 'targetFramework'
at this line :
in web.config
我找不到解决这个问题的方法。有一些文章建议针对 IIS 的解决方案,但不适用于 IIS Express。我无法理解为什么会发生这种情况,因为另一个项目 (.net 4.5) 工作正常,所以这不是 IIS 快速框架配置的问题,而是与项目相关的。从 vs 2013 移动到 vs 2015 时,我没有对代码进行任何更改。在 vs2015 中如何使用 IIS express 调试代码。最好不要更改 web.config,因为这在生产服务器上运行良好。
打开您的 IIS 并更改您的应用程序池设置。
Select右.NET Framework版本如下图:
首先,您从 web.config`
中的故障行中删除 targetFramework
IIS Express 配置存储在每个解决方案的 XML 文件中。
在该文件中,您可以找到 <applicationPools>
部分并设置其 managedRuntimeVersion
属性。
此文件位于您的“$(SolutionFolder)\.vs\applicationhost.config”中。请注意,默认情况下隐藏“.vs”文件夹。
文件结构类似于:
<configuration>
.
.
.
<system.applicationHost>
<applicationPools>
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
<applicationPoolDefaults managedRuntimeLoader="v4.0">
<processModel />
</applicationPoolDefaults>
</applicationPools>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
.
.
.
</configuration>
我正在使用 VS 2013 处理 2 个项目。最近我不得不切换到 VS 2015 并在同一环境中打开这些项目。 2 个项目之一,它是一个 .net 4.5 框架版本项目,工作正常,我可以在 IIS Express 中进行调试。 但是,第二个项目 - .net 4.0 项目 - 我无法使用 IIS Express 进行调试。 当我尝试调试时出现 500 错误
The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
在这个 Whosebug link The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
的帮助下,我设法解决了那个特定的错误但我仍然无法调试,因为我遇到了另一个错误
Unrecognized attribute 'targetFramework' at this line : in web.config
我找不到解决这个问题的方法。有一些文章建议针对 IIS 的解决方案,但不适用于 IIS Express。我无法理解为什么会发生这种情况,因为另一个项目 (.net 4.5) 工作正常,所以这不是 IIS 快速框架配置的问题,而是与项目相关的。从 vs 2013 移动到 vs 2015 时,我没有对代码进行任何更改。在 vs2015 中如何使用 IIS express 调试代码。最好不要更改 web.config,因为这在生产服务器上运行良好。
打开您的 IIS 并更改您的应用程序池设置。
Select右.NET Framework版本如下图:
首先,您从 web.config`
中的故障行中删除targetFramework
IIS Express 配置存储在每个解决方案的 XML 文件中。
在该文件中,您可以找到 <applicationPools>
部分并设置其 managedRuntimeVersion
属性。
此文件位于您的“$(SolutionFolder)\.vs\applicationhost.config”中。请注意,默认情况下隐藏“.vs”文件夹。 文件结构类似于:
<configuration>
.
.
.
<system.applicationHost>
<applicationPools>
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
<applicationPoolDefaults managedRuntimeLoader="v4.0">
<processModel />
</applicationPoolDefaults>
</applicationPools>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
.
.
.
</configuration>