无法启动进程dotnet.exe

时间:2016-07-20 18:46:43

标签: c# asp.net visual-studio .net-core

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

  

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

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

30 个答案:

答案 0 :(得分:101)

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

答案 1 :(得分:34)

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

答案 2 :(得分:13)

我的案例中的问题是

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

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

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

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

<强>溶液

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

答案 3 :(得分:11)

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

答案 4 :(得分:9)

  1. 关闭VS 2015(似乎问题已在VS 2017中解决)。
  2. 删除\ bin和\ obj中的所有文件。删除project.lock.json。
  3. 运行VS。
  4. 重建。
  5. 如果上述解决方案在VS2017 .Net Core中无效,则以VS2017身份运行为ADMIN。 如果您的计算机没有ADMIN访问权限,则可以更改“启动设置”#j;&#39;如下所示在端口8080上工作,之后按照上述4个步骤工作。

    &#34; applicationUrl&#34;:&#34; http://localhost:8080/&#34;,

答案 5 :(得分:6)

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

答案 6 :(得分:5)

这对我有用:

  

我遇到了同样的问题,结果发现我没有正确版本的运行时(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

答案 7 :(得分:4)

这是一个与OP发布的问题略有不同的问题的答案。如果错误消息只有&#34; dotnet.exe&#34;,而不是dotnet.exe的完整路径(&#34; C:\ ProgramFiles \ DotNet \ dotnet.exe&#34;),那么检查是否有dotnet .exe位于System.Environment路径中,如果不添加它并以管理员身份运行VS

答案 8 :(得分:3)

我的解决方案是关闭2017年的visual studio,并重新打开解决方案。 :)

答案 9 :(得分:3)

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

答案 10 :(得分:3)

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

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

希望这会对你有所帮助。

答案 11 :(得分:2)

在启动项目中,请确保已选择“启用匿名身份验证”选项 enter image description here

答案 12 :(得分:2)

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

  • 关闭所有visual studio 2017的实例
  • 打开项目
  • 清洁
  • 重建
  • 运行

答案 13 :(得分:2)

我在更新Microsoft Visual Studio 2017专业版后立即解决了这个问题,到目前为止,我找到了3个可能的解决方案:

  • 有时重新启动Visual Studio,

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

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

答案 14 :(得分:2)

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

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

答案 15 :(得分:1)

我通过重新安装 .NET CORE SDK

找到了解决方案

答案 16 :(得分:1)

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

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

这有助于:已安装的最新SDK (.NET Core SDK 1.0.4)此问题已得到解决。

我在机器重新启动后突然出现此问题,然后安装PHP for IIS,IIS URL Rewrite。但只是尝试重新安装SDK - 它本身可以正常工作,而不是使用最新的SDK。

答案 17 :(得分:1)

iisreset(以管理员身份在cmd中完成)。

答案 18 :(得分:1)

在我的情况下,当我的VS 2017具有x64时,我不小心为x86平台安装了dotnet。我为x64平台重新安装了dotnet,现在可以正常使用了。

答案 19 :(得分:0)

我有这个,结果证明我在发布版本中。更改为“调试”版本,并且可以正常工作。

答案 20 :(得分:0)

  1. 我已从项目文件夹中删除了 .vs 文件夹。它解决了我的问题。
  2. 项目运行时将创建 .vs 文件夹

答案 21 :(得分:0)

就我而言,返回的错误是503,而不是500。原来,该网站的应用程序池使用的帐户已更改了密码。更新应用程序池标识的密码解决了该问题。

答案 22 :(得分:0)

看起来您的web.config中没有<appSettings>标记。如果添加,您将能够解决此问题。

例如:

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

答案 23 :(得分:0)

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

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

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

答案 24 :(得分:0)

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

答案 25 :(得分:0)

对于谁因为使用了Visual Studio的早期版本而遇到Visual Studio 2019的问题,请删除项目根目录中的.vs文件夹并重新运行应用程序,则必须解决此问题。那对我有用。

答案 26 :(得分:0)

如果使用IIS代替IIS Express,只需重新启动服务或:

  1. 打开IIS
  2. Sites树形视图中打开您的项目文件夹
  3. 选择site
  4. Manage Website中单击Restart按钮

答案 27 :(得分:0)

就我而言,我只是将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> 

答案 28 :(得分:0)

在我的情况下,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>

答案 29 :(得分:0)

在我的情况下,我在一个解决方案中有一些项目,但没有一个项目被设置为启动项目。

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