无法使用命令行“ dotnet。\ myapi.dll”启动进程,ErrorCode ='0x80004005:800000896

时间:2018-10-30 05:06:15

标签: azure-devops

我问了一个问题here,有关如何确保构建中包含正确版本的dotnet。

我想知道该版本是否仍未部署。 我要在已部署的文件中寻找什么来说明?

部署中确实包含以下文件

52,816 dotnet-aspnet-codegenerator-design.dll 689584 Microsoft.CodeAnalysis.CSharp.Workspaces.dll 2,624,944 Microsoft.CodeAnalysis.Workspaces.dll 23,632 Microsoft.VisualStudio.Web.CodeGeneration.Contracts.dll 73,296 Microsoft.VisualStudio.Web.CodeGeneration.Core.dll 35,408 Microsoft.VisualStudio.Web.CodeGeneration.dll 69,200 Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore.dll 28,752 Microsoft.VisualStudio.Web.CodeGeneration.Templating.dll 34,896 Microsoft.VisualStudio.Web.CodeGeneration.Utils.dll 157,776 Microsoft.VisualStudio.Web.CodeGenerators.Mvc.dll

当我登录到计算机时,将在上面部署代码并键入

dotnet .\myapi.dll  

错误是

It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.5' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download

浏览网站的网址会给出

HTTP Error 502.5 - Process Failure

Common causes of this issue:
The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port

Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect

For more information visit: https://go.microsoft.com/fwlink/?LinkID=808681

事件日志显示

failed to start process with commandline 'dotnet .\myapi.dll', ErrorCode = '0x80004005 : 80008096.

如何确保已部署dotnet?

[更新]

我看到c:\ program files \ dotnet.exe是版本2.1.26919.1

但是我已经安装了.Net Core Runtime 2.1.5(x64) 我可以说它已安装,因为当我重新运行安装程序时,它会询问我是否要修复或卸载。

我想因为api在IIS下运行,所以不需要dotnet.exe吗?

计算机正在运行Windows 2012 Server R2

2 个答案:

答案 0 :(得分:1)

只是发布此内容以防他人受骗。我遇到了这个确切的错误,试图在IIS上使用ASP.Net Core部署常规.Net网站。在我的情况下,安装了.Net,但是我的站点抛出500内部服务器错误,并且在事件日志中,我显示“无法使用命令行'dotnet。\ myapi.dll'启动进程”。最终是我的web.config文件,Visual Studio的行开头如下:

<aspNetCore processPath="dotnet" arguments=".\myapi.dll"

这最终成为问题,这就是您启动.Net Core网站的方式。但是我的目标是普通的.Net。所以我的web.config必须是:

<aspNetCore processPath=".\myapi.exe" arguments=".\myapi.dll"

在找到此错误之前,我曾尝试安装.Net Core运行时和SDK,它们最终都将错误转换为500.19内部服务器错误,错误代码为0x8007000d。这表明我的web.config或AppHost(IIS)中的XML格式错误。这些文件都没有XML语法问题。此特定错误是由于删除了.Net Core Hosting Bundle引起的。您需要为服务器安装主机捆绑包,才能识别“ aspNetCore”标签。安装了主机捆绑包并进行了web.config更改后,我开始运行。

希望可以帮助某人。这是我开始调试的第一个搜索结果。

答案 1 :(得分:0)

我跑步时

dotnet运行。\ myapi.dll

我知道了

Did you mean to run dotnet SDK commands?
Please install dotnet SDK from: go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

当我转到URL时,它安装了SDK 2.1.403

有效。