IIS 上的 .Net 5.0 Web API 部署问题

Posted

技术标签:

【中文标题】IIS 上的 .Net 5.0 Web API 部署问题【英文标题】:.Net 5.0 Web API deployment issue on IIS 【发布时间】:2021-02-07 18:03:42 【问题描述】:

我在 IIS 上部署 .net core web api 时遇到问题。

我使用 .net core 5 创建了简单的 web api 项目。在运行 VS 2019 时,它可以正确打开。

我已经在我的机器上安装了 .net core 5.0.2 托管包。

使用“无托管代码”设置创建应用程序池。

使用已发布的 vs 文件夹发布 API,并创建指向已发布文件夹的 IIS 站点。

在完成所有这些必需的步骤后,我无法使用 localhost 浏览已发布的 API。但它显示了一些奇怪的错误,例如 HTTP Error 404.0 - Not Found

【问题讨论】:

您尝试连接的 API 的 url 是什么? 没有net core 5,只有net 5.0 如何访问本地主机?您是否设置了默认文档?你如何发布你的应用程序?请发布有关您的问题的错误页面。 @ChetanRanpariya 它的默认天气预报端点。 【参考方案1】:

请确保必要的功能,如静态内容和asp.net功能依次打开或关闭windows功能/添加角色和功能->互联网信息服务->万维网服务->应用程序开发功能->asp.net已启用。

此外,您可以尝试将 runAllManagedModulesForAllRequests="true" 属性添加到您的模块部分,如下所示:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true" >    
  </modules>
</system.webServer>

或者你可以试试

<system.webServer>
 <modules runAllManagedModulesForAllRequests="true" >
   <remove name="UrlRoutingModule"/>    
 </modules>
</system.webServer>

【讨论】:

以上是关于IIS 上的 .Net 5.0 Web API 部署问题的主要内容,如果未能解决你的问题,请参考以下文章

IIS 上的 Angular 发布到 Asp.Net(非核心)Web Api 错误 415

如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]

发布时服务器证书错误,.Net core 5.0,IIS 服务器

如何在没有 Visual Studio 的情况下发布 ASP.NET Web API?

从 IIS 上的 ASP.NET Core 应用程序请求超时

具有基本身份验证的Web Api在IIS中出现500内部错误