ASP.NET Core 0x80004005

我是ASP.NET核心的新手,我正在尝试将基本的ASP.NET核心Web应用程序部署到Windows 2012 R2服务器。

我可以使用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文件。

任何帮助真的很感激。

原来这是需要安装一些Windows更新和这个问题的结果:

打开Microsoft Office文件时缺少api-ms-win-crt-runtime-l1-1-0.dll

我没有安装上述问题中讨论的版本,而是进入程序和function,并在Microsoft Visual C ++ 2015 Redistributable上运行修复。

我发现此错误的方法是通过执行以下步骤将网站转换为独立的可执行文件:

在project.json中从依赖项中删除“type”:“platform”:

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

然后定义Windows 12 R2运行时:

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

然后在Website文件夹(包含project.json文件的文件夹)中,从命令提示符运行以下命令:

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

应在文件夹\ bin \ Release \ netcoreapp1.1 \ win81-x64中创建独立应用程序。

将其复制到服务器然后运行它,将出现一个对话框,其中显示类似于“api-ms-win-crt-runtime-l1-1-0.dll缺失”的消息。

从那里谷歌!

完成所有这些后,我能够从IIS运行我的网站。

此问题与Windows更新有关 – 但如果您处于与我相似的环境中(您无法安装所有更新),这些是解决我的问题的2:

我有同样的错误 – 在CMD中键入’dotnet’时出现了令人讨厌的错误消息:

程序无法启动,因为缺少api-ms-win-crt-runtime-l1-1-0.dll

我通过在Windows Server 2012 R2上手动安装以下2个更新解决了这个问题(并且先决条件和链接的所有其他更新 – 在Microsoft网站上仔细阅读安装说明):

  1. KB2919355
  2. KB2999226

希望这有助于某人。