Проблема с реализацией кода веб-виджета Пола Джонсона, он работает в VS 2008, но не в развертывании в IIS 6.0.

Используя инструкции Страница "Веб-виджеты" Пола Джонсона Я создал свой собственный виджет. Однако, поскольку я развертывал IIS 6.0, я использовал рекомендуется изменение web.config для визуализации страницы, поскольку параметр управления конфигурацией IIS 7.0 недоступен в IIS 6.0.

Виджет отображается правильно при отладке с помощью VS 2008. Однако после развертывания файлов и обновленного файла web.config на сервере Windows 2003 под управлением IIS 6.0 и указанном адресе отображается ошибка «Страница не может быть найдена».

Машина для разработки - это машина с Windows Vista, однако, поскольку VS 2008 использует свой собственный внутренний веб-сервер, а не Vista IIS 7.0 для отладки, я не верил, что это может быть проблемой.

Любая помощь в отладке этой проблемы будет принята с благодарностью.


person Nissan    schedule 08.12.2008    source источник


Ответы (2)


Его инструкции неполны. Вам также потребуется добавить сопоставление сценария в конфигурации приложения для .jss с aspnet_isapi.dll в каталоге windows \ microsoft.NET \ framework \ vXXXX \.

IIS6 не выполняет интегрированный конвейер, который присущ Cassini и используется по умолчанию в IIS7.

Изменить: подробности

  • В диспетчере IIS откройте свойства приложения.
  • Выберите вкладку Домашний каталог
  • Щелкните Конфигурация ...
  • Выберите запись в списке сопоставлений для .aspx, щелкните Изменить ...
  • Выделите и скопируйте содержимое текстового поля «Исполняемый файл», нажмите «Отмена».
  • Щелкните Добавить ...
  • Вставить в текстовое поле "Исполняемый файл"
  • Введите .jss в текстовое поле "Расширение".
  • Введите ПОЛУЧИТЬ. ГОЛОВА в поле Не более:
  • Возможно, вам потребуется отключить Проверять, существует ли файл

Хорошо, что много.

Теперь URL-адрес с расширением .jss будет передан в ASP.NET для обработки.

person AnthonyWJones    schedule 09.12.2008

Мне пришлось внести еще пару изменений ...

Изменение конфигурации (обработчик должен отображаться на 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
person MattH    schedule 30.06.2009