无法启动进程 dotnet.exe

Posted

技术标签:

【中文标题】无法启动进程 dotnet.exe【英文标题】:Unable to start process dotnet.exe 【发布时间】:2016-11-24 02:49:33 【问题描述】:

我正在尝试设置一个新的工作空间并将我的所有项目从旧计算机转移到新计算机。但是,当我尝试运行 IIS Express 时出现此错误:

无法启动进程 C:\Program Files\dotnet\dotnet.exe。网络 服务器请求失败,状态码为 500。

我在 Visual Studio 2015 中工作,更新 3,我正在使用 .NET Core RC2。有谁知道如何解决这个问题并让我的旧项目在这台新机器上运行?

【问题讨论】:

看起来您正试图在 IIS express 下运行可执行文件。我觉得你的项目文件有点乱。 dot.net 从 RC2 升级到 RTM。 我在尝试重命名我的命名空间时遇到了这个问题 - 只需打开 launchsettings.json 文件并将端口号更改为其他内容,然后执行 dotnet build 或从 VS 构建并尝试使用 IIS Express 启动 我能够解决这个问题 将 modules="AspNetCoreModule"modules="AspNetCoreModuleV2" 更改为 web.config。我的项目环境是dotnet core 2.1和vs2017。文档说,对于 dotnet core v2.1,它需要是 modules="AspNetCoreModule" ,对于 dotnet core 2.2 或更高版本,它需要是 modules="AspNetCoreModuleV2" 。此处为完整行<handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> 我的问题也与 module="AspNetCoreModuleV2" 有关。就我而言,另一位开发人员在不知不觉中推送了 web.config,因为他的新版本 VS 方便地为他更改了它。我没有将它改回来,而是选择将我的 VS 更新到版本 15.9.13,从而解决了这个问题。 【参考方案1】:

我遇到了同样的问题。我在该目录中查找 dotnet.exe 并且它存在但调试器无法执行它,所以我以管理员身份重新启动 Visual Studio 2015 并且它可以工作!

【讨论】:

简单重启VS就能解决多少问题,让我吃惊。 @JeanLourenço 让我吃惊的是,我们必须经常这样做,我喜欢 Visual Studio,但似乎“能力越大责任越大”,希望 VS15 不需要完整的 goliath IDE 来帮助实现这一点. 不确定它怎么可能。关闭并打开VS。它开始工作了..关于这是如何发生的任何解释? 以管理员身份运行可能会在后期阶段导致许多其他问题(文件存储在错误的位置,最终应用程序未以管理员身份运行等......) 这只是发生在 2018 年 9 月。微软这还不够好 - 停止添加功能,先修复错误!【参考方案2】:

只需关闭VS删除project.lock.json文件,打开VS该文件将被恢复,你应该没有问题了。

【讨论】:

谢谢。这也为我修复了它。这是由于将解决方案移动到磁盘上的不同位置造成的。 .NET Core 开发体验继续让我的生活更加美好【参考方案3】:

我的问题是

1- 我将我的项目(控制台/网站)从 .net 4.5 framework 升级(移植)到 donetcoreapp 2.0

2- .NET Framework 4.5 项目有 Web.Config

3- dotnetcore 2.0 没有维护 web.config 的概念。

4- 所以每当我运行项目时,我都会遇到同样的错误

解决方案:

刚刚删除了'Web.Config',它开始为我工作。

【讨论】:

我只从我的 .Web 项目中删除了 Web.Config 文件,一切正常后。我正在使用 VS 2017。感谢您的解决方案:) 哇!删除 web.config 就像一个魅力 - 谢谢。 太笨了。如果我们收到类似“.NET Core 不使用 web.configs。删除它!”之类的错误。 >. 【参考方案4】:

就我而言。我在运行/调试时选择“ProjectName”而不是“IIS Express”。它使用控制台输出窗口和选定的浏览器工作/打开,在调试时保持控制台输出窗口打开。希望这会奏效。

【讨论】:

【参考方案5】:

Visual Studio 2017 -> 对我来说,解决方法是在调试/运行时选择项目名称而不是 IISExpress。

【讨论】:

【参考方案6】:
    关闭 VS 2015(似乎问题已在 VS 2017 中解决)。 删除 \bin 和 \obj 中的所有文件。删除 project.lock.json。 运行 VS。 重建。

