我在IIS 10中有URL重写规则,以这种方式强制执行所有http请求到https,它完美无缺。
<rewrite>
<rules>
<rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{SERVER_PORT_SECURE}" pattern="^0$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
这就是扭曲.. 我在同一台服务器上托管一个ClickOnce应用程序,当安装程序尝试下载应用程序时,它会出错 URLDownloadToCacheFile因HRESULT'-2146697202失败'错误:尝试下载时出错
虽然URL是通过此错误中提到的浏览器进行的。
根据微软文档错误描述是
如果要安装的ClickOnce应用程序的安装URL从非安全站点重定向到安全站点(反之亦然),安装将失败,因为Internet Explorer警告会中断它。
**安装程序在内部使用IE来下载清单文件
现在为了解决这种情况,我已经在IIS中使用我的网站进行了IP绑定,因此我将使用IP访问该文件但是当我使用IP访问该网站时,上述规则也会触发它并重定向到HTTPS和浏览器给出再次出错,因为SSL Certs中的主机名不匹配。我想在浏览IP时绕过我的网站的重定向规则。
我不知道如何通过附加条件修改上述规则,或者在通过IP访问时绕过此https重定向的新规则是什么。
编辑:https://dpaste.de/xWJE这是完整的webconfig,其中包含@Kul Tgin的建议修复