我們收到此錯誤出現InvalidOperationException「userservice操作已經在進行中」在我們的Silverlight 4(OOB與RIA服務),當您點擊登錄按鈕,但它不發生每次和有時會發生多次。如果我忽略錯誤並繼續運行,它似乎工作。有誰知道這是什麼原因造成的?Silverlight 4的登錄InvalidOperationException異常「UserService操作已經在進行中」
編輯:項目是使用「Silverlight業務應用程序」模板創建的。
堆棧跟蹤
在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 E)
在System.Windows.Controls.Control.OnMouseLeftButtonUp(質控,EventArgs的)
在MS.Internal.JoltHelper.FireEvent( IntPtr的unmanagedObj,IntPtr的unmanagedObjArgs,的Int32 argsTypeIndex,的Int32 actualArgsTypeIndex,字符串eventName的)
EDIT(詳細信息)。 我已經能夠通過一個新的「Silverlight業務應用程序」解決方案和一些小的更改來重現問題。問題發生在服務響應速度較慢的網站上,因此所有更改都會加快用戶在我的開發箱上的輸入。 如果您從「Silverlight業務應用程序」開始並將其更改爲做兩件事情; 1.加載後立即顯示登錄框。 2.默認在一些有效的憑據(所以你不必輸入它們)。
然後運行該應用程序,並在屏幕顯示後立即按'enter'(登錄),然後我一直得到錯誤。
我已經使用小提琴手,它表明,有兩個呼叫實際發生的...
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/GetUser
/ClientBin/SilverlightBusinessApp-Web-AuthenticationService.svc/binary/Login
時的getUser第一個呼叫仍在進行中時,它調用登錄時出現錯誤。 GetUser的這個調用來自哪裏? (它是從aspnetDB獲取憑據)
什麼代碼可以添加,所以它沒有調用登錄,直到GetUser調用完成? (我曾嘗試「WebContext.Current.Authentication.IsBusy」,但它似乎並不時調用的getUser完成復位。
我想你正在使用RIA。檢查Login方法的用法並確保它不被調用兩次。 – 2011-03-03 08:37:45
@luc是的,它使用的是RIA。我已經檢查過它不會調用它兩次,它只是間歇性地發生,所以我不認爲這是顯而易見的。不管怎麼說,還是要謝謝你。 – tkerwood 2011-03-03 08:59:05
你可以發佈你的代碼嗎?您是否在操作過程中禁用了「登錄」按鈕 - 可能是因爲您在沒有意識到的情況下點擊了按鈕兩次。 – ChrisF 2011-03-03 09:04:31