如果上述解决方案在 VS2017 .Net Core 中不起作用,请以 VS2017 作为 ADMIN 运行。 如果没有管理员访问您的机器,您可以更改“launchSettings.json”以在端口 8080 上工作,如下所示,然后按照上述 4 个步骤操作。

"applicationUrl": "http://localhost:8080/",

【讨论】:

关于“似乎问题已在 VS 2017 中解决” 【参考方案7】:

这对我有用:

我也遇到过同样的问题,结果证明我根本没有正确的运行时版本 (1.1.0);相反,我试图将 1.1.0 程序集与 1.0.1 运行时一起使用。

解决方法很简单 - 从here 下载并安装 SDK,但要选择正确的版本!事实证明,如果你想要 1.1.0 版本,你应该选择“当前”选项(按钮)。

基本上这个问题是由引用页面的愚蠢界面引起的 - 如果你不注意你会下载v1.0.1,因为它是“LTS”版本,并且“LTS”选项是默认的。说什么...在这个疯狂的版本控制、疯狂的绰号、疯狂的平台时代,.NET 团队又一次让我们失望了...

引用来自peske:https://github.com/aspnet/Home/issues/1719

【讨论】:

自从我刚到一家新公司并尝试附加到流程后,我做了一些事情,结果吓坏了。如果您在包管理器控制台中键入 `dotnet --version 并与其他没有问题的人进行检查,这可能表明 sdk 版本存在问题。【参考方案8】:

这是对与 OP 发布的内容略有不同的问题的答案。如果错误信息只有“dotnet.exe”,而不是 dotnet.exe 的完整路径(“C:\ProgramFiles\DotNet\dotnet.exe”),则检查 dotnet.exe 是否在 System.Environment 路径中,如果不要添加它并以管理员身份运行 VS

【讨论】:

【参考方案9】:

确保在您的启动项目中选择了启用匿名身份验证选项

【讨论】:

我有未经授权的问题;这修复了它【参考方案10】:

我的解决方案是从项目的根目录中删除 web.config。我正在处理一个 ASPnetcore 项目,一周后错误开始了。我不确定那个 web.config 文件是如何添加的,但是一旦我删除了他们的错误就解决了。

【讨论】:

【参考方案11】:

我在更新 Microsoft Visual Studio 2017 pro 后就遇到了这个问题,到目前为止,我找到了 3 个潜在的解决方案:

有时重启 Visual Studio 可以工作,

删除 %USERPROFILE%.nuget 可能会解决问题,

卸载,然后重新安装 dotnet SDK,

【讨论】:

【参考方案12】:

我的解决方案是关闭 Visual Studio 2017,然后重新打开解决方案。 :)

【讨论】:

【参考方案13】:

这是由 applicationhost.config 文件中的路径错误引起的,您可以在项目文件夹中找到该文件。转到您的项目文件夹。在那里你会找到一个名为 .vs 的文件夹,如果你找不到它,那么在打开的文件夹中你必须取消选中隐藏文件夹。找到它后,导航到 config 文件夹,您会找到 applicationhost.config。在记事本中打开此文件并提供您的项目位置:-

<virtualDirectory path="/" physicalPath="c:\users\*****\documents\visual studio 2015\Projects\<ProjectFolderName>\<Projectname>" />

希望这会对你有所帮助。

【讨论】:

【参考方案14】:

我的解决方案(没有管理员权限)是:

关闭 Visual Studio 2017 的所有实例 打开项目 干净 重建 运行

【讨论】:

【参考方案15】:

我能够通过删除 $(solutionDir).vs\config\applicationhost.config 来修复错误。重新启动 VS 2017 后重新创建文件。 在我将解决方案从一个位置移动到另一个位置后,该文件变得无效。

感谢https://elanderson.net/2016/09/unable-to-start-process-dotnet-exe/ 的创意。

【讨论】:

【参考方案16】:

VS2017 和解决方案具有 .NET Core 1.1 Web 应用程序。

这没有帮助:删除 .VS 文件夹,删除所有 bin 目录,重新启动 VS。

这有帮助:安装了最新的 SDK(.NET Core SDK 1.0.4)这个问题得到了解决。

我在重新启动机器后突然遇到这个问题,然后为 IIS 安装 php,IIS URL 重写。但只需尝试重新安装 SDK - 它本身可能就可以正常工作,而不是使用最新的 SDK。

【讨论】:

【参考方案17】:

我通过重新安装.NET CORE SDK

找到了解决方案

【讨论】:

【参考方案18】:

iisreset 在 cmd 中作为管理员为我完成了这项工作。

【讨论】:

【参考方案19】:

就我而言,当我的 VS 2017 具有 x64 时,我不小心为 x86 平台安装了 dotnet。我为 x64 平台重新安装了 dotnet,它现在可以正常工作了。

【讨论】:

好的。我有带有 x64 拱门的 Windows 10 和适用于 x64 拱门的 VS2017 Professional。我们的项目已更新到 .NET Core v2.1.401。我从问题中得到错误。我决定将 .NET Core SDK 更新到 v2.1.401,但意外下载并安装了 .NET Core SDK for x86 arch。我从问题中得到错误。过了一段时间,我说我有 x86 arch 的安装程序,然后下载并安装 x64 arch 的 .NET Core SDK。我的项目像更新前一样构建并运行良好。【参考方案20】:

如果使用IIS 而不是IIS Express,只需重新启动服务或:

    打开 IIS 从Sites 树视图打开您的项目文件夹 选择siteManage Website点击Restart按钮

【讨论】:

【参考方案21】:

对于因使用旧版本的 Visual Studio 导致 Visual Studio 2019 出现问题的人,只需删除项目根目录下的 .vs 文件夹并重新运行应用程序,问题必须得到解决。这对我有用。

【讨论】:

这应该是你做的第一件事。谢谢!【参考方案22】:
    我已从项目文件夹中删除了 .vs 文件夹。它解决了我的问题。 .vs 文件夹将在项目运行时创建

【讨论】:

【参考方案23】:

就我而言,我在一个解决方案中有几个项目,但没有一个被设置为启动项目。

所以,只需右键单击项目(不是解决方案!)选择设置为启动项目

【讨论】:

【参考方案24】:

在我的例子中,web.config 中有一个设置,超时没有正确定义,TFS 占位符在那里而不是实际值requestTimeout="00:06:00"

这就是它的样子。希望对你有帮助

<system.webServer>
    <handlers>
      <remove name="aspNetCore"/>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" requestTimeout="00:06:00" />
    <httpRedirect enabled="false" />
  </system.webServer>

【讨论】:

【参考方案25】:

我有这个,事实证明我是在发布版本中。更改为 Debug 构建,它工作正常。

【讨论】:

【参考方案26】:

就我而言,我只是将modules="AspNetCoreModuleV2" 更改为modules="AspNetCoreModule" 并且工作正常。最终的 web.config 如下所示。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" startupTimeLimit="3600" requestTimeout="23:00:00">
      <environmentVariables />
    </aspNetCore>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration> 

【讨论】:

【参考方案27】:

我必须修复安装 .net core 2.2 sdk 才能解决此问题。使用 VS 2017。

【讨论】:

【参考方案28】:

我的问题通过以下方式解决:

转到:.vs\config\applicationhost.config 文件 并将 overrideModeDefault 设置为 Allow 而不是 Deny

<section name="windowsAuthentication" overrideModeDefault="Allow" />

【讨论】:

【参考方案29】:

您的 web.config 中似乎没有 &lt;appSettings&gt; 标记。如果您添加,您将能够解决此问题。

例如:

<appSettings>
<add key="TestKey" value="TestValue"/>

【讨论】:

【参考方案30】:

在我的情况下,返回的错误是 503,而不是 500。事实证明,该网站的应用程序池正在使用更改密码的帐户。更新应用程序池标识的密码解决了该问题。

【讨论】:

以上是关于无法启动进程 dotnet.exe的主要内容,如果未能解决你的问题,请参考以下文章

尝试确定托管应用程序的 dotnet.exe 的进程 ID 时发生错误。发生一个或多个错误

尝试通过PowerShell脚本查找并终止进程

QProcess 无法启动进程:未找到进程

无法启动进程启动失败:等待应用启动超时

windows下启动的进程都是explorer的子进程吗

无法通过进程启动启动 exe