global.asax не обновляется - PullRequest
       3

global.asax не обновляется

0 голосов
/ 10 февраля 2009

У нас есть веб-приложение, в котором мы используем global.asax для перезаписи URL. Мы используем скомпилированную версию сайта на живом сервере.

Как часть запроса на изменение, нам пришлось добавить некоторый собственный нативный код AJAX, где javascript будет вызывать веб-сервис для обновления содержимого страницы. Чтобы иметь возможность вызывать веб-сервис с расширением .asmx, мы изменили код перезаписи URL, чтобы обрабатывать запросы asmx отдельно.

эта схема отлично работает на локальной машине, но когда мы публикуем сайт и разворачиваем его на работающем сервере, новый код, похоже, не включается. Он по-прежнему пропускает условие для проверки расширения «.asmx» и выдает исключение «страница не найдена», учитывая имя веб-службы в качестве имени страницы.

Мы пытались искать и гуглить такие вещи ... но безрезультатно ... какие-нибудь указатели на то, что может пойти не так ..?

Ответы [ 3 ]

0 голосов
/ 10 февраля 2009

Есть файл machine.config, куда вы можете добавить HttpModules. Я также думаю, что вы можете сделать это через web.config.

0 голосов
/ 10 февраля 2009

Одной из причин, по которой я могу придумать, является то, что в Web.config вы могли настроить модуль маршрутизации в разделе system.web, но не в system.webServer (или, по крайней мере, что-то там забыли).

У меня была похожая проблема, и решением было удалить модуль и снова добавить его в раздел system.webServer файла Web.config следующим образом:

<system.webServer>
    <modules>
      <remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, e="RoleManager" type="System.Web.Security.RoleManagerModule"/>
    </modules>
</system.webServer>

Это может быть другой модуль или обработчик, но идея в основном та же. Важно сначала «удалить» модуль.

0 голосов
/ 10 февраля 2009

Предполагая, что перезапись вашего URL-адреса хороша (разве это обычно не реализуется как HttpModule?), Я проверю, чтобы убедиться в наличии сопоставления ISAPI в IIS на производстве, которое отправляет запросы .asmx в ASP.NET.

Если вы считаете, что ваши изменения в global.asax не были повторно объединены, то вы всегда можете остановить пул приложений, найдите скомпилированные биты веб-приложений в папке c: \ windows \ microsoft.net \ framework [version] \ временная. файлы asp.net ... и удалите сопряженную версию. Я видел пропущенный ASP.NET, когда дело доходит до изменения джиттинга.

Я бы также подумал о том, чтобы запустить http fiddler (IE) или подделать данные (расширение FireFox) на одной из страниц, которые выполняют вызовы веб-службы. Он точно скажет вам, как страница вызывает веб-сервис, и вы сможете проверить правильность вызываемого URL.

...