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

时间:2012-08-28 05:20:38

标签: iis-7.5 httphandler webresource.axd

frustrating .axd resources forbidden

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

有什么想法吗?我变得非常沮丧!

编辑:

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

ARAGH!发生什么事了!?!?!

添加了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>

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:5)

所以答案。

网址重写是杀手锏。

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

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