2009-11-01 145 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