Проблема с реализацией кода веб-виджета Пола Джонсона, он работает в версии 2008, но не при развертывании в IIS 6.0
-
20-08-2019 - |
Вопрос
Используя инструкции из Веб-виджеты Пола Джонсона страница, на которой я создал свой собственный пользовательский виджет.Однако, поскольку я выполнял развертывание в IIS 6.0, я использовал рекомендуется изменить web.config для отображения страницы, поскольку опция управления конфигурацией IIS 7.0 была недоступна в IIS 6.0.
Виджет отображается корректно при отладке с помощью VS 2008.Однако, как только файлы и обновленный web.config будут развернуты на сервере Windows 2003 под управлением IIS 6.0 и на указанный адрес будет выведена ошибка "Страница не может быть найдена".
Машина разработки - это машина с Windows Vista, однако, поскольку VS 2008 использует свой собственный внутренний веб-сервер, а не IIS 7.0 Vista для отладки, я не думал, что это было бы проблемой.
Мы были бы очень признательны за любую помощь в отладке этой проблемы.
Решение
Его инструкции неполны.Вам также нужно будет добавить сопоставление скрипта в конфигурации приложения для .jss с aspnet_isapi.dll в каталоге Windows\microsoft.NET\framework\vXXXX\.
IIS6 не выполняет интегрированный конвейер, который присущ Cassini и используется по умолчанию в IIS7.
Редактировать:Подробные сведения
- В диспетчере IIS откройте свойства приложения.
- Выберите вкладку Домашний каталог
- Нажмите кнопку Настройка...
- Выберите запись в списке сопоставлений для .aspx, нажмите Изменить...
- Выделите и скопируйте содержимое исполняемого текстового поля, нажмите кнопку Отмена
- Нажмите Добавить...
- Вставить в исполняемое текстовое поле
- Введите .jss в текстовое поле Расширения
- Введите GET.ГОЛОВА в пределе до:коробка
- Возможно, вам потребуется отключить Проверку существования этого файла
Ладно, эту партию уберите.
Теперь URL-адрес, имеющий расширение .jss, будет передан в ASP.NET для обработки.
Другие советы
Пара других изменений, которые мне пришлось внести...
Изменение конфигурации (обработчик должен соответствовать EventsWidget, а не WidgetBase):
<system.web>
<httpHandlers>
<add verb="GET,HEAD" path="eventswidget.jss" type="Demo1.Handlers.EventsWidget, Demo1" validate="false" />
</httpHandlers>
</system.web>
EventsWidget.BuildOutput должен возвращать Javascript (в зависимости от того, как вы установили тег 'script' в Default.aspx):
Public Overrides Function BuildOutput() As String
Dim sOutput As String = "document.write('<br><b>Hello World</b>');"
Return sOutput
End Function