Развертывание общего хостинга httphandler - PullRequest
0 голосов

У меня есть httphandler на общем веб-хостинге. Оно работает.

В каталоге httphandler (виртуальном) этого httphandler нет файла 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 (кроме того, чтобы всегда и везде работать [1b] http://www.MySharedSite.com/BackupLicense.ashx?key=CheckLoad

1 Ответ

1 голос
/ 01 ноября 2009

Существуют некоторые тонкие различия в том, как обрабатываются URL-адреса во встроенном веб-сервере, а также в IIS6 и 7. Вам необходимо знать версию IIS, работающую на вашем общем хосте.

В частности, IIS6 не поддерживает URL-адреса без сопоставления расширения с aspnet_isapi.dll - и поскольку вы не используете расширение для URL-адреса, это может иметь место.

Если ваш хост использует IIS7 с интегрированным конвейерным режимом, вам, вероятно, нужно настроить раздел system.webServer с отображением URL-адреса вместо system.web. (Также см. этот вопрос для объяснения разницы).

Редактировать Я вижу в комментариях ваш веб-хостинг использует IIS6. Затем вам нужно попросить своего веб-хоста разрешить обработку URL / Checkload в ASP .NET. Еще один простой способ заставить его работать - просто использовать .ashx в конце URL; поскольку расширение .ashx уже сопоставлено с ASP .NET в стандартной конфигурации.

...