【发布时间】:2017-06-15 12:38:47
【问题描述】:
我正在尝试在我的本地计算机上的 IIS 中托管一个 ASP.NET Core 应用程序,但我收到了 502.5 错误。 我的问题与"ASP.NET Core 1.0 on IIS error 502.5"不同,因为我不发布我的应用程序,但(出于测试目的)尝试使用 IIS(不是express)在我的开发机器上提供应用程序。
复制:
- 打开VS2017
- 创建一个新的
ASP.NET Core Web Application (.NET Core) -
选择“Web API”模板并定位“ASP.NET Core 1.1”(无身份验证)
您的
Main现在看起来像这样:public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseApplicationInsights() .Build(); host.Run(); }你的 csproj 看起来像这样:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" /> </ItemGroup> </Project> 按 F5 运行,
localhost:6565/api/values打开- 将“Web 配置文件”添加到项目的根目录
-
取消注释
system.webServer部分,如下所示:<system.webServer> <handlers> <remove name="aspNetCore"/> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> </handlers> <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" /> </system.webServer> 打开 IIS 管理器 GUI
- 选择“添加网站”,选择名称和端口,设置
web.config所在文件夹的路径 - 根据Microsoft's instructions 将应用程序池的“.NET CLR 版本”设置为“无托管代码”
-
浏览到您的新应用程序,例如
http://localhost:8089/api/values结果:HTTP 错误 502.5 - 进程失败
预期:与第 4 步中的结果相同。
我已尝试将the top answer 中提到的所有原因排除在另一个问题中:
- 为应用池设置
LocalSystem身份 - 在控制台上检查
dotnet --version是否运行(即在 PATH 上可用)
此外,我还尝试了其他一些方法:
- 将
processPath设置为"%LAUNCHER_PATH%\bin\Debug\netcoreapp1.1\WebApplication1.dll的变体 - 将
processPath设置为指向dotnet.exe或其位置 - 重新阅读 the docs 以提炼出实现此目的的方法。
使用 .NET Framework 上的 ASP.NET MVC 应用程序,您只需在完整的 IIS 中启动一个指向 MVC 项目文件夹的新网站,它就会“正常工作”。
您需要做什么才能使其与 ASP.NET Core 一起使用?甚至有可能在不发布的情况下让这个流程正常工作吗?
【问题讨论】:
-
@PranavPatel 我已经在我的问题中解释了为什么它不同,不是吗?我想跳过“发布”步骤,就像使用 ASP.NET 4.6 MVC 应用程序一样。
标签: c# iis asp.net-core