Мы получаем эту ошибку InvalidOperationException «операция userservice уже выполняется» в нашем Silverlight 4 (OOB со службами RIA), когда вы нажимаете кнопку «Вход в систему», но это не происходит каждый раз, а иногда происходит несколько раз.Если я игнорирую ошибку и продолжаю работать, похоже, она работает.Кто-нибудь знает, что вызывает это?
РЕДАКТИРОВАТЬ: проект был создан с использованием шаблона "Silverlight Business Application".
Stack Trace
в System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationService.StartOperation (операция AuthenticationOperation)
в System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationService.Login (параметры LoginParameters * Action`1 completeAction, пользователь объекта 100), пользовательский объект класса 100.LoginUI.LoginForm.LoginButton_Click (Отправитель объекта, EventArgs e)
в System.Windows.Controls.Primitives.ButtonBase.OnClick () в System.Windows.Controls.Button.OnClick () в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e)
в System.Windows.Controls.Control.OnMouseLeftButtonUp (контрольный ctrl, EventArgs e)
в MS.Internal.JoltHelper.FireEvent, IntGTeGTTactualArgsTypeIndex, String eventName)
РЕДАКТИРОВАТЬ (Подробнее).Мне удалось последовательно воспроизвести проблему с помощью нового решения «Silverlight Business Application» и нескольких незначительных изменений.Проблема возникает гораздо чаще на сайте, где сервисы реагируют медленнее, поэтому все изменения направлены на ускорение ввода данных пользователем в моем устройстве разработчика.Если вы начнете с «Silverlight Business Application» и измените его, сделав две вещи;1. Показать окно входа в систему, как только оно загрузится.2. по умолчанию в некоторых действительных учетных данных (поэтому вам не нужно вводить их).
Затем запустите приложение и нажмите «enter» (для входа в систему), как только отобразится экран, затем я получаю ошибку постоянно.
Я использовал Fiddler, и он показывает, что на самом деле происходит два вызова ...
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/GetUser
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/Login
Ошибка возникает, когда первый вызов GetUser все еще выполняется, когда он вызываетавторизоваться.Откуда этот вызов GetUser?(он получает учетные данные от aspnetDB)
Какой код я могу добавить, чтобы он не вызывал Login до завершения вызова GetUser?(Я пробовал «WebContext.Current.Authentication.IsBusy», но он не сбрасывается после завершения вызова getUser.