c# - IIS ASP.NET Core 应用程序未启动
问题描述
我创建了一个 ASP.NET Core Web api,它已经在许多 PC 上进行了测试,但是在部署到客户端的 IIS 服务器时,应用程序不会启动或产生任何错误,如应用程序事件日志中所检查的那样。直接运行可执行文件,应用程序运行,您可以浏览到 ASP.NET Core 网站。我导航到 web.config 文件以找到要运行的 dll:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MY_API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: c1c1b8d5-abcd-479f-9e7a-abcdefghijkl-->
运行dotnet MY_API.dll
产生以下结果:
该端口未绑定到任何其他应用程序,因为当我运行可执行文件时,它成功绑定到该端口,我可以导航到 localhost:port 并显示 api swagger 界面。该dotnet
命令成功地在我的开发 PC 上运行该应用程序。
我可以确认 IIS 运行的模块与我在我的开发 PC 上运行的模块相同,并且服务器上安装了与我的开发 PC 上安装的相同的 .net 运行时托管包。我觉得这只是一个权限问题,安全策略可能阻止我使用dotnet
命令绑定端口,我已经读过这是 IIS 用来在后台启动应用程序的。
我对服务帐户和 ApplicationPoolIdentities 的了解非常有限。什么是阻止应用程序使用dotnet
命令绑定端口的权限,其中运行可执行文件允许我绑定到端口?如何更改这些权限?