2009-08-25 72 views
0

我寫了一個小巧的HttpHandler,它在我的機器上運行得非常漂亮。但是,一旦它被部署到我們的登臺服務器,請求它給了一個404。我通常更喜歡在web.config中配置HttpHandlers,但是這顯然不能在服務器上工作:我通過創建一個.ashx文件來修復它,參考我的HttpHandler。HttpHandler不能在使用不同端口的網站上工作

的ashx的文件:

<% @ WebHandler class="MyNamespace.MyProject.MyHttpHandler" %> 

web.config中設置:

<httpHandlers> 
    <add verb="GET" path="myhandler.ashx" type="MyNamespace.MyProject.MyHttpHandler"/> 
</httpHandlers> 

我認爲問題是由服務器使用 「特殊」 的端口(888引起的,不問爲什麼)的網站。它可以是別的什麼,我可以錯過什麼?

爲什麼我在服務器上看到這種行爲? HttpHandler在我的本地機器上運行良好,只需在web.config中配置,在這裏它也是從一個「隨機」端口提供的,即http://localhost:61229/myhandler.ashx

+1

只需檢查IIS屬性'''主目錄' - >'配置'有'ashx'擴展映射適當... –

回答

3

它確定聽起來像沒有找到web.config設置。

這是IIS 7的任何機會?在這種情況下,請確保您將處理程序放在<system.webServer>及其處理程序>部分。

+1

優秀的一天的教訓:我不知道HttpHandlers不得不可以在IIS7的不同部分進行設置。謝謝! :) –

+0

甚至有一個漂亮的工具在IIS中進行配置! –

0

如果您使用的是IIS7,但仍希望保留舊的IIS 6配置文件。 通過設置應用程序池以「Classic」模式運行,處理程序將再次運行。

不推薦,但有時這是一個快速和足夠好的修復。