我正在尝试发布一个在 IIS 下运行的 asp.net core v3 应用程序。我创建了一个虚拟目录,转换为应用程序。它有自己的 IIS 应用程序池,使用 CLR 设置:无托管代码、32 位:假和管道:集成。将应用程序发布到目录中,按预期创建默认的 web.config 和所需的 json 文件。网页配置:
<?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=".\PatientPlace3.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
如果我转到我网站的物理目录并手动运行“dotnet .\myapp.dll”,我可以在端口 5001 运行它没问题。我的客户端应用程序和 api 调用一切正常。当我尝试转到 IIS 下的 URL 时,出现 503 错误,并且在事件查看器中:
无法找到应用程序依赖项。确保安装了应用程序针对的 Microsoft.NetCore.App 和 Microsoft.AspNetCore.App 版本。
然后
找不到“aspnetcorev2_inprocess.dll”。异常消息:无法执行,因为找不到指定的命令或文件。可能的原因包括: * 您拼错了内置的 dotnet 命令。* 您打算执行 .NET Core 程序,但 dotnet-.\PatientPlace3.dll 不存在。* 您打算运行一个全局工具,但在 PATH 中找不到具有此名称的 dotnet 前缀的可执行文件。
另一个线索是,当我第一次访问 url 时,IIS …