为何Visual Studio将.NET Framework 4.6.2的ASP.NET站点识别为ASP.NET Core?
项目文件(.csproj)配置错误
Visual Studio依靠.csproj文件判断项目类型。如果你的项目使用了ASP.NET Core专属的SDK声明(比如<Project Sdk="Microsoft.NET.Sdk.Web">),而非传统ASP.NET Framework的MSBuild格式(开头为<Project ToolsVersion="X.X" ... xmlns="http://schemas.microsoft.com/developer/msbuild/2003">),IDE会直接将其判定为Core项目。另外,项目文件中若存在<AspNetCoreHostingModel>这类Core专属配置项,也会触发Core的启动逻辑。IIS Express配置被污染
本地IIS Express的全局配置文件(路径为%USERPROFILE%\Documents\IISExpress\config\applicationhost.config)可能被错误修改。如果你的站点对应的配置节点下,<system.webServer>中添加了<aspNetCore>元素,IIS Express会调用ASP.NET Core Module V2来启动站点,自然找不到Core的可执行文件,抛出路径错误。双目标库引发的依赖干扰
虽然业务库是netstandard2.1与net461双目标,但如果项目引用的NuGet包中包含ASP.NET Core相关依赖,或者包恢复过程中错误引入了Core的宿主组件,会让Visual Studio误判项目类型。此外,业务库的输出目录与Web站点目录重叠,也可能干扰IDE对项目类型的识别。Web.config的隐性冲突配置
即便你设置了targetFramework="4.6.2",如果Web.config的<system.webServer>/<handlers>节点中存在name="aspNetCore"的处理器配置,或者包含其他ASP.NET Core专属的配置段,IIS Express仍会将站点当作Core项目处理,导致启动失败。
内容的提问来源于stack exchange,提问作者StormRider01

