当我添加网址重写代码在webconfig,然后将其发布到azureconfig。它会自动重定向到https,即使我试图访问网站与http。
<rewrite>
<rules>
<rule name="Redirect to https">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
</rules>
</rewrite>
但是当我在本地机器上运行相同的代码时,它会出现下面的错误。
此站点无法提供安全连接
当我在本地机器上运行上述代码时,如何解决上述错误?
6条答案
按热度按时间dxpyg8gm1#
我个人所做的就是将重写的配置放入Web.Release.config中,因为让它在本地工作有点麻烦。
问题是IIS Express将在不同的端口上公开HTTP和HTTPS,因此如果您从
http://localhost:1234
重定向到https://localhost:1234
,它根本不起作用,因为IIS Express在https://localhost:44300
之类的端口上公开HTTPS。您可以在IIS Express上启用SSL/TLS(您应该这样做),但我会将重写规则仅保留给Release模式。
下面是一个示例Web.Release.config文件:
注意,我还在这里添加了HSTS,它在发布模式下将
<rewrite>
元素插入Web.config,而<system.webServer>
元素已经存在于Web.config中,否则我将插入它。dfty9e192#
这总能为我解决问题。
wrrgggsh3#
您必须将Visual Studio服务器配置为与HTTPS一起使用。有关详细信息,请访问此链接:
HTTPS with Visual Studio's built-in ASP.NET Development Server
mzsu5hc04#
我用旧版本的Chrome网络浏览器解决了这个问题。
这是list of older chrome versions,您可以在其中下载并安装它。
60.0.3112.90 -对于Ubuntu来说是一个很适合我的版本。
也许它的速度有点慢,然后更新的版本,但我发现它是相当不错的生产(:
c2e8gylq5#
在我这边,我发现有一个javascript代码将站点从http重定向到https。因此,尝试探索您的环境,如果有其他代码负责这个问题。希望这能有所帮助。谢谢
7gyucuyw6#
我刚刚更改了项目属性的Web选项卡中的URL,以使用以443开头的PORT,例如44301。另外,请确保将http更改为https。这对我很有效。