Asp.net

Asp.net ,asp.net,Asp.net,用于分层, 只需在web.config文件中更改targetFramework的版本,其他内容无需更改。我使用的是IIS Express,而不是IIS 问题出现在位于{solution\u folder}\.vs\config\applicationhost.config的applicationhost.config文件中 其中一个应用程序池项的managedRuntimeVersion值为“v2.0”。我把它改为“v4.0”,它工作正常 我相当肯定根本原因是我最近安装的NuGet软件包之一

用于分层,
只需在web.config文件中更改targetFramework的版本,其他内容无需更改。

我使用的是IIS Express,而不是IIS

问题出现在位于{solution\u folder}\.vs\config\applicationhost.config的applicationhost.config文件中

其中一个应用程序池项的managedRuntimeVersion值为“v2.0”。我把它改为“v4.0”,它工作正常

我相当肯定根本原因是我最近安装的NuGet软件包之一

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>

在发布第一个web服务时,我也面临着同样的问题。我只是这样做就解决了这个问题:

  • 开放IIS

  • 单击应用程序池

  • 右键单击DefaultAppPool=>设置应用程序池默认值=>将.Net版本更改为V4.0。(您也可以更改 应用程序的.Net Framework版本)


  • 希望,它会起作用。

    对于IIS 7,请根据给定的图片进行尝试。。。如果对你有用的话,请记下我的帮助


    在本地运行指向.Net Framework 4.7.1的应用程序时,我也遇到了同样的问题。 错误是“无法识别的属性TargetFrameWork”,如下所示。

    但是上面的答案对我都没有帮助。最后,当我将我的当前端口(1413)号更改为某个其他值(60179)时,如下图所示,它对我来说运行良好。但我不确定这背后的实际原因,但它起了作用


    我也遇到了同样的问题,我找到了一个很好的poweshell脚本,可以同时更新你的所有应用程序池:


    请确保在顶部设置变量。以下两个步骤将强制刷新Visual Studio和IIS Express缓存,通常会解决类似问题:

  • 只需将Project framework从4+切换到.Net framework 3.5并运行它即可
  • 如果它成功运行,您可以将它恢复到所需的4+目标框架,并查看它是否可能再次工作

  • 为当地发展更改港口号帮助我感谢@Rinay Ashokan。 我已经完成了所有的故障排除,最后发现项目配置存储在iisexpress中的端口号。

    如果您使用的是IIS Express,它会为您运行的每个站点创建一个新配置,并绑定到url(主机/端口)。但是,当它使用同一端口打开新项目时,不会刷新配置

    这意味着,如果您有一个使用CLR 2.0(.NET Framework 2.0至3.5)的项目在某个端口上运行,然后您在同一端口上使用CLR 4(.NET Framework 4.x+)打开另一个项目,则新项目将尝试使用CLR 2运行,但该操作失败,甚至无法识别“targetFramework”属性



    一种解决方案是清理IIS Express站点,但最简单的方法是更改端口,以便IIS Express将为您的项目创建一个新站点(使用CLR 4)。

    它没有显示哪个文件包含该站点或其位置吗?它以前是在4.0之前的framework上构建的吗?此问题可通过4.0.3解决。@请告诉我,如果这解决了您的问题,我可能会尝试获取此错误的规范问题/答案,并关闭复制。谢谢。当我尝试在Win 7 x64上安装KB2599651(64位下载)时,我收到错误消息,它“不适用或被计算机上的其他条件阻止”。我与OP有相同的错误,安装了framework 4.0,并已向IIS注册,并选择它作为应用程序池。您是否在比项目开发时更旧的visual studio版本中打开?或者它是在Webmatrix中开发的,然后在较旧的visual studio中打开的?谢谢,这解决了问题,请查看此链接以获得逐步指南,将您的应用程序池切换到4.0:谢谢@vcsjones..我的网站现在正是因为您而启动并运行...)仅添加到@vcsjones解决方案注册.net 4.0也可能会丢失。您可以使用进行.net 4.0注册,然后需要将应用程序池更改为4.0。当我在谷歌上搜索错误消息时,我发现了这个页面,其中有一个漂亮的问题,甚至还有一个更漂亮的答案,我几个月前就对其投了赞成票。这很有效!对于C:\Windows\Microsoft.NET\Framework64\v4.0.30319下的64位,我也遇到了同样的问题,但regiis没有解决它-我必须删除并重新创建整个网站树,并为每个应用程序重新分配池,现在它可以工作了…如果这是新版本的IIS(没有其他网站在其上运行)或者您不担心托管网站因框架更改而崩溃,您可以在注册时使用-i而不是-ir。@user230910该选项在哪里?我记不清了,但我认为这是指IISWorked perfect for me 2019年5月在AWS EC2 Windows Server 2019上使用Visual Studio 2019 web forms应用程序。很好-每一篇文章提到IIS。我正在使用IIS Express。对于解决方案,我在IIS Express中遇到了同样的问题,我只是删除了解决方案文件夹下的文件夹
    .vs
    ,然后重新打开解决方案,问题就解决了。我只是验证我是否出现了此错误,并尝试按照此答案中的指示更改端口。我正在运行WCF测试客户端以在本地主机上启动此服务。更改端口号后,服务能够启动。谢谢你的建议。在尝试了所有建议后,只有这一个解决了我的问题。非常感谢。IIS Express为您运行的每个站点创建一个新配置,并将其绑定到url(主机/端口)。这意味着,如果您有一个使用Framework2.x(2.0到3.5)的项目在某个端口上运行,然后您在同一端口中使用Framework4.x打开另一个项目,您将看到该问题。页脚显示它在Framework2.x下运行,Framework2.x无法识别“targetFramework”
    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
    
    <ProductVersion>10.0.11107</ProductVersion>
    
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    
    cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319
    
    iisreset /stop
    
    aspnet_regiis -i
    
    iisreset /start
    
    %systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True 
    
    %systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True 
    
    <AspNetCompiler
        VirtualPath="/MyFacade"
        PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
        TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
        Updateable="true"
        Force="true"
        Debug="false"
        Clean="true"
        ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">      
    </AspNetCompiler>
    
        <system.applicationHost>
           <applicationPools>
              <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
           </applicationPools>
        </system.applicationHost>