- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试重写给定“X-CF-ORIGIN” header 的“主机” header - 这在本地有效,但是,在应用程序服务中,所有日志记录都表明它已有效,但我们似乎没有看到效果。
我们预计会因不正确的 HOST header 而收到 500 错误,但是,站点会像主机 header 未更改一样进行解析。
此外,我们的 XDT 转换表明它已经起作用(见下文)。
This was initially raised on Kudu Github但已定向至此处询问 Azure 应用服务 IIS 问题。
代码示例: https://github.com/Workshop2/webforms-host-header-rewrite-spike
实例: http://webforms-fun.azurewebsites.net/使用XDT变换
我们的重写规则:
<rule name="CDN Host Header Rewrite" stopProcessing="false">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_X_CF_ORIGIN}" pattern="(.+)" />
</conditions>
<serverVariables>
<set name="HTTP_HOST" value="{C:1}" />
</serverVariables>
<action type="None" />
</rule>
我们的 XDT 转换:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="HTTP_HOST" xdt:Transform="InsertIfMissing" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>
applicationHost(通过 IIS Manager 找到):
<rewrite>
<allowedServerVariables>
<add name="HTTP_HOST" />
</allowedServerVariables>
<globalRules />
<outboundRules />
<providers />
<rewriteMaps />
<rules />
</rewrite>
失败请求跟踪:
测试
如果我创建一个测试规则来证明 HTTP_HOST 正在被更改,它会通过 X-CF-ORIGIN header 正确使用 HTTP_HOST 数据集:
<rule name="test" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_X_CF_ORIGIN}" pattern=".+" />
<add input="{HTTP_HOST}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="http://some-site.com/{C:1}" redirectType="Temporary" />
</rule>
请帮忙 - 我们错过了什么?
最佳答案
我发现 Azure 不喜欢设置 HTTP_HOST 服务器变量。如果您使用HTTP_DISGUISED_HOST,它可以正常工作
更改重写规则中的这一行:
<set name="HTTP_HOST" value="{C:1}" />
对此:
<set name="HTTP_DISGUISED_HOST" value="{C:1}" />
更改 applicationHost.xdt 中的这一行:
<add name="HTTP_HOST" xdt:Transform="InsertIfMissing" />
对此:
<add name="HTTP_DISGUISED_HOST" xdt:Transform="InsertIfMissing" />
关于asp.net - Azure 应用服务 applicationHost.config 设置服务器变量正在工作但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348577/
不同版本的 IIS 中 applicationhost.config 文件的确切文件路径是什么,例如:IIS 7、7.5、8、8.5 和 10? 最佳答案 对于自 IIS 7 以来的“大”IIS 版本
我们有一个托管在 Microsoft Azure 中的网络服务器。它是 Windows Server 2008 R2 数据中心版,64 位。 对于托管在这台机器上的网站,我需要对 applicatio
我正在尝试从 applicationHost 配置文件中删除 centralBinaryLogFile 元素: 我正在使用下面的方法来删除它: Remove-WebConfigurationProp
每当我尝试向 Azure 云项目添加角色时,我都会遇到此问题。 问题是,每当我更新到旧版本的代码时,它都能正常工作。直到我尝试添加新角色,甚至删除角色并读取它时,我才收到错误。即使在新项目中我也无法添
我在 C# ASP.NET WebAPI 项目中遇到一个奇怪的问题,其中 applicationhost.config 中的属性值未映射到程序集的完全限定名称;相反,它标记了 "(1)"最后。 因此
对于一个刚刚创建网站,以ASP.NET MVC5为例。 我们并没有在网页的配置文件(web.config)中配置一些处理程序或模块,如处理Session的SessionStateModule模块,
我正在尝试使用 Azure 网站设置反向代理,大致如下 this guide这解释了如何在这样的网站上修改 ApplicationHost.config - 但它对我不起作用。 我有这个 applic
我已经检查了 ServerManagaer 类,它提供了很多与 IIS 一起使用的功能,它还包含更新 applicationHost.config 文件中的值的方法,但我无法找到任何方法来解锁其中的部
我无法保存 applicationHost.config 文件,当我停止 IIS 服务并关闭 visual studio 时,它显示“保存失败,它正在另一个程序中打开”,知道吗? 最佳答案 如果您使用
我有一个使用表单例份验证的VS2012开发的MVC4应用程序。 [身份验证模式=“表格”] [形成loginUrl =“〜/Account/Login” timeout =“2880”/] [/验证]
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this qu
我正在将 c# webservice 应用程序部署到一台机器上:Windows 2008 R2、IIS 7.5、框架 4 但我在将它转换为应用程序时遇到此错误 “执行此操作时出错细节:文件名:\?c:
我正在将 c# webservice 应用程序部署到一台机器上:Windows 2008 R2、IIS 7.5、框架 4 但我在将它转换为应用程序时遇到此错误 “执行此操作时出错细节:文件名:\?c:
ASP.NET 站点使用 IIS 中的 ARR(应用程序请求路由)进行负载平衡。相应的URL重写规则放在applicationHost.config中。 有什么方法可以在新的配置文件中分离这条规则吗?
我有一个包含多个项目的 C# 解决方案,其中一个是由 IIS 运行的 Web 服务器。我设置了True在该项目的 csproj 文件中。 当我打开 Visual Studio 时,它会在 ~/Docu
我正在尝试使用 CreateApplicationHost 呈现 ASP 网页的内容。具体代码如下: public class LocalPageContentAppropriator { p
如何更改 Azure Web 应用程序中的 applicationHost.config?我尝试: using (ServerManager serverManager = new ServerMan
我们正在尝试重写给定“X-CF-ORIGIN” header 的“主机” header - 这在本地有效,但是,在应用程序服务中,所有日志记录都表明它已有效,但我们似乎没有看到效果。 我们预计会因不正
我已经安装了 Visual Studio 开发者社区版本来练习编码。当我尝试创建一个新的 web 项目时,我遇到了配置 IIS express 失败,无法读取配置文件的问题。我已经尝试了所有可能的解决
我在 Windows 10 下运行 IIS Express(不要与普通 IIS 混淆)。我的理解是设置存储在“My Documents\IISExpress\config\applicationhos
我是一名优秀的程序员,十分优秀!