403 禁止所有 *.axd 文件 - aragh

问题描述 投票:0回答:3

frustrating .axd resources forbidden

我可以在我的开发机器上运行该应用程序。 当我将其发布到我的生产机器时,它不起作用。说禁止 .axd 文件。

有什么想法吗?我真的很沮丧!

编辑:

作为测试,我已更改为“storage=file;”。当我向服务器发送生成图表的请求时,图表实际上出现在我的文件夹中 - 它只是不会在请求中发送回浏览器。

阿拉啊!这是怎么回事!?!?!

添加了 web.config

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="ChartImageHandler" value="storage=memory;"/>
  </appSettings>
  <connectionStrings>
    <add name="VS265178_1ConnectionString" connectionString="Data Source="HIDDEN"/>
  </connectionStrings>

  <system.web>

    <httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        validate="false" />
    </httpHandlers>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>

    <authentication mode="Forms">
      <forms loginUrl="Login.aspx" name=".CFCASPXFORMSAUTH" defaultUrl="Default.aspx"/>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
    <machineKey validationKey="HIDDEN" decryptionKey="HIDDEN" validation="SHA1"/>
    <!-- Custom Membership Provider Configuration -->
    <membership defaultProvider="CFMembershipProvider" userIsOnlineTimeWindow="15">
      <providers>
        <clear/>
        <add name="CFMembershipProvider" passwordFormat="Clear" type="HIDDEN" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false"/>
      </providers>
    </membership>

    <profile defaultProvider="CFProfileProvider">
      <providers>
        <add name="CFProfileProvider" type="HIDDEN"/>
      </providers>
    </profile>
    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </controls>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
      <remove name="ChartImageHandler"/>
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
  </system.webServer>
</configuration>
iis-7.5 httphandler webresource.axd
3个回答
11
投票

网站上的 URL 重写由所有子应用程序继承。一种解决方案是将其添加到您的应用程序 web.config 中:

<system.webServer>
  <rewrite>
    <rules>
      <!-- remove parent rewrite rules -->
      <clear/>
    </rules>
  </rewrite>        
</system.webServer>

5
投票

所以答案。

URL 重写是一个杀手。

我在一个 Web 应用程序上安装了 WordPress,该应用程序位于我遇到问题的应用程序之上。 wordpress 安装实际上是在进行重写,因为它不是文件或目录(wordpress 默认),所以它会重写任何没有物理对应文件或文件夹的请求。

如果您遇到随机错误,并且您正在使用子应用程序 - 请查看重写!


0
投票

我的主机使用 Plesk,当我在 IIS 服务器中加载站点文件时也遇到了这个问题。

将 Web 应用程序防火墙模式更改为仅关闭/检测后,此问题已得到解决。

在此输入图片描述

所以基本上它会通过防火墙规则阻止脚本。并且您需要添加安全规则ID,以允许浏览器在Web应用程序防火墙模式打开的情况下加载脚本文件。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.