2009-11-01 124 views
0

我有共享虛擬主機上的httphandler。 它的工作原理。這個的HttpHandler的httphandler共享託管部署

的HttpHandler的Web應用程序(虛擬)目錄沒有web.config中 和整個共享用戶的網站上有web.config中只有一個未加註釋語句:

<compilation defaultLanguage="c#" debug="false"/> 

現在,我將其更改爲:

<system.web> 
    <urlMappings enabled="true"> 
    <add url="~/CheckLoad" mappedUrl="~/BackupLicense.ashx?key=CheckLoad"/> 
    <compilation defaultLanguage="c#" debug="false"> 
     </compilation> 
</system.web> 

這(*)本地工作(在VS2008內部網絡服務器) 而不是在共享主機。

我錯過了什麼? (*)表示主叫[1A],其中僅在本地,而是「共享託管它給 「未找到頁面」上HTTP錯誤404」

[1A]作爲調用的工作原理: http://www.MySharedSite.com/CheckLoad (附加於總是和evertwhere工作 [1B] http://www.MySharedSite.com/BackupLicense.ashx?key=CheckLoad

回答

1

有如何的URL上內置的Web服務器和IIS6和7。你需要知道你的共享主機運行在IIS上的版本。

正在處理一些細微的差別

特別是,如果沒有擴展名,IIS6不支持URL nsion被映射到aspnet_isapi.dll--並且由於您沒有使用URL的擴展名,所以情況可能如此。

如果你的主機使用集成管道模式的IIS7,你需要configure the system.webServer部分的URL映射,而不是system.web。 (另請參閱this question瞭解有關區別的說明)。

編輯 我看到你的虛擬主機提供商正在使用IIS6的意見。然後你需要問你的虛擬主機以允許/ Checkload URL由ASP .NET處理。使其工作的另一個簡單方法是在url的末尾使用.ashx。因爲.ashx擴展名已經在標準配置中映射到ASP .NET。

+0

DrIIS,謝謝, 有用的鏈接,但我似乎沒有投票權。 尤其是我喜歡 http://arcware.net/use-a-single-web-config-for-iis6-and-iis7/ 我研究了共享網站託管網站的響應,他們告訴我們使用IIS6。 所以,問題是一樣的,我出來了幾個。 什麼是VS2008,VS2005,VS2003使用的內部網絡服務器的模式? 請注意,本地我真的不使用虛擬目錄和IIS。 – 2009-11-01 15:33:27

+0

一旦agin,只是想恢復我以前的帖子的格式: DrIIS,謝謝, 有用的鏈接,但我似乎沒有投票權。 尤其我喜歡 arcware.net/use-a-single-web-config-for-iis6-and-... 我研究了共享網站託管網站的響應,他們說它使用IIS6。 所以,問題是一樣的,我出來了幾個: 什麼是VS2008,VS2005,VS2003使用的內部網絡服務器的模式? 請注意,本地我真的不使用虛擬目錄和IIS。 – 2009-11-01 15:55:21

+0

曾經agin,只是想恢復我以前的帖子格式(現在在Opera中): DrIIS,謝謝, 有用的鏈接,但我似乎沒有投票權。 尤其我喜歡 arcware.net/use-a-single-web-config-for-iis6-and-... 我研究了共享網站託管網站的響應,他們說它使用IIS6。 所以,問題是一樣的,我出來了幾個: 什麼是VS2008,VS2005,VS2003使用的內部網絡服務器的模式? 請注意,本地我真的不使用虛擬目錄和IIS – 2009-11-01 15:59:06