2010-07-16 1 views
0

Хорошо, сначала факты.Проверка ASP.Net Custom MembershipUser над WCF, вызвавшего незапрашиваемые служебные вызовы?

Я работаю над проектом ASP.Net, который проверяет его пользователей через службу WCF. У меня есть класс CutomMembershipUser в общей сборке, которая наследуется от MemberhipUser, так как я использую пользовательский поставщик членства. Все это не может измениться, потому что это вне моей компетенции.

Здесь примерно что происходит. У меня есть некоторый код в случае logged_in элемента управления входом в системе, которая выглядит так ...

  CustomMembershipUser user = (CustomMembershipUser)SecurityBL.GetUser(userName); 

      if (user.Customer.ToLower() == "some user") 
      { 
       //impl omitted 
      } 

Первая строка выполняет без проблем, и я получаю правильный пользователь обратно из службы. Однако во второй строке, когда я сравниваю свойство user.Customer, второй запрос отправляется службе с пустой строкой userName, которая висит на всей IDE примерно на 30 секунд или около того и, в конце концов, выдает FaultException<T>, который я могу поймать на стороне обслуживания ,

Очевидно, мое первое предположение состояло в том, что в геттере этого свойства была какая-то логика, которая ленив загружает свойство, но его нет; на самом деле это автоматически реализованная недвижимость!

Еще более странно, что в вызывающем коде я не могу даже поймать исключение, которое говорит мне, что запрос исходит из другого потока, чем тот, который я выполняю.

Эта же проблема возникает для любой доступ к объекту по этому объекту независимо от того, переопределен или полностью новый.

Кто-нибудь видел что-нибудь подобное раньше? Я уже два дня царапаю голову, и я не уверен, что делать дальше.

Любой справка будет замечательной.

Заранее спасибо. Stimul8d членство

+0

Можете ли вы опубликовать информацию с типом привязки, который вы используете, и одним из автоматически сгенерированных свойств (если вы не имеете в виду автоматически реализованные свойства - например, get; set;)? Можете ли вы посмотреть второй звонок с помощью инструмента, такого как скрипач, чтобы узнать, что называется и что отправляется на службу? Это странная проблема, и я, возможно, добираюсь сюда. –

+0

lol. Я уже некоторое время добирался. Я использую BasicHttpBinding, поэтому никакого вуду, похоже, не будет. Если я честен, я даже не вижу, как первый запрос уходит в Fiddler, но я думаю, что это до объекта, запрашивающего данные, которые хранятся локально в dll и подключены к API-интерфейсу Membership, поскольку я вижу «нормальную» службу запросы прекращаются. Имеет ли материал членства какую-либо подписку на прокси или событие за кулисами, о которых я не знаю? – Stimul8d

ответ

1

довольно прямо вперед, и на самом деле не имеет никакого знания сетевых коммуникаций, особенно не WCF ,, так что должно быть что-то hinky происходит в вашего кода. действительно.

Если вы хотите попытаться изолировать наименьший след кода, который воспроизводит эффект и загружает его где-нибудь, я был бы рад взглянуть.

+0

После долгих обсуждений я бы согласился, что-то определенно косо с нашим кодом, но я даже не смог точно повторить проблему в изоляции. Я думаю, что это будет настоящая головная боль, пока мы не сможем это сделать, но спасибо за помощь все равно. большой тик для вас. – Stimul8d

+0

@stim - удачи. просто добавьте еще один комментарий, если вы хотите пересмотреть это. –

 Смежные вопросы

  • Нет связанных вопросов^_^