【问题标题】:An error occurred attempting to determine the process id of the DNX process hosting your application尝试确定托管您的应用程序的 DNX 进程的进程 ID 时发生错误
【发布时间】:2016-01-14 23:11:03
【问题描述】:

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

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

有没有办法解决这个问题?

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

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

    project.lock.json
    

    并再次启动 Visual Studio。

    编辑:我使用的是 RC1。

    【讨论】:

    • 解决了我在 RC1 项目中的问题
    • @NadavHury 这里也一样 :)
    • 解决了我从 PluralSight 下载的示例 RC1 应用程序遇到的问题,非常感谢
    • 这不再起作用了。 np 微软。我们会弄清楚的。一次又一次……再一次
    • project.lock.json在哪里?
    【解决方案2】:

    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 时,我在移动解决方案文件夹后出现错误。删除 binobj 文件夹后,一切正常。
    正如 user764754 所说,只需重新启动 Visual Studio 也会有所帮助。

    【讨论】:

    • 在新的托管模型中,您根本不使用 web.config,可以将其完全删除。 httpPlatformHandler 和 Startup.cs 取代了 web.config,因为您在一定程度上绕过了 IIS。
    • 我先安装 1.0.0-beta8 后使用最新的模板,然后在 VS 2015 中创建一个新的 ASP.NET 项目。所有条目都是正确的,但我仍然得到与 Domysee 相同的错误。有人可以解释一下“%DNX_PATH%”和“%DNX_ARGS%”是什么意思吗?
    • 我应该澄清一下,您的项目中不需要 web.config。在编译期间生成一个最小的 web.config 文件,它基本上将 HttpPlatformHandler 添加到管道并将流量从 IIS 引导到 Kestrel 服务器。所以你是对的,有一个 web.config 文件,但在你的项目代码库中不是必需的。
    • 只需重新启动 VS 即可使用 RC-1 为我完成此操作,无需删除。
    • 我对 RC1 有同样的问题,我的解决方案是删除 web.config(在 wwwroot 中)
    【解决方案3】:

    对于遇到此问题的其他人,如果其他解决方案不起作用 - 我在此线程中找到了答案: Forcing to use SSL: An error ocurred attempting to determine the process id of the DNX process hosting your application

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

    【讨论】:

    • 这为我解决了问题。我已将我的项目迁移到未安装证书的新计算机上。谢谢。
    • 很好,就是这样!我将在“使用 Facebook 启用身份验证...”页面上注明这一点,因为他们的说明包括强制 SSL。
    • 我无法通过 CTRL+F5 使其工作。 F5 在running this 之后工作以信任我的 iis express 证书。我没有任何警告,但这为我解决了问题。
    【解决方案4】:

    对于它的价值,这是一个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 上提供以下两个端点。

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

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

    RC1

    上这对我来说是正确的

    【讨论】:

    • 为什么sslPort应该和applicationUrl不一样?它曾经对我有用,直到 RTM...
    • 我遇到错误:无法连接到 Web 服务器 'IIS Express' ,在删除“\.vs\config\applicationhost.config 文件”后,我收到错误“尝试发生错误。 ……”。在项目属性>调试中,我取消勾选 SSL,运行调试器(工作),再次勾选 SSL 并将 URL 复制到“App URL”,在 SSL 模式下调试再次工作。 Windows更新后出现该错误,但不确定是否是原因。我的 iisSettings 现在是 "iisExpress": { "applicationUrl": "localhost:44369", "sslPort": 44369 } .. 如果端口号不同,它可以工作
    【解决方案5】:

    可以升级,我发现我必须浏览新的更新模板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(); 
    

    添加这些引用应该允许您运行项目。

    【讨论】:

      【解决方案6】:

      由于项目配置尝试启动 https://localhost 而不是 http,我遇到了这个问题。右键单击 web 项目,在“Debug”下,将“App URL”调整为 http 而不是 https。

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

      【讨论】:

        【解决方案7】:

        在 Visual Studio 中:

        在学习本教程时,我收到了类似的错误。

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

        1. 我在没有调试 CTRL+F5 的情况下启动了我的应用程序。
        2. 然后我看到了一个选项,可以接受 localhost 的自签名证书。
        3. 我按照提示操作,然后我能够使用在项目调试设置中启用 SSL 后复制的 AppUrl 访问我的应用程序。

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

        这是由于应用程序的另一个实例正在运行而引起的。

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

        【讨论】:

        • 等等,所以答案是“由另一个应用程序实例运行引起的”?应该立即使这一点更加明显。
        【解决方案8】:

        在我的 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】:

          假设您正在运行启用 SSL 的 IIS Express,具体取决于您的安装,您必须将 IIS Express 开发证书(颁发给“localhost”/由“localhost”颁发)放入 [Local Computer\Personal\Certificates] 或[本地计算机\受信任的根证书\证书]。其中之一应该工作。 (使用 Windows 10 + VS2015)。高温

          【讨论】:

          • 在本地计算机\Trusted Root Certification\Certificates 中添加 IIS Express 开发证书为我完成了这项工作。谢谢! (对于其他任何人,就我而言,我已经在本地计算机\个人\证书中拥有证书)
          【解决方案10】:

          检查 web.config 文件中的无效条目。例如,那里有“entityFramework”标签会给我带来这个问题。

          【讨论】:

            【解决方案11】:

            我在切换设置并在“项目”>“属性”>“调试”中禁用了“启用匿名身份验证”时遇到了这个问题。 确保它已启用。 关闭并重新启动项目,然后重试。 希望这会有所帮助。

            【讨论】:

            • 我遇到了同样的问题,但我不仅必须启用匿名,还必须启用匿名或 Windows 身份验证。如果两者都是假的,我得到了错误。
            【解决方案12】:

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

            【讨论】:

              【解决方案13】:
              1. 更新 dnvm
              2. 将 global.json sdk 版本更改为 dnvm 的默认版本
              3. 无需接触 project.json 或 project.lock.json

              【讨论】:

                【解决方案14】:

                从 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
                

                【讨论】:

                  【解决方案15】:

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

                  项目根目录中的web.config 有一些狡猾的 IIS URL 重写规则来强制执行 HTTPS。删除这些规则解决了问题。

                  【讨论】:

                    【解决方案16】:

                    有太多的事情可能导致这个错误。以下是一些对我有用的:

                    1. 只需删除wwwroot 文件夹中的web.config。它将在编译时正确重新创建。
                    2. 如果您尝试使用SSLIIS Express 并将SSL Cert 移动到Trusted Root Certification Authorities 文件夹不起作用。在您尝试运行的项目的PropertiesDebug 选项卡中。尝试取消单击Enable SSL 复选框,然后再次单击以启用它并获取不同的端口。您可能需要多次执行此操作。

                    【讨论】:

                      【解决方案17】:

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

                      仅供参考,我在使用原始端口的机器上找不到任何东西,也没有收到端口正在使用错误。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2017-04-19
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多