【问题标题】:Modifying ASP.NET app to run over HTTP instead of HTTPS修改 ASP.NET 应用程序以通过 HTTP 而不是 HTTPS 运行
【发布时间】:2017-08-16 22:23:49
【问题描述】:

先说一句:我知道这是一个可怕的想法,但请相信我。如果我处于任何其他位置,我会避免这样做。

我有一个在 Visual Studio 中构建的应用程序,它在 HTTPS 端口 44300 上使用 IIS。我正在用其他使用 HTTP 的 API 请求替换一些 HTTPS API 请求。 Chrome 会阻止这些带有混合内容错误的请求。我看过 other questions 提到同样的事情,并且都提出了不应该在生产中使用的 hacky 答案。

由于我无法让 API 切换到 HTTPS,因此我希望修改我的应用程序以在 HTTP 上运行。

我这样做的尝试是修改项目的属性。 (项目 -> 属性 -> Web -> 服务器)。

您可以看到我将项目 URL 设置为使用HTTPS

当我将该 url 更改为 http://localhost:44300 时,应用程序会在 https://localhost/ 启动我,即使这不是配置,并告诉我无法访问 localhost。没什么大不了的,我手动将 URL 更改为 http://localhost:44300,它会将我发送回 https://localhost/。当我忽略端口并手动输入 http://localhost 时,我得到一个 404 页面。

我还尝试在项目属性页面中将端口设置为80。当我删除 S 时,我会自动重定向到 https://localhost

该应用是使用 ASP.NET 构建的。

是否存在一些我在 IIS 和端口上看不到的明显问题?或者这是我的应用程序构建方式的问题?在这种情况下,这是一个糟糕的问题。

【问题讨论】:

  • 您是否也安装了正常的 IIS?它可能会重定向到localhost
  • 跟随these steps 反向可能会有所帮助
  • @Mitta 我相信它是随我的电脑一起安装的。我可以尝试重新安装它。
  • @fstylermiller 您可以在“Windows 功能”面板中进行检查。必须有一个“Internet 信息服务”节点。看看这个是否被勾选,如果是,则安装了 IIS。在这种情况下,看看这个 IIS 是否可能像前面提到的那样进行重定向。
  • @Mitta 很有趣,它在那里,但没有检查。

标签: c# asp.net visual-studio iis port


【解决方案1】:

检查您的 Web.config 是否包含以下行

<httpRedirect enabled="true" destination="https://localhost" /> 

UrlRewrite 配置

<action type="Redirect" url="http://example.com/{R:1}" />

如果您使用 Chrome,它也可能与 HTST 和 Chrome 有关。看到这个答案

Google Chrome redirecting localhost to https

【讨论】:

  • Web.config 没有其中任何一个,并且该答案并没有解决问题。不过,感谢您的努力。
【解决方案2】:

这最终成为我的应用程序配置方式的问题。

这条线是罪魁祸首:

filters.Add(new RequireHttpsAttribute());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2017-06-01
    • 2012-11-16
    • 2014-08-06
    • 2020-07-24
    相关资源
    最近更新 更多