2012-08-28 30 views
3

frustrating .axd resources forbidden403禁止所有* .axd文件 - aragh

我可以在我的開發機器上運行應用程序。 當我將它發佈到我的生產機器上時,它不起作用。說那個.axd文件是被禁止的。

任何想法?我很沮喪!

編輯:

作爲測試,我已經改變爲 「存儲=文件;」。當我向服務器發送生成圖表的請求時,圖表實際上出現在我的文件夾中 - 它只是不會在請求中發送回瀏覽器。

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> 

回答

4

所以答案。

URL重寫是一個殺手。

我在一個web應用程序上安裝了wordpress,該應用程序位於我遇到問題的應用程序之上。 wordpress安裝實際上是在重寫,並且因爲它不是文件或目錄(wordpress默認),它正在重寫任何沒有物理對應文件或文件夾的請求。

如果您遇到隨機錯誤,並且您使用的是子應用程序 - 請參閱REWRITES!

+2

謝謝您的回答,對於那些你不知道誰什麼治補充,這樣的事情應該只是罰款。把它放在Wordpress規則之上。 jamesbar2

9

網站上的URL重寫由所有子應用程序繼承。一個解決辦法是添加到您的應用程序的web.config:

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