1

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

如果将我的应用程序部署到 Azure Web 应用程序,则会成功删除标头。但是,似乎对 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>
4

1 回答 1

1

我们正在对此进行调查并将其修复。同时,您可以转到网关的应用设置并修改其 web.config。脚步:

  1. 导航到 YOURGATEWAYNAME.scm.azurewebsites.net
  2. 导航到站点\wwwroot
  3. 滚动到 web.config 并单击左侧的编辑按钮。您将能够编辑此文件。

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

于 2015-10-20T00:30:00.557 回答