我在尝试启动应用程序时收到此错误消息。
尝试确定DNX的进程ID时发生错误 托管您的申请的流程
有没有办法解决问题?
答案 0 :(得分:151)
对我来说,问题是通过关闭Visual Studio,删除
来解决的project.lock.json
再次启动Visual Studio。
编辑:我使用的是RC1。
答案 1 :(得分:34)
Microsoft按照release notes。
中的说明更改了托管模型在project.json
中替换依赖
“Microsoft.AspNet.Server.IIS”:“1.0.0-beta7”
与
“Microsoft.AspNet.Server.Kestrel”:“1.0.0-beta8”
在web.config
部分的handlers
中删除除
<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时,移动解决方案文件夹后出错。删除bin
和obj
文件夹后,所有内容都重新运行
正如user764754所指出的那样,只需重新启动Visual Studio也可以提供帮助。
答案 2 :(得分:30)
对于遇到此问题的其他人,在其他解决方案不起作用的情况下 - 我在这个帖子中找到了答案: Forcing to use SSL: An error ocurred attempting to determine the process id of the DNX process hosting your application
我的项目使用或强制执行SSL而不先调试(CTRL + F5),它会要求您生成本地SSL证书,之后调试将起作用并且错误将消失。
答案 3 :(得分:11)
对于它的价值,这是一个generic error message,它可以作为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上提供以下两个端点。
如果您在applicationUrl和sslPort设置中拥有相同的端口,则会收到与此线程关联的错误。
RC1
对我来说也是如此答案 4 :(得分:6)
可以升级,我发现我必须查看新的更新模板here。
在wwwroot中更新您的web.config以包含:
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
您还需要更改项目调试的方式using Kestrel 通过修改project.json:
"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 :(得分:5)
由于项目配置尝试启动https://localhost而不是http,我遇到了这个问题。右键单击web项目,在&#34; Debug&#34;并调整&#34; App URL&#34;是http而不是https。
解决这个问题的另一种方法是从#34; IIS Express&#34;切换启动器。到&#34; Web&#34;
答案 6 :(得分:3)
在学习本教程时,我收到了类似的错误。
首先,我收到错误:“尝试确定dotnet.exe的进程ID时出错...”我采取了以下步骤。
在尝试解决该错误的一些事情时,我也遇到了这个错误。 “尝试确定托管应用程序的DNX进程的进程ID时发生错误”
这是由于另一个应用程序实例正在运行造成的。
我希望这个答案有助于某人。
答案 7 :(得分:2)
假设您正在运行启用了SSL的IIS Express,具体取决于您的安装,您必须将您的IIS Express开发证书(发布到“localhost”/发布者“localhost”)放入[本地计算机\个人\证书]或[本地计算机\受信任的根证书\证书]。其中一个应该工作。 (使用Windows 10 + VS2015)。 HTH
答案 8 :(得分: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" />
答案 9 :(得分:1)
当我切换设置并禁用&#34; 启用匿名身份验证&#34;时,我遇到了这个问题。在项目中&gt;属性&gt;调试。 确保已启用。 关闭并重新启动项目,然后再试一次。 希望这会有所帮助。
答案 10 :(得分:1)
我使用RC1和EF First Code Approach。开始调查的好主意是使用选项运行项目:&#34;启动项目而不进行重新调整&#34; (按Ctrl + F5)。然后我为我得到了更有意义的错误:&#34;配置部分&#39; entityFramework&#39;无法阅读,因为它缺少一个部分声明。&#34;由于web.config文件,它对我不起作用。
答案 11 :(得分:1)
答案 12 :(得分:1)
检查web.config文件是否存在无效条目。例如,拥有&#34; entityFramework&#34;那里的标签给我带来了这个问题。
答案 13 :(得分:0)
从beta7升级时 - &gt; 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
答案 14 :(得分:0)
有很多事情可能导致此错误。以下是一些对我有用的内容:
web.config
文件夹中的wwwroot
即可。它将在编译时正确重新创建。SSL
并在IIS Express
中,将SSL Cert
移至Trusted Root Certification Authorities
文件夹则无效。在您尝试运行的项目的Debug
的{{1}}标签中。尝试取消选中Properties
复选框,然后再次单击以启用它并获取其他端口。你可能不得不这样做几次。答案 15 :(得分:0)
我刚刚发现另外一个导致此问题的问题!
项目根目录中的 web.config
有一些狡猾的IIS URL重写规则来强制执行HTTPS。删除这些规则解决了这个问题。
答案 16 :(得分:0)
另一种可能的解决方案
对于使用SSL设置的任何人,我发现只需将launchSettings.json
文件中的SSL端口更改为另一个附近的端口即可解决问题。
仅供参考,我在使用原始端口的机器上找不到任何内容,也没有使用端口使用错误。
答案 17 :(得分:-1)
对我来说,问题是通过关闭Visual Studio,删除
来解决的WebApplication.csproj.user
再次启动Visual Studio。