Asp.net core 在IIS中托管ASP.Net核心MVC应用程序时出现HTTP 500错误

Asp.net core 在IIS中托管ASP.Net核心MVC应用程序时出现HTTP 500错误,asp.net-core,iis,Asp.net Core,Iis,我是ASP.NETCore的新手,尝试在IIS中托管我的第一个简单MVC应用程序。我已经安装了IIS主机包;使用Visual Studio将我的MVC项目发布到一个文件夹中,然后创建一个IIS网站,并将其物理路径设置为发布的文件夹。当我使用url测试它时http://localhost:5008/home/CallApi,但是,我收到一个500错误,显示“此页面不工作。localhost当前无法处理此请求。”。我可以在VS中运行MVC应用程序(selfhost,而不是通过IIS,在另一个端口上)

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

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

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

添加站点后,需要将.NET CLR版本设置为“无托管代码”:

有关在Windows上使用IIS托管ASP.NET Core的详细信息,请参阅以下链接:

更新:

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

public void ConfigureServices(IServiceCollection services)
{
    IdentityModelEventSource.ShowPII = true;
    ....
您可以参考此链接,其中包含类似的问题:


很可能您的URL错误。您也可以运行报告来揭示常见问题,谢谢!正如我在最初的帖子中提到的,我已经安装了IIS托管包。而将.Net CLR版本更改为无托管代码也没有什么不同。但是,在启用服务器日志后,我发现错误实际上是由以下异常引起的:“System.InvalidOperationException:IDX20803:无法从以下位置获取配置:”[PII被隐藏。有关更多详细信息,请参阅。”我一直在搜索此异常的原因,到目前为止运气不太好。谢谢丁。我认为我的问题是由数据库连接失败引起的。服务器日志包含一个错误:“使用服务器上数据库“MyTestID”的连接时发生了一个错误”“用户“$”登录失败。”.I在appsettings.json中有一个连接字符串定义为“Server=;Database=MyTestIDS;trusted_connection=True;”在IIS中自托管时,它工作正常。我检查了部署的代码,并且appsettings.json在那里。应用程序是否从IIS下的appsettings.json读取配置设置?如果没有,我应该将其移动到哪里?如何移动?我已经解决了问题-连接字符串的格式。在slfe托管时,我使用了“Server=;Database=MyTestDB;trusted_connection=True;”并且在那里工作得很好。但是在IIS下,我必须将其更改为类似“Server=MyServer,MyPort;Database=MyTestDB;user id=MyUsrID;Password=MyPassword”的内容。不确定为什么,但现在我工作得很好。