2017-01-25 436 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

希望这可以帮助别人。