Azure API应用程序删除标准服务器标头

问题描述:

我有一个使用API​​应用程序部署到Azure的ASP.net WebApi。要从最佳实践的神秘列表中检查另一个项目,我想从所有HTTP请求(x-powered-by,server,x-aspnet-version)中删除标准服务器标头。我的web.config位于下面,根据配置建议hereAzure API应用程序删除标准服务器标头

如果将我的应用程序部署到Azure Web App,则会成功删除标头。但是,它似乎重复向Azure API发布相同的部署。APP不遵循标准的web.config配置,因此上述标题仍然存在于所有http请求中。

有谁知道这是不是还没有得到支持,或者如果有一种替代方式做到这一点?我只能认为网关或其他设备不尊重删除。

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime enableVersionHeader="false" /> 
    </system.web> 
    <system.webServer> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="OPTIONSVerbHandler" /> 
     <remove name="TRACEVerbHandler" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    <security> 
     <requestFiltering removeServerHeader ="true"></requestFiltering> 
    </security> 
    <httpProtocol> 
     <customHeaders> 
     <clear /> 
     <remove name="X-Powered-By"/> 
     </customHeaders> 
    </httpProtocol> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

我们正在寻找到这一点,并把它修好。同时,您可以转到网关的应用设置并修改其web.config。步骤:

  1. 导航到YOURGATEWAYNAME.scm.azurewebsites.net
  2. 导航到网站\ wwwroot的
  3. 滚动到web.config文件并单击编辑按钮左边。你将能够编辑这个文件。

或者,如果您没有使用任何API应用程序的特定功能,则可以将Web API部署为Web应用程序。

+0

嗨@Mohit我给了这个尝试,编辑网关的web.config与上面通过KUDO发布的一样,但是当通过Fiddler查看请求时,标准头文件仍然存在。我打算使用一些特定的API应用程序功能,因此,如果可能的话,我正在尝试使用API​​应用程序而不是Web应用程序。 – BMac