无法启动 dotnet.exe 进程

75

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

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

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


看起来你正在尝试在IIS Express下运行一个可执行文件。我认为你的项目文件有点混乱。 - oɔɯǝɹ
从RC2升级到RTM的http://dot.net。 - Lex Li
5
我曾经遇到过这个问题,当我试图重命名我的命名空间时 - 只需打开 launchsettings.json 文件并将端口号更改为其他内容,然后执行 dotnet build 或从 VS 构建并尝试使用 IIS Express 启动。 - Jaya
我能够解决这个问题。在web.config中将 modules="AspNetCoreModule" 更改为 modules="AspNetCoreModuleV2" 。我的项目环境是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> - Ram Chandra Neupane
1
我的问题也和module="AspNetCoreModuleV2"有关。在我的情况下,另一位开发者不知情地推送了web.config文件,因为他的新版本VS方便地为他更改了它。我选择更新我的VS到15.9.13版本来解决这个问题,而不是让我自己改回来。 - James R.
如果您在x86(32位)上运行应用程序,请确保已安装DotNetCore 32位。https://dotnet.microsoft.com/download/dotnet-core/ 同样适用于64位。 - Pierre
32个回答

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

1

我通过重新安装.NET CORE SDK解决了问题。


0
我不得不进行修复安装 .NET Core 2.2 SDK 来解决这个问题。使用 VS 2017。

0

我遇到了这个问题,后来发现我处于发布版本。改为调试版本后就可以了。


0
在我的情况下,我有一个使用 .Net 6 的 DLL,

但是引用它的应用程序是 .Net 5。

将应用程序更新到 .Net 6 可以解决我的问题,如果无法升级应用程序,则如果可能的话,降级 DLL 到 .Net 5 将是下一步最好的选择。

0
在我的情况中,我有几个项目在一个解决方案中,但没有一个设置为启动项目。
因此,只需右键单击项目(而不是解决方案!),然后选择“设置为启动项目”。

0
在我的情况下,返回的错误是503,而不是500。原来网站的应用程序池正在使用一个密码已更改的帐户。更新应用程序池标识的密码解决了这个问题。

0

我发现在更新Docker后遇到了类似的问题。由于错误信息显示:拒绝访问。,更新可能已将配置设置还原为默认设置。

如果有人遇到这种困境,请尝试进行干净卸载并重新安装Docker,并按照您的操作系统(例如:带有WSL 2后端的Windows)的安装建议进行操作,然后删除项目的.vs文件夹,尝试重新启动Visual Studio并以管理员身份运行。

在所有这些操作之后,如果仍然遇到错误,请确保已安装正确的SDK!


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> 

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接