【问题标题】:Forcing to use SSL: An error ocurred attempting to determine the process id of the DNX process hosting your application强制使用 SSL:尝试确定托管应用程序的 DNX 进程的进程 ID 时发生错误
【发布时间】:2016-04-01 18:02:13
【问题描述】:

我想在我的网站上强制使用 https。如果找到this article 并且我使用了那里的代码。不幸的是,将此代码添加到 web.config 后,当我尝试在本地 IIS 上打开我的网站时出现此错误:

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

我的 web.config 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>

    <rewrite>
      <rules>
        <rule name="Force HTTPS" enabled="true">
          <match url="(.*)" ignoreCase="false" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>

    <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>

“启用匿名身份验证”或删除 project.lock.json 等其他 stackoverflow 问题的解决方案不起作用。

我正在使用 ASP.net Core RC1

【问题讨论】:

  • 在没有调试器的情况下运行(ctl+F5 而不是 F5)。调试启动器发送一个被新规则拒绝的 http starter 请求。
  • @Tratcher:是的,但是如果我想调试我的应用程序怎么办?我想同时拥有这个规则并使用调试
  • 然后你注释掉你的规则。他们现在不能一起工作。

标签: asp.net asp.net-core


【解决方案1】:

我花了几个小时研究了可怕的“在确定托管您的应用程序的 DNX 进程的进程 ID 时发生错误”错误的可能解决方案,直到我找到 Tratcher 的答案 - 它没有被标记为答案.

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

感谢 Tratcher!

【讨论】:

    【解决方案2】:

    除了之前曾为我工作过几次的 Radosław Chybicki 的出色答案之外,如果它仍然无法正常工作并且您没有获得“安装证书”的内容,则可能需要修复从控制面板快速安装 IIS。转到控制面板 > 程序和功能 > 右键单击​​ IIS Express 安装并选择修复。

    我不小心从本地计算机证书存储中删除了我的 IIS express 证书。

    【讨论】:

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