Хорошо, сначала факты.Проверка 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 членство
Можете ли вы опубликовать информацию с типом привязки, который вы используете, и одним из автоматически сгенерированных свойств (если вы не имеете в виду автоматически реализованные свойства - например, get; set;)? Можете ли вы посмотреть второй звонок с помощью инструмента, такого как скрипач, чтобы узнать, что называется и что отправляется на службу? Это странная проблема, и я, возможно, добираюсь сюда. –
lol. Я уже некоторое время добирался. Я использую BasicHttpBinding, поэтому никакого вуду, похоже, не будет. Если я честен, я даже не вижу, как первый запрос уходит в Fiddler, но я думаю, что это до объекта, запрашивающего данные, которые хранятся локально в dll и подключены к API-интерфейсу Membership, поскольку я вижу «нормальную» службу запросы прекращаются. Имеет ли материал членства какую-либо подписку на прокси или событие за кулисами, о которых я не знаю? – Stimul8d