繁体   English   中英

在 IIS 中托管 ASP.Net Core MVC 应用程序时出现 HTTP 500 错误

[英]Get HTTP 500 error hosting ASP.Net Core MVC app in IIS

我是 ASP.Net Core 的新手,并试图在 IIS 中托管我的第一个简单的 MVC 应用程序。 我已经安装了 IIS 托管包; 使用 Visual Studio 将我的 MVC 项目发布到一个文件夹,然后创建了一个 IIS 网站,其物理路径设置为发布的文件夹。 但是,当我使用 url http://localhost:5008/home/CallApi 对其进行测试时,出现 500 错误,提示“此页面无效。本地主机当前无法处理此请求。”。 我可以从 VS 中运行 MVC 应用程序(selfhost,而不是通过 IIS,在不同的端口上),它在那里工作正常。 我在这里做错了什么?

如果要将 ASP.Net Core MVC 应用程序部署到 IIS,则需要安装 .NET Core 主机包,否则会出现“500 错误”。 如果您成功安装了 .NET Core 主机包,您可以在 Modules 中找到 AspNetCoreModuleV2:

在此处输入图片说明

使用以下链接下载安装程序:

https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.1.9-windows-hosting-bundle-installer

添加站点后,您需要将 .NET CLR 版本设置为 No Managed Code:

在此处输入图片说明

有关在 Windows 上使用 IIS 托管 ASP.NET Core 的更多信息,您可以参考此链接:

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.1

更新:

我建议您启用查看 PII 日志,以便我们可以查看有关错误的更多详细信息:

public void ConfigureServices(IServiceCollection services)
{
    IdentityModelEventSource.ShowPII = true;
    ....

你可以参考这个链接,里面有类似的问题:

“InvalidOperationException:IDX20803:无法从以下位置获取配置:'[PII is hidden]'”

对于那些有同样问题的人,我发现我发现的设置指南中没有提到对我来说是必需的步骤:

  1. 打开 IIS 管理器
  2. 导航到 [服务器]\\站点 [您的站点]。 为您的 .NET 应用程序列出了一个文件夹,但该图标显示为一个普通文件夹,就像在 Windows 资源管理器中一样。
  3. 右键单击该文件夹并选择“转换为应用程序”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM