로그인 버튼을 클릭 할 때 Silverlight 4 (OOB with RIA Services)에서 InvalidOperationException "사용자 작업이 이미 진행 중"으로 표시되지만 매번 발생하지 않습니다. 때로는 여러 번 발생합니다. 오류를 무시하고 계속 실행하면 작동하는 것 같습니다. 누구든지이 원인을 알고 있습니까?Silverlight 4 로그인 InvalidOperationException "UserService 작업이 이미 진행 중입니다."
EDIT : "Silverlight Business Application"템플릿을 사용하여 프로젝트를 만들었습니다. System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationService.StartOperation에서
스택 추적
(AuthenticationOperation 동작) System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationService.Login (LoginParameters 파라미터에
, Action`1 completeAction, 개체 userState) Reach.SL.LoginUI.LoginForm.LoginButton_Click (개체 보낸 사람, EventArgs입니다 전자)에서
System.Windows.Controls.Primitives.ButtonBase.OnClick() 에서
System.Windows.Controls에서 .Button.On System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs 전자)에서) ( 을 클릭 MS.Internal.JoltHelper.FireEvent에서 System.Windows.Controls.Control.OnMouseLeftButtonUp (제어 Ctrl 키, EventArgs입니다 전자)
(에서
IntPtr입니다 unmanagedObj, IntPtr입니다 unmanagedObjArgs, INT32 argsTypeIndex, INT32 actualArgsTypeIndex, 문자열 EVENTNAME)
편집 (추가 정보). 새로운 'Silverlight Business Application'솔루션과 몇 가지 사소한 변경 사항을 통해 문제를 일관되게 재현 할 수있었습니다. 문제는 서비스가 더 느리게 응답하는 사이트에서 훨씬 더 많이 발생합니다. 따라서 모든 변경 사항은 내 devbox에서 사용자 입력 속도를 높이는 것입니다. 'Silverlight Business Application'로 시작하여 두 가지 작업을 변경하는 경우; 1. 로그인 상자가로드되면 바로 표시하십시오. 2. 일부 유효한 자격 증명에 기본값이 있으므로 입력하지 않아도됩니다.
그런 다음 앱을 실행하고 화면이 표시되면 바로 '입력'(로그인)을 눌러 오류가 계속 발생합니다.
내가 피들러를 사용하고 그것이 로그인을 호출 할 때 인 getUser에 대한 첫 번째 호출가 진행되는 경우 오류가 발생합니다
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/GetUser
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/Login
... 실제로 일어나는 두 통화가 있음을 보여줍니다. GetUser에 대한 호출은 어디서 발생합니까? (aspnetDB에서 자격 증명을 가져 오는 것입니까?)
어떤 코드를 추가하면 GetUser 호출이 끝날 때까지 로그인 할 수 있습니까? ("WebContext.Current.Authentication.IsBusy"를 시도했지만 getUser 호출이 완료되면 재설정되지 않는 것 같습니다.)
RIA를 사용중인 것 같습니다. Login 메소드의 사용법을 확인하고 두 번 호출되지 않았는지 확인하십시오. –
@luc 네, RIA를 사용하고 있습니다. 나는 그것을 두 번 부르지 않고 간헐적으로 만 발생한다는 것을 확인했다. 그래서 나는 그것이 명백하다고 생각하지 않는다. 어쨌든 고마워. – tkerwood
코드를 게시 할 수 있습니까? 작동 중에 "로그인"버튼을 비활성화 하시겠습니까? 실현하지 않고 버튼을 두 번 클릭하는 것일 수 있습니다. – ChrisF