2009-02-14 230 views
2

我得在web.config文件中設置一個HTTP處理程序:HTTP處理程序問題

 <add verb="*" path="*_*.aspx" type="SeoHandler"/> 

而且在我的網站的根目錄指向一個SeoHandler.ashx有一個文件SeoHandler.ashx .cs在App_Code文件夾中(該網站不是Web應用程序項目)。

當我在本地運行該站點並鍵入一個URL,如「dork_test.aspx」時,該請求被重定向到處理程序,然後處理業務。

但是,當編譯網站上我的域中運行「 dork_test.aspx」將導致:在「/」應用

服務器錯誤。

無法找到該資源。

說明:HTTP 404資源 你正在尋找(或它的 一個依賴項)可能已被移除, 更名,或者是 暫時不可用。請 查看以下URL並確保 拼寫正確。

請求的URL:/dork_test.aspx

爲什麼會SeoHandler本地而不是趕上 「dork_test.aspx」 請求的服務器上?

不知道這是否重要,但是當我在我的域上點擊URL SeoHandler.ashx時,處理程序的工作方式與其假設的一樣。

Web主機是否有一些IIS設置可忽略<httpHandlers>中的條目?

回答

1

我能夠讓它在IIS 7上運行。您使用的是共享託管服務提供商,它有像URLScan一樣的安裝嗎?你能否看到服務器級別是否有非默認設置?

8

檢查在IIS中的.NET處理程序沒有設置驗證請求的路徑在服務器上實際存在:

  • 轉到Web站點或虛擬目錄
  • 主目錄選項卡
  • 的屬性
  • 單擊下面部分中的「配置」
  • 找到.ASPX的擴展名並單擊編輯,會出現一個複選框,指出「驗證該文件是否存在」。

如果選中該複選框,則.NET將不會提供任何未映射到同一位置的物理文件的請求。

+0

媽的,一切爲我的託管公司的管理員都不見了,直到星期一。啊。如果我能抓住他們,我會指示他們。感謝雷克斯! – core 2009-02-14 03:04:06

1

雷克斯M的得到了正確的答案,但我只是嘗試類似的東西處理.jpg並失敗。

「驗證該文件是否存在」複選框非常重要,但您對該文件夾的授權仍存在問題。

然後我試圖改變新的網絡。配置,我添加該文件夾,並添加

<authorization> 
         <allow users="*" /> 
    </authorization> 

它的工作。所以,授權過程中有些事情不能讓我處理.jpg請求。是的,我在該應用程序中進行了身份驗證,如果我嘗試請求.jpg,它仍然失敗。

希望這能解決,以證明你的處理程序工作正常,但對於你需要有一個重大的安全問題......