[英]HTTP Error 404: Deployment of a Web API (minimal API NET 7) on IIS
我可能在 IIS 上遇到了设置问题(它是一个具有真实 URL 域的 Web 服务器,因此可以随时从外部访问)。 我创建了一个具有最小 API NET 7 的 Web API。在测试身份验证之前,我尝试先到达一个端点。 我将此端点命名为/api/test并将其定义为[AllowAnonymous] 。 在通过 Swagger 的开发服务器上,一切都已经在运行(包括登录或令牌生成)。 但是在发布的 web api 版本中,我注释掉了 Swagger。
现在,当我在 IIS 服务器上安装 Web 应用程序时,然后当我通过 IIS 服务器调用应用程序时(以及当我在浏览器本身中输入地址时),我收到消息: HTTP 错误 404.0 - 未找到详细的错误信息是:
最可能的原因:
但是,如果我通过dotnet Testapp.dll在控制台中运行该应用程序,那么它就会启动,然后如果我在浏览器中输入 URL http://localhost:5000/api/test,我就会得到数据。
所以只能是IIS App设置出了问题。 顺便说一下,我还安装了ASP.NET Core 7.0 Runtime (v7.0.1) - Windows Hosting Bundle 。 在 IIS 上设置应用程序时,我使用了以下指南: http ://www.technical-recipes.com/2018/running-asp-net-web-api-services-in-iis/
谁能帮我提出任何建议?
谢谢
编辑
按照 Lex 的建议(请参阅下面他的评论),我安装了 Jexus Manager 软件并运行了诊断程序。 这是报告:
系统时间:15.12.2022 10:18:45 处理器架构:AMD64 操作系统:Microsoft Windows NT 10.0.17763.0 服务器类型:IIS
扫描 28 个已安装的模块。 .NET Core 3.1 及更高版本安装了 ASP.NET Core 模块版本 2:C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll (17.0.22323.1)。
编辑 2
我离这个问题越来越近了。 根本错误是我使用了发布文件夹中的应用程序文件,而不是发布文件夹中的应用程序文件!
我现在已经正确复制了该应用程序,当我在 IIS 中启动该应用程序时,浏览器打开,我可以通过 Api 链接请求数据,因此它在服务器本地工作。 我现在遇到的问题是它不能从外部工作:我收到消息:
ERR_CONNECTION_TIMED_OUT
该消息还出现在应该使用此 Web API 的 MAUI 应用程序中:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。 (api.website.com:64500)
我再次启动诊断工具,得到以下输出:
重要提示:本报告可能包含机密信息。 在与他人分享之前掩盖这些。
系统时间:15.12.2022 10:33:27
处理器架构:AMD64
操作系统:Microsoft Windows NT 10.0.17763.0
服务器类型:IIS
扫描 28 个已安装的模块。
.NET Core 3.1 及更高版本安装了 ASP.NET Core 模块版本 2:C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll (17.0.22323.1)。
扫描 45 个注册处理程序。
现在可以了。 如果其他人有类似的问题(IIS上NET 7下的Minimal Api application),那么这里有几个提示:
所以,希望我没有错过任何东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.