Как недавно добавленный файл global.asax может испортить мой сервис WCF?
У меня есть приложение silverlight, которое использует WCF, опрашивая дуплекс и "обычные" асинхронные вызовы. все работало нормально, пока я не добавил файл global.asax.
После часа поисков в Интернете я наткнулся на этот довольно устаревший блог Жана-Дирка Стюарта, в котором предлагалось закомментировать заурядное событие Session_start.
Конечно, это исправило проблему, но это вызывает опасения. Почему этот, казалось бы, доброкачественный элемент файла global.asax нарушает вызовы wcf?
2 ответа
Да, это малоизвестная, но раздражающая проблема. Проблема сводится к тому, что состояние сеанса включается после добавления файла global.asax в ваш веб-проект. Когда состояние сеанса включено, сервер будет выполнять вызовы только последовательно. Вот две статьи с более подробной информацией:
Это происходит только при использовании сетевого стека браузера, поэтому вы можете:
- Отключить состояние сеанса в вашем веб-проекте, или
- Используйте клиентский сетевой стек
Надеюсь это поможет...
Крис
Существует несколько типов привязки, которые поддерживают доступ к данным сеанса asp.net, я действительно не понимаю, как это повлияет, если WCF не попытается подключиться к событию session_start, как это делает модуль http. Вы также можете использовать рефлектор, чтобы разобрать код там, где вы получили исключение.