2016-09-28 61 views
5

我試圖發佈到IIS一個.NET核心ASP.NET網站我從RC2升級到RTM。.NET核心發佈到IIS - HTTP錯誤502.3 - 錯誤的網關 - 指定的CGI應用程序遇到錯誤,服務器終止進程

作爲一個全面的檢查,我是能夠成功地發佈模板/樣本「核心ASP.NET Web應用程序(.NET框架)」從Visual Studio 2015年

但由於某些原因的應用程序,發佈時的RTM升級的應用程序,我得到HTTP錯誤502.3 - 錯誤的網關 指定的CGI應用程序遇到錯誤,服務器終止該過程。

該網站確實可以從Visual Studio運行IIS Express。

我該如何調試?有人有主意嗎?

Error 502.3

的web.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

<system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> 
    </handlers> 
    <aspNetCore processPath=".\MyApp.exe" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" /> 
    </system.webServer> 
</configuration> 

project.json

{ 
    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true, 
    "warningsAsErrors": true 
}, 
"dependencies": { 
    "Microsoft.AspNetCore.Diagnostics.Elm": "0.1.0", 
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0", 
    "Microsoft.AspNetCore.Authorization": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Hosting": "1.0.0", 
    "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0", 
    "Microsoft.AspNetCore.Http.Extensions": "1.0.0", 
    "Microsoft.AspNetCore.Localization": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Routing": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.Session": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.Extensions.Caching.SqlServer": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 

    "Microsoft.AspNetCore.Razor.Tools": { 
    "version": "1.0.0-preview2-final", 
    "type": "build" 
    }, 

    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0" 
}, 

"frameworks": { 
    "net461": {} 
}, 

"tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
}, 

"scripts": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" 
}, 

"publishOptions": { 
    "include": [ 
    "wwwroot", 
    "web.config", 
    "appsettings.json", 
    "**/*.cshtml", 
    "Config/*.json" 
    ] 
    ] 
} 
} 

回答

5

如何調試?有人有主意嗎?

這裏有三個想法:

  1. Read this,並確保你已經把所有它說。

  2. 從命令行運行發佈的.\MyApp.exe。那樣有用嗎?

    • 如果是這樣,那麼您知道您有IIS集成問題。
    • 如果沒有,你知道你有一個應用程序問題。
  3. 變化stdoutLogEnabled="false"true再檢查日誌在stdoutLogFile=".\logs\stdout"。那裏的錯誤可能會告訴你一些事情。

  4. 在事件查看器中檢查您的IIS應用程序日誌。那裏的錯誤可能會告訴你一些事情。

事件查看器應用程序日誌

Event Viewer Application Logs

+1

非常感謝!我能夠獲得日誌文件,事實證明,應用程序的宿主環境已設置爲生產,並且在登錄到生產sql服務器時失敗。 快速問題:你怎麼知道部署的應用程序應該使用哪個環境? –

+0

@ johnluke-laue設置一個環境變量。請參閱http://stackoverflow.com/questions/28258227/how-to-set-ihostingenvironment-environmentname-in-vnext-application/30314719#30314719 –

+0

我創建了文件夾\ logs,但日誌文件是空的,我不知道不知道爲什麼。 – mejiamanuel57

1

的思路不適合我的工作,但: 去web開發模式(按F12)=>應用程序選項卡=>然後刪除所有cookie。刷新頁面,你不能相信。這是很好的作品。 您也可以複製您的網址並粘貼到另一個瀏覽器中,然後您的未運行任何MVC項目。 我的項目對Internet Explorer和Microsoft Edge沒有任何改變。 可能是這是錯誤的原因。

1

如果您長時間運行一項任務,並且Web瀏覽器在2分鐘內(默認請求時間)未收到響應,則會出現此錯誤。因爲在超時之後,IIS將替換應用程序以使用「錯誤網關」響應客戶端。

也許你應該改變web.config中的請求時間。在部分system.webServer/aspNetCore

將requestTimeout屬性來指定的持續時間的量,ASP.NET核心模塊將等待來自過程偵聽%ASPNETCORE_PORT%的響應。

  • 將requestTimeout必須僅整個分鐘來指定,否則默認爲2分鐘。

就像這樣:

<system.webServer> 
    <aspNetCore requestTimeout="00:20:00" ... /> 
</system.webServer> 
相關問題