我有一个网站targetting .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核心日志文件夹中没有任何有用的东西。
在我安装的服务器上:
我正在使用Web部署来部署它。我检查了目录结构。我已经禁用了“启动错误”页面。它在自己的应用程序池中运行,该应用程序池可以访问文件系统。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集成。
如何获得调试信息以确定发生了什么问题?或者更好的是,出了什么问题?
更新:当Kestrel试图使用IIS作为反向代理时,它可能被反病毒系统阻塞了。我还没能证实这一点。
发布于 2017-06-30 12:51:36
一个人可能会认为你的ASP.NET核心应用程序被配置成在另一个已经监听的端口上监听。例如,你能用https://technet.microsoft.com/en-us/sysinternals/tcpview.aspx检查一下吗?
发布于 2017-07-01 01:36:04
缺少.NET框架版本
浏览器:502.3坏网关-在尝试路由请求时出现了连接错误。应用程序日志:ErrorCode = Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION‘与物理根’C:{PATH}‘’一起无法使用命令行“dotnet”启动进程。\my_application.dll‘,ErrorCode = '0x80004005 : 80008081。
ASP.NET核心模块日志:缺少方法、文件或程序集异常。异常中指定的方法、文件或程序集是.NET框架方法、文件或程序集。
故障排除:安装系统中缺少的.NET框架版本。对于依赖于框架的部署,请确认系统上安装了正确的运行时。例如,如果将项目从1.0升级到1.1,部署到宿主系统,并接收此异常,请确保在宿主系统上安装1.1框架。
查看此链接以获得更多信息
用于调试IIS和asp.net核心中的其他服务器错误
开放web.config change stdoutLogEnabled="true"
在“发布”目录中,创建“日志”文件夹。
https://stackoverflow.com/questions/44845611
复制相似问题