一段时间以来,我尝试在别人提供的服务器上运行我的项目,在查看了大量故障排除文档后,我处于一个不知道下一步该做什么的境地。为了调试目的,我创建了一个普通的空项目(只有默认的“值控制器”)并部署了它,但它也产生了错误。
我可以得到以下信息:
HTTP 服务器错误:502.5 日志文件已生成但为空 系统日志显示以下内容:具有物理根目录''的应用程序'MACHINE/WEBROOT/APPHOST/WEBSITE-NAME'通过命令行'E:\HostingSpaces\customer-folder\website-name\wwwroot\tu-test-api.exe'创建了进程,但未能获取其状态,ErrorCode ='0x80070005'。
我尝试了不同的部署类型,但都产生了相同的错误。例如,依赖于框架,会产生一个 DLL。然后错误只是指出“dotnet tu-test-api.dll”产生了错误。但代码和行为是相同的。
网络配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\tu-test-api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
该服务器是带有 IIS Express 的 Windows 2008 R2 Server。
它安装了 Microsoft .NET Core 2.1.4 Windows Server Hosting。
安装了以下三样东西:
- Microsoft .NET Core 运行时 2.1.4 (x64)
- Microsoft .NET Core 2.1.4 - Windows 服务器托管
- Microsoft .NET Core 运行时 2.1.4 (x86)
根据管理员 1. PATH 变量设置正确 2. 安装了 Microsoft Visual C++ 2015 Redistributable (x64) 3. 之后 (2.) 修复/重新安装了 Bundle,并重新启动了服务器 4. 应用程序池设置为“无托管代码”
我有点恼火,因为系统日志中的物理根是一个空字符串。但我不确定那是什么意思。
最后,管理员尝试在服务器上的控制台上直接执行 dotnet my-app.dll 以及 my-app.exe,一切正常。他还打开浏览器试用了该应用程序,并返回了预期结果。
对于下一步该做什么,任何帮助都将不胜感激。