2017-01-25 310 views
2

我是新來的ASP.NET核心,我試圖獲取基本的ASP.NET核心Web應用程序部署到Windows 2012 R2服務器。ASP.NET核心0x80004005

我可以使用Visual Studio Express在本地構建和運行項目,但是當我部署到服務器時,出現502.5錯誤,確切代碼爲(0x80004005)。

日誌文件是空白的,事件查看器不提供更多信息,而不僅僅是上述錯誤代碼。

我懷疑有什麼毛病我Project.json文件,該文件是這樣的:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1", 
    "Microsoft.AspNetCore.Routing": "1.0.1", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0" 
    }, 

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

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

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

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

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

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

這是由Visual Studio生成的默認project.json文件。

任何幫助真的很感激。

+2

可能的[ASP.NET IIS 1.0錯誤502.5]上的重複(http://stackoverflow.com/questions/38624453/asp-net-core-1-0-on-iis-error-502-5) – hometoast

+1

您是否閱讀了手冊並安裝了「Windows Server Hosting」軟件包? https://www.microsoft.com/net/download/core#/runtime/current沒有它,它不起作用。它包含AspNetCoreModule(它基於'HttpPlatformHandler'並針對ASP.NET核心進行了修改)。如果您沒有將應用程序發佈/部署爲獨立應用程序,則還需要.NET運行時 – Tseng

回答

2

事實證明,這是需要安裝一些Windows更新的結果,而這個問題:

api-ms-win-crt-runtime-l1-1-0.dll is missing when opening Microsoft Office file

而不是安裝在上面的問題討論的版本,我磨到程序和功能,並跑了修復在Microsoft Visual C++ 2015 Redistributable上。

我發現這個錯誤的方法是通過執行以下步驟將網站轉化爲一個獨立的可執行文件:

在project.json刪除「類型」:「平臺」,從依賴關係:

"dependencies": { 
"Microsoft.NETCore.App": { 
    "version": "1.0.1"  
}, 

然後定義視窗12 R2運行時:

"runtimes": { 
    "win81-x64": {} 
}, 

然後在網站文件夾(含有project.json文件的文件夾)運行下面的命令FR OM命令提示符:

dotnet build -r win81-x64 
dotnet publish -c release -r win81-x64 

的獨立的應用程序應該在文件夾中創建\ BIN \發佈\ netcoreapp1.1 \ win81-64。

將其複製到服務器,然後運行它,會出現一個類似於「api-ms-win-crt-runtime-l1-1-0.dll缺失」消息的對話框。

從那裏谷歌!

做完所有這些後,我能夠從IIS運行我的網站。

1

這個問題涉及到Windows更新 - 但如果你是在一個類似的環境比我(在這裏你不能只安裝所有更新),這些都是2是固定的,我的問題:

我有問題的同樣的錯誤 - 並鍵入「DOTNET」時進入CMD有討厭的錯誤消息:

程序無法啓動,因爲API-MS-雙贏CRT-運行時l1-1-0。DLL文件丟失

我解決了這個由在Windows服務器上手動安裝以下兩個更新2012 R2(和先決條件和所有其他更新鏈接 - 仔細閱讀Microsoft網站上的安裝說明):

  1. KB2919355
  2. KB2999226

希望這可以幫助別人。