我有一个定位.NetCoreApp 1.1
的网站,它在本地运行良好,但无法部署,我收到完全无用的错误消息:
" 502.3网关不好。尝试路由时出现连接错误 请求。"
事件查看器显示"Application 'MACHINE/WEBROOT/APPHOST/MYAPP' with physical root 'C:\inetpub\MyApp' created process with command line '"dotnet" .\Web.dll' but failed to listen on port XXXX"
除了应用程序已启动并正在侦听之外,.net core logs文件夹中没有任何用处。
在我安装的服务器上:
我正在使用Web Deploy来部署它。我检查了目录结构。我已禁用启动错误页面。它运行在它自己的应用程序池中,可以访问文件系统。 CLR版本更改为“无管理代码”。加载用户配置文件设置为True。
我的程序类如下:
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
#if !DEBUG
// Disable windows auth for local debug
.UseWebListener(options =>
{
options.ListenerSettings.Authentication.Schemes = AuthenticationSchemes.NTLM;
options.ListenerSettings.Authentication.AllowAnonymous = false;
})
#endif
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();
编辑:在部署目录中执行dotnet MyApp.dll告诉我它正在侦听端口5000.我可以在本地访问它,并且该站点现在运行正常,因此它似乎是IIS集成。
如何获取调试信息以找出问题所在?或者更好的是,出了什么问题?
更新:在尝试将IIS用作反向代理时,可能是反病毒系统阻止了Kestrel。我还没能验证这一点。
答案 0 :(得分:0)
有人可能会认为您的ASP.NET核心应用程序配置为侦听另一个已经侦听的端口。你可以使用https://technet.microsoft.com/en-us/sysinternals/tcpview.aspx来检查吗?
答案 1 :(得分:0)
缺少.NET Framework版本
浏览器:502.3网关错误 - 尝试路由请求时出现连接错误。 应用程序日志:ErrorCode =具有物理根“C:{PATH}”的应用程序'MACHINE / WEBROOT / APPHOST / MY_APPLICATION'无法使用命令行'“dotnet”启动进程。\ my_application.dll', ErrorCode ='0x80004005:80008081。
ASP.NET核心模块日志:缺少方法,文件或程序集异常。异常中指定的方法,文件或程序集是.NET Framework方法,文件或程序集。
故障排除: 安装系统中缺少的.NET Framework版本。 对于依赖于框架的部署,请确认您在系统上安装了正确的运行时。例如,如果将项目从1.0升级到1.1,部署到托管系统,并收到此异常,请确保在托管系统上安装1.1框架。
检查this link以获取更多信息
用于在asp.net核心中调试IIS和其他服务器错误
打开web.config
更改stdoutLogEnabled="true"
在发布目录中创建日志文件夹