Answers:
对我来说,问题是通过关闭Visual Studio,删除
project.lock.json
然后再次启动Visual Studio。
编辑:我正在使用RC1。
project.lock.json
?
在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也会有所帮助。
对于遇到此问题的其他人,在其他解决方案不起作用的情况下-我在此线程中找到了答案: 强制使用SSL:尝试确定托管您的应用程序的DNX进程的进程ID时发生错误
如果您的项目使用或强制使用SSL而不进行调试(CTRL + F5)来运行它,它将要求您生成本地SSL证书,然后调试将起作用并且错误将消失。
就其价值而言,这是一条通用错误消息,对于在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上是对的
可以升级,我发现我不得不在这里浏览新的更新模板。
在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();
添加这些引用应该可以使您运行项目。
我遇到此问题是由于项目配置尝试启动https:// localhost而不是http。右键单击Web项目的“调试”下,并将“应用程序URL”调整为http而不是https。
解决此问题的另一种方法是将启动器从“ IIS Express”切换为“ Web”
在遵循本教程的过程中,我收到了类似的错误。
首先,我收到错误消息:“尝试确定dotnet.exe的进程ID时发生错误...”,我采取了以下步骤。
在尝试一些解决该错误的方法时,我也遇到了该错误。“尝试确定托管您的应用程序的DNX进程的进程ID时发生错误”
这是由运行该应用程序的另一个实例引起的。
我希望这个答案对某人有帮助。
在我的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" />
假设根据安装情况在启用了SSL的情况下运行IIS Express,则必须将IIS Express开发证书(颁发给“ localhost” /由“ localhost”颁发)放在[本地计算机\个人\证书]或[本地计算机]中\受信任的根证书\证书]。其中之一应该起作用。(使用Windows 10 + VS2015)。高温超导
检查web.config文件中的无效条目。例如,在那里有“ entityFramework”标签对我来说会导致这个问题。
从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
太多的事情都可能导致此错误。以下是一些对我有用的方法:
web.config
您wwwroot
文件夹中的。它将在编译时正确地重新创建。SSL
并将其IIS Express
移动SSL Cert
到Trusted Root Certification Authorities
文件夹中,则无法使用。在您要运行的项目的Debug
标签中Properties
。尝试取消Enable SSL
选中该复选框,然后再次单击以启用它并获取其他端口。您可能必须执行几次。