我是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文件。
答案 0 :(得分: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中从依赖项中删除“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缺失”的消息。
从那里google!
完成所有这些后,我可以从IIS运行我的网站。
答案 1 :(得分:1)
此问题与Windows更新有关 - 但如果您处于与我相似的环境中(您无法安装所有更新),那么这两个问题就解决了我:
我遇到了同样的错误 - 在输入“dotnet'”时出现了令人讨厌的错误消息进入CMD:
程序无法启动,因为缺少api-ms-win-crt-runtime-l1-1-0.dll
我通过在 Windows Server 2012 R2 上手动安装以下2个更新解决了这个问题(并且先决条件和链接的所有其他更新 - 请在Microsoft网站上仔细阅读安装说明):< / p>
- KB2919355
- KB2999226
醇>
希望这有助于某人。