gpt4 book ai didi

iis - Azure 云服务和 HTTP -> HTTPS URL 重写导致 500.19 错误

转载 作者:行者123 更新时间:2023-12-03 01:55:21 26 4
gpt4 key购买 nike

我正在将 Web 应用程序部署为 Azure 云服务。云服务配置指定 HTTP 和 HTTPS 的端点。所有相关的 CSCFG 和 CSDEF 证书内容均已正确配置并已部署证书,这一切都有效。

我现在想添加 HTTP->HTTPS 重写规则,以强制对 HTTP 的任何调用重定向到安全站点。

我的 web.config 上有一个 web.production.config 转换,它添加了以下 block 。(摘自http://blog.smarx.com/posts/redirecting-to-https-in-windows-azure-two-methods)

   <system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<rule name="RedirectToHTTPS">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{URL}" pattern="/$" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>

这会产生以下结果 <system.webServer>部署的配置文件中的部分。

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />

<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="DotLess" preCondition="integratedMode" type="dotless.Core.LessCssHttpHandler,dotless.Core" path="*.LESS" verb="*" />
</handlers>
<rewrite>
<rules>
<rule name="RedirectToHTTPS">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true"/>
<add input="{URL}" pattern="/$" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
</conditions>
<action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="SeeOther"/>
</rule>
</rules>
</rewrite>

</system.webServer>

当我启动网站并浏览到任何 URL(http 或 https、cloudapp.net 或 customdomain)时,我收到 500.19 错误。

从谷歌搜索来看,这似乎表明 URLRewrite 模块未打开,但我读到的所有内容都表明云服务应用程序默认情况下已打开该模块。

此外,我还仔细检查了日志文件。我可以在 BLOB 存储、wad-iis-logfiles 容器中看到 500 个错误。但在表存储下的任何事件日志中找不到任何其他内容。该服务配置为转储最详细的应用程序事件和诊断日志记录信息。

是否有办法找出 500.19 页面的确切错误,或者根据上述内容找出可能出现问题的任何指示?

最佳答案

我终于明白了这个问题。

我在转换上使用了 xdt:insert,由于构建和部署过程,它实际上运行了两次转换,导致部署的 web.config 中出现 2 个重写部分.

解决方案是添加一个空

<system.webServer>
<rewrite />
</system.webServer>

到模板配置文件,然后执行 xdt:Replace

我能够通过在发布部署上启用 RDP 设置,然后检查实际实例上的事件日志、IIS 配置和 Web.Config 来调试它。

关于iis - Azure 云服务和 HTTP -> HTTPS URL 重写导致 500.19 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com