visual studio 2015 IIS Express无法调试asp.net 4项目

时间:2017-10-31 19:33:13

标签: visual-studio-2015 iis-express application-pool

我正在使用VS 2013开展2个项目。最近我不得不切换到VS 2015并在同一个项目中打开这些项目。其中一个项目,即.net 4.5框架版本项目工作正常,我可以在IIS Express中进行调试。 但是,第二个项目 - .net 4.0项目 - 我无法使用IIS express进行调试。 当我尝试调试时出现500错误

  

无法读取配置部分'system.web.extensions',因为它缺少部分声明

我设法通过此stackoverflow链接The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration

的帮助解决了该特定错误

但我仍然无法调试,因为我收到了另一个错误

  

无法识别的属性'targetFramework'   在这一行:   在web.config中

我无法找到解决此问题的方法。有一些文章提出了IIS的解决方案,但没有为IIS Express提供解决方案。我无法理解为什么会发生这种情况,因为其他项目(.net 4.5)工作正常,所以这不是IIS Express框架配置的问题,而是与项目相关。从vs 2013到vs 2015,我没有对代码进行任何更改。在vs2015中,如何使用IIS express调试代码。最好不要对web.config进行更改,因为这在生产服务器上运行正常。

2 个答案:

答案 0 :(得分:0)

打开IIS并更改应用程序池设置。

选择正确的 .NET Framework版本,如下图所示:

enter image description here

答案 1 :(得分:0)

首先,从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>