尝试确定托pipe应用程序的DNX进程的进程ID时发生错误
当我尝试启动应用程序时出现此错误消息。
尝试确定托pipe应用程序的DNX进程的进程ID时发生错误
有没有办法解决这个问题?
对于我来说,通过closuresVisual Studio来解决问题,删除
project.lock.json
并再次启动Visual Studio。
编辑 :我正在使用RC1。
Microsoft按照发行说明中的描述更改了托pipe模式。
在project.json
replace依赖项
“Microsoft.AspNet.Server.IIS”:“1.0.0-beta7”
同
“Microsoft.AspNet.Server.Kestrel”:“1.0.0-beta8”
在handlers
部分的web.config
中删除每个条目
<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时,移动解决scheme文件夹后出现错误。 删除bin
和obj
文件夹后,所有的东西都再次运行。
正如user764754指出的,只需重新启动Visual Studio也可以帮助。
对于其他人有这个问题,在其他解决scheme不起作用的情况下,我在这个线程中find了答案: 强制使用SSL:尝试确定托pipe您的应用程序的DNX进程的进程ID时发生错误
如果你的项目使用或者强制SSL运行它而不进行debugging(CTRL + F5),它会要求你生成一个本地的SSL证书,之后的debugging工作,错误将会消失。
对于它的价值,这是一个通用的错误消息 ,可以作为一个httpPlatformHandler无法启动给定的可执行文件(本例中为dnx)的任何数量的问题的鲱鱼。
在我的情况下,我收到这个错误,直接导致误解launchSettings.json文件。 我正在尝试为我的应用程序启用https端点,并错误地在我的applicationUrl中复制了sslport。 据我了解,applicationUrl应该是应用程序的http主机名/端口,通过填充sslPort,它只是configurationIIS Express环境,以监听sslPort中提供的端口上的applicationUrl中给出的主机名上的https。
例如:
"iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:44000", "sslPort": 44300 } }
在本地主机上提供以下两个端点。
- Http通过端口44400
- 通过端口44300
如果您在applicationUrl和sslPort设置中具有相同的端口,则会收到与此线程关联的错误。
RC1对我来说这是真的
有可能升级,我发现我不得不在这里查看新的更新模板。
在wwwroot中更新你的web.config包含:
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
您还需要通过修改您的project.json来更改项目使用Kestrel进行debugging的方式:
"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();
添加这些引用应允许您运行该项目。
我遇到了这个问题,由于项目configuration尝试启动https:// localhost而不是http。 右键单击webproject,在“debugging”下,并将“应用程序URL”调整为http而不是https。
另一种解决方法是将启动器从“IIS Express”切换到“Web”
在Visual Studio中:
按照这个教程,我收到了一个类似的错误。
首先,我收到错误:“尝试确定dotnet.exe的进程ID发生错误…”我采取了以下步骤。
- 我开始我的应用程序没有debuggingCTRL + F5。
- 然后我提供了一个选项来接受本地主机的自签名证书。
- 我遵循提示,然后使用在项目debugging设置中启用SSL后复制的AppUrl访问我的应用程序。
虽然尝试一些事情来解决这个错误,我也遇到了这个错误。 “尝试确定托pipe应用程序的DNX进程的进程ID时发生错误”
这是由于运行了另一个应用程序实例造成的。
我希望这个答案有助于某人。
在我的情况下,在一个aspnetworking核心1.1,.NET框架4.5.2项目,错误没有提到dnx,因为没有更多。 相反,它提到了项目名称exe。 错误的另一个版本提到简单地无法连接到iis express。
问题是引入规范主机名重写规则 ,试图强制所有连接都有一个以www开头的主机名。 例如将gty.orgredirect到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>
解决scheme是在visual studio中运行时注释掉规则或者添加一个条件:
<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
假设您正在运行启用了SSL的IIS Express,具体取决于您的安装,您必须将您的IIS Express开发证书(颁发给“localhost”/颁发者为“localhost”)放在[Local Computer \ Personal \ Certificates]或[Local Computer \受信任的根证书\证书]。 其中之一应该工作。 (使用Windows 10 + VS2015)。 HTH
检查web.config文件中的无效条目。 例如,具有“entityFramework”标签就会导致这个问题。
当我切换设置并禁用了“项目”>“属性”>“debugging”中的“ 启用匿名身份validation ”时,我遇到了这个问题。 确保它已启用。 closures并重新启动项目,然后再试一次。 希望这可以帮助。
我使用RC1和EF第一代码方法。 开始调查的好主意是运行带有选项的项目:“不启动项目”(Ctrl + F5)。 然后我得到了更有意义的错误:“configuration节'entityFramework'不能被读取,因为它缺less一个节声明。 由于web.config文件,它不适用于我。
- 更新dnvm
- 更改global.json sdk版本作为dnvm的默认值
- 无需触摸project.json或project.lock.json
从beta7 – > beta8升级时,我遇到了这个问题,Ben M和Domysee提供的build议为我工作。 但是,我的一个同事在运行我们的只针对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
我刚刚发现了一个导致这个问题的问题!
项目根目录中的web.config
有一些恶意的IIS URL重写规则来执行HTTPS。 删除这些规则解决了这个问题。
有太多的东西可能会导致这个错误。 这里有几个为我工作:
- 只需删除您的
wwwroot
文件夹中的web.config
。 它将在编译时正确重新创build。 - 如果您尝试使用
SSL
并在IIS Express
中将SSL Cert
移动到“Trusted Root Certification Authorities
文件夹不起作用。 您尝试运行的项目的“Properties
”的“Debug
选项卡中。 尝试unclickingEnable SSL
checkbox,然后再次单击以启用它,并获得一个不同的端口。 你可能需要做几次。
另一个潜在的解
对于任何使用SSL设置的用户,我发现只要将launchSettings.json
文件中的SSL端口更改为另一个附近的端口即可解决问题。
仅供参考,我在使用原始端口的机器上找不到任何东西,也没有得到端口使用错误。