2017-01-18 148 views
1

我有一個ASP.NET Core應用程序,我剛升級到1.1。這個應用程序以前工作得很好,我可以發佈它(通過Visual Studio中的發佈命令),它在IIS下工作得很好。我最近改變了這個是1.1,並得到了應用程序罰款運行在調試模式。現在,當我發佈,我得到ASP.NET Core 1.1發佈時無法運行

502 - Web server received an invalid response while acting as a gateway or proxy server. 

我打開失敗請求跟蹤規則,並在那裏我看到了以下

MODULE_SET_RESPONSE_ERROR_STATUS 

ModuleName httpPlatformHandler 
Notification EXECUTE_REQUEST_HANDLER 
HttpStatus 502 
HttpReason Bad Gateway 
HttpSubStatus 3 
ErrorCode The server is currently disabled. (0x8007053d) 

我發表的web.config文件看起來像這樣

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <handlers> 
     <remove name="httpPlatform" /> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
    </handlers> 
    <aspNetCore processPath="dotnet" arguments=".\Cranalytics.dll" forwardWindowsAuthToken="true" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" /> 
    </system.webServer> 
</configuration> 

我的project.json文件看起來像這樣

{ 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
    "Microsoft.EntityFrameworkCore": "1.1.0", 
    "Microsoft.EntityFrameworkCore.InMemory": "1.1.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", 

    "Microsoft.AspNetCore.Diagnostics": "1.1.0", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 

    "Microsoft.Extensions.Caching.Memory": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 

    "Syncfusion.Compression.MVC": "14.2600.0.32-preview2-final", 
    "Syncfusion.XlsIO.MVC": "14.2600.0.32-preview2-final", 

    "Microsoft.ApplicationInsights.AspNetCore": "1.0.2", 

    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 

    "Microsoft.NETCore.App": { 
     "version": "1.1.0", 
     "type": "platform" 
    }, 

    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0" 
    }, 

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

    "frameworks": { 
    "netcoreapp1.1": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    //"net461": { 
    // "dependencies": { 
    // }, 
    // "imports": "dnxcore50" 
    //} 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "web.config", 
     "appsettings.Production.json", 
     "appsettings.Staging.json", 
     "appsettings.json" 
    ] 
    }, 

    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

我找不出配置或IIS有什麼問題。

編輯: 我對配置做了一些更改,現在已經過了模塊加載部分(至少根據跟蹤日誌)。現在,只要訪問網站,我就會獲得404。我可以查看靜態圖像沒有問題,但是當我查看主頁的網站,我收到了404錯誤

ModuleName AspNetCoreModule 
Notification EXECUTE_REQUEST_HANDLER 
HttpStatus 404 
HttpReason Not Found 
HttpSubStatus 0 
ErrorCode The operation completed successfully. (0x0) 

我出版的目錄結構是一個子網站根網站在IIS(/ Cranalytics)下方。然後在那個文件夾中是所有的各種DLL,以及web.config。在這個目錄下是項目的wwwroot目錄。 IIS子網站被設置爲指向根網站(/ Cranalytics)。

+2

爲什麼舊的IIS包?當前版本是http://www.nuget.org/packages/Microsoft.AspNetCore.Server.IISIntegration.Tools/1.1.0-preview4-final – Tseng

+1

您是否還安裝了1.1.0運行時? –

+0

tseng我將它更改爲1.1.0-preview4-final Martin我在服務器上安裝了DotNetCore.1.1.0-WindowsHosting –

回答

0

問題是這個網站正在從RC1更新到1.1。爲了讓RC1工作,我需要撤銷幾件事情。在IIS中,當我創建站點時,我已經改變了從子站點Cranalytics的根目錄到下面的wwwroot的路徑。這必須撤消。

然後在配置我需要這樣的東西,因爲它是一個子網站。這也必須被刪除。

 //if (env.IsDevelopment()) 
     //{ 
     // Configure1(app, env, loggerFactory, context); 
     //} 
     //else 
     //{ 
     // app.Map("/Cranalytics", app1 => Configure1(app1, env, loggerFactory, context)); 
     //} 
0

有些想法可以幫助。

1.Check Directory Browsing of your website if it is in enable state or not. 
2.Try to separate your project to a new website with different port. 
-also configure the newly created web site of course. 
3.framework in application pool vs project, it must be the same. 
+0

AppPool的.NET CLR版本設置爲無託管代碼。目錄瀏覽已啓用。我無法創建一個單獨的網站。因爲它在已經建立的服務器上。在同一臺服務器上還有其他子網站是1.0,甚至有些是ASP.NET的RC。 –

+0

我創建了另一個測試網站是IIS使用端口88只是爲了測試這個,然後在新的端口88網站下創建一個網站副本到一個子網站,當我通過IP查看新網站時,我得到了同樣的錯誤:88。我嘗試從新站點上的模塊列表中刪除httpPlatformHandler,但後來我收到一個不同的錯誤,說「Handler」httpPlatformHandler「模塊列表中有一個錯誤的模塊」httpPlatformHandler「 –

相關問題