Как недавно добавленный файл global.asax может испортить мою службу WCF? - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть приложение silverlight, которое использует WCF как при опросе дуплексных, так и при «обычных» асинхронных вызовах.все работало нормально, пока я не добавил файл global.asax.

После часа поиска в Google я наткнулся на этот довольно устаревший блог Джин-Дирк Стюарт , в котором предлагалось закомментировать заглушкуСобытие Session_start.

Конечно, это исправило проблему, но вызывает опасения.Почему этот, казалось бы, мягкий элемент файла global.asax нарушает вызовы wcf.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2010

Да, это немного известная, но раздражающая проблема.Проблема заключается в том, что состояние сеанса включается после добавления файла global.asax в ваш веб-проект.После включения состояния сеанса сервер будет выполнять вызовы только последовательно.Вот две статьи с более подробной информацией:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-other-wcf-service-in-the-same-website-causes-silverlight-calls-to-be-slow.aspx

http://weblogs.asp.net/olakarlsson/archive/2010/05/20/simultaneously-calling-multiple-methods-on-a-wcf-service-from-silverlight.aspx

Это происходит только при использовании сетевого стека браузера, поэтому ваши параметрыявляются:

  1. Отключение состояния сеанса в вашем веб-проекте или
  2. Использование клиентского сетевого стека

Надеюсь, это поможет ...

Chris

0 голосов
/ 10 декабря 2010

Существуют некоторые типы привязки, которые поддерживают доступ к данным сеанса asp.net, я действительно не понимаю, как это повлияет, если WCF не попытается подключиться к событию session_start, как модуль http.Вы также можете использовать рефлектор, чтобы разобрать код там, где вы получили исключение.

...