尝试确定托管您的应用程序的DNX进程的进程ID时发生错误


101

尝试启动应用程序时收到此错误消息。

尝试确定托管您的应用程序的DNX进程的进程ID时发生错误

有办法解决这个问题吗?

Answers:


151

对我来说,问题是通过关闭Visual Studio,删除

project.lock.json

然后再次启动Visual Studio。

编辑:我正在使用RC1。


2
解决了我在RC1项目中
遇到的

@NadavHury同样在这里:)
ManyRootsofAllEvil

1
解决了我从PluralSight下载的示例RC1应用程序遇到的问题,非常感谢
tomRedox 2016年

5
这不再起作用了。np微软。我们会解决的。一次又一次地…再次

1
在哪里project.lock.json
CodyBugstein,

34

Microsoft按照发行说明中的说明更改了托管模型。

project.json替换依赖项

“ Microsoft.AspNet.Server.IIS”:“ 1.0.0-beta7”

“ Microsoft.AspNet.Server.Kestrel”:“ 1.0.0-beta8”


web.confighandlers部分中,删除除以下各项以外的所有条目

<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />

完整的web.config外观如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>
</configuration>

RC1:使用RC1时,移动解决方案文件夹后出现错误。删除binobj文件夹后,所有内容均恢复正常。
如user764754所述,仅重新启动Visual Studio也会有所帮助。


在新的托管模型中,您根本不需要使用web.config,并且可以将其完全删除。由于在某种程度上绕过了IIS,因此httpPlatformHandler和Startup.cs替代了web.config。
cygnim

2
首先安装1.0.0-beta8之后,然后在VS 2015中创建一个新的ASP.NET项目之后,我使用最新的模板。所有条目都是正确的,但仍然收到与Domysee相同的错误。有人可以解释“%DNX_PATH%”和“%DNX_ARGS%”是什么意思吗?
好的,2015年

1
我应该澄清,您的项目中不需要web.config。编译期间会生成一个最小的web.config文件,该文件基本上将HttpPlatformHandler添加到管道中,并将流量从IIS引向Kestrel服务器。没错,这里有一个web.config文件,但是在您的项目代码库中不是必需的。
cygnim

3
只是重新启动VS,对我来说,RC-1不需要删除。
user764754 2015年

2
我在RC1上遇到了同样的问题,对我来说,解决方案是删除web.config(在wwwroot中)
rad

30

对于遇到此问题的其他人,在其他解决方案不起作用的情况下-我在此线程中找到了答案: 强制使用SSL:尝试确定托管您的应用程序的DNX进程的进程ID时发生错误

如果您的项目使用或强制使用SSL而不进行调试(CTRL + F5)来运行它,它将要求您生成本地SSL证书,然后调试将起作用并且错误将消失。


这为我解决了。我已将项目迁移到未安装证书的新计算机上。谢谢。
佩斯

很好,就是这样!我将在“使用Facebook ...启用身份验证...”页面上注意到这一点,因为他们的说明包括强制使用SSL。
N8allan

我无法通过执行CTRL + F5使其工作。F5 运行此命令后可以信任我的iis快速证书。我没有任何警告,但这已为我解决。
乔什·

11

就其价值而言,这是一条通用错误消息,对于在httpPlatformHandler无法启动给定​​可执行文件(在这种情况下为dnx)的任何数量的问题上,它可能都是一个红色提示。

就我而言,我收到此错误是由于误解了launchSettings.json文件。我试图为我的应用程序启用https端点,并错误地在我的applicationUrl中复制了sslport。据我了解,applicationUrl应该是应用程序的http主机名/端口,并且通过填充sslPort,它只是将IIS Express环境配置为在sslPort提供的端口上的applicationUrl中提供的主机名上侦听https。

例如:

  "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
       "applicationUrl": "http://localhost:44000",
       "sslPort": 44300
      }
  }

在localhost上提供以下两个端点。

  • HTTP通过端口44400
  • 通过端口44300的Https

如果在applicationUrl和sslPort设置中使用相同的端口,则会收到与此线程相关的错误。

这对我来说在RC1上是对的


为什么sslPort应该不同于applicationUrl?在RTM之前,它一直为我工作……
Boris Lipschitz

我遇到了错误:无法连接到Web服务器'IIS Express',并且删除了“ \ .vs \ config \ applicationhost.config文件”后,出现了错误“尝试发生错误...”。在项目属性>调试中,我取消了SSL的调试,运行调试器(正在运行),再次勾选SSL,然后将URL复制到“ App URL”,以SSL模式进行调试再次起作用。Windows更新后出现错误,但不确定是否是原因。我的iisSettings现在是“ iisExpress”:{“ applicationUrl”:“ localhost:44369 ”,“ sslPort”:44369} ..如果端口号不同,它可以工作
JimiSweden

6

可以升级,我发现我不得不在这里浏览新的更新模板。

在wwwroot中更新您的web.config以包括:

<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>

您还需要 通过修改project.json 来更改使用Kestrel调试项目的方式:

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}

并修改您的hosting.ini

server=Microsoft.AspNet.Server.Kestrel

并将其添加到startup.cs中的Configure方法中

// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler(); 

添加这些引用应该可以使您运行项目。


5

我遇到此问题是由于项目配置尝试启动https:// localhost而不是http。右键单击Web项目的“调试”下,并将“应用程序URL”调整为http而不是https。 在此处输入图片说明

解决此问题的另一种方法是将启动器从“ IIS Express”切换为“ Web”


3

在Visual Studio中:

在遵循本教程的过程中,我收到了类似的错误。

首先,我收到错误消息:“尝试确定dotnet.exe的进程ID时发生错误...”,我采取了以下步骤。

  1. 我在不调试CTRL + F5的情况下启动了我的应用程序。
  2. 然后为我提供了一个接受本地主机自签名证书的选项。
  3. 我按照提示进行操作,然后在项目调试设置中启用SSL后,可以使用复制的AppUrl访问我的应用程序。

在尝试一些解决该错误的方法时,我也遇到了该错误。“尝试确定托管您的应用程序的DNX进程的进程ID时发生错误”

这是由运行该应用程序的另一个实例引起的。

我希望这个答案对某人有帮助。


等待,所以答案是“由运行该应用程序的另一个实例引起的”?应该立即使这一点更加明显。
2016年

2

在我的asp net core 1.1,.net framework 4.5.2项目中,该错误未涉及dnx,因为该错误不再存在。相反,它引用了项目名称exe。该错误的另一个版本仅指无法连接到iis express。

问题在于引入了规范的主机名重写规则,该规则试图强制所有连接使用以www开头的主机名。例如,将gty.org重定向到www.gty.org以符合我们的ssl证书。这在生产中很好,但是您不能强制https:// localhost:44347 /以www开头,并且期望iis express能够处理它。

<rule name="CanonicalHostNameAddwww" enabled="true" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">        
        <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}{HTTP_URL}"  appendQueryString="false" redirectType="Permanent" />
</rule>

解决方案是在Visual Studio中运行时注释掉规则或添加条件:

<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />

2

假设根据安装情况在启用了SSL的情况下运行IIS Express,则必须将IIS Express开发证书(颁发给“ localhost” /由“ localhost”颁发)放在[本地计算机\个人\证书]或[本地计算机]中\受信任的根证书\证书]。其中之一应该起作用。(使用Windows 10 + VS2015)。高温超导


在本地计算机\受信任的根证书\证书中添加IIS Express开发证书对我来说很有效。谢谢!(对于其他任何人,就我而言,我已经在“本地计算机\个人\证书”中拥有证书)
David Aleu


1

切换设置并在“ 项目”>“属性”>“调试”中禁用了“ 启用匿名身份验证 ”时,遇到了麻烦。确保已启用它。 关闭并重新启动该项目,然后重试。希望这可以帮助。


我遇到了同样的问题,但我不仅要启用匿名身份验证,还必须启用匿名身份验证或Windows身份验证。如果两个都是假的,我得到了错误。
birken25年

1

我使用了RC1和EF First Code Approach。开始调查的一个好主意是运行带有以下选项的项目:“无需调试即可启动项目”(Ctrl + F5)。然后,我得到了更有意义的错误:“无法读取配置节'entityFramework',因为它缺少节声明。” 由于web.config文件,它对我不起作用。


1
  1. 更新dnvm
  2. 将global.json SDK版本更改为dnvm的默认版本
  3. 无需触摸project.json或project.lock.json

0

从beta7-> beta8升级时,我遇到了这个问题,Ben M和Domysee提供的建议对我有用。但是,我的一位同事仍然在运行dnxcore50仅针对目标的项目时遇到问题。如果确定已运行以下命令:

dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86

特别是将第二个命令固定在他的计算机上。您也可以再次检查该文件夹中是否包含dnx.exe

%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-beta8\bin

0

我刚刚发现了另一个导致此问题的问题!

web.config在项目根目录中,有一些狡猾的IIS URL重写规则可以强制实施HTTPS。删除这些规则解决了问题。


0

太多的事情都可能导致此错误。以下是一些对我有用的方法:

  1. 只需删除web.configwwwroot文件夹中的。它将在编译时正确地重新创建。
  2. 如果您尝试使用SSL并将其IIS Express移动SSL CertTrusted Root Certification Authorities文件夹中,则无法使用。在您要运行的项目的Debug标签中Properties。尝试取消Enable SSL选中该复选框,然后再次单击以启用它并获取其他端口。您可能必须执行几次。

0

另一个可能的解决方案
对于使用SSL设置的任何人,我发现只需将launchSettings.json文件中的SSL端口更改为附近的另一个端口即可解决此问题。

仅供参考,我无法在使用原始端口的计算机上找到任何东西,也没有出现端口使用错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.