.ashx не может найти ошибку типа на IIS7, нет проблем на сервере webdev - PullRequest
0 голосов
/ 10 марта 2011

Я пытаюсь заставить AspNetComet.zip работать на IIS7 (простая реализация кометного чата) Вот часть моего web.config.

<system.web>
    <httpHandlers>
        <add verb="POST" path="DefaultChannel.ashx" type="Server.Channels.DefaultChannelHandler, Server"/>
    </httpHandlers>
</system.web>

<system.webServer>
    <handlers>
       <add name="DefaultChannelHandler" verb="POST" path="DefaultChannel.ashx" type="Server.Channels.DefaultChannelHandler, Server"/>
    </handlers>
</system.webServer>

Когда я публикую сайт на своем локальном хосте IIS7, я получаю сообщение об ошибке:

POST http://localhost/DefaultChannel.ashx 500 Internal Server Error

Could not load type 'Server.Channels.DefaultChannelHandler

Целевой структурой этого проекта является .Net 2.0. Я попробовал пул приложений в классическом и интегрированном режиме для .Net 2.0, но безуспешно. Я также попытался преобразовать проект в 4.0 и безуспешно попробовал пул приложений Классический и Интегрированный режим для .Net 4.0. Я также попытался добавить управляемый обработчик через сопоставления обработчиков диспетчера IIS.

Если у вас есть время, загрузите исходный код (184kb), чтобы воспроизвести проблему на своем компьютере. Почтовый индекс содержит решение VS2010 (.Net 2.0). Вы также можете попытаться преобразовать это в .Net 4.0

Я все равно использую Windows 7, если это имеет значение. Если вам нужна более подробная информация, пожалуйста, оставьте свои комментарии ниже. Кстати, это нормально работает на моем сервере webdev.

ПРИМЕЧАНИЕ: Я создал версию этого вопроса здесь, так как считаю, что он подходит НАСТОЛЬКО лучше (на основе тегов и базы пользователей), чем то, что я опубликовал на SF https://serverfault.com/questions/245241/ashx-cannot-find-type-error-on-iis7-no-problems-on-webdev-server

1 Ответ

0 голосов
/ 14 марта 2011

Это пример кода чата AspNetComet от methodworx.При развертывании в вашей локальной среде разработки.Я бы предположил, что у вас нет собственного домена, поэтому вы создадите веб-приложение под Default Website.Это делает http://localhost/DefaultChannel.ashx и неверный путь.

Затем необходимо добавить имя каталога веб-приложения, аналогичное следующему.http://localhost/WebApplicationName/DefaultChannel.ashx.С другой стороны, AspNetComet столкнется с другой ошибкой, например, comet client does not exist.

Я решил эту проблему путем преобразования ссылки на службу .svc в .asmx веб-службу.

...