Проблема с реализацией кода Web Widget Пола Джонсона, он работает в VS 2008, но не при развертывании в IIS 6.0 - PullRequest
2 голосов
/ 08 декабря 2008

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 09 декабря 2008

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

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

Редактировать : Подробности

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

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

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

0 голосов
/ 30 июня 2009

Пара других изменений, которые мне пришлось сделать ...

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