.Net核心网站 - 糟糕的网关(连接错误)

时间:2017-06-30 11:40:06

标签: asp.net-core

我有一个定位.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文件夹中没有任何用处。

在我安装的服务器上:

  • Microsoft .Net核心1.1.1 -Runtime(x64)
  • Microsoft .Net核心1.1.2 -Runtime(x64)
  • Microsoft .Net core 1.0.5& 1.1.2 - Windows Server Hosting
  • Microsoft Http Platform Handler 1.2

我正在使用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。我还没能验证这一点。

2 个答案:

答案 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"

在发布目录中创建日志文件夹