我工作的機器人技術,在我的項目之一,我用機器人狀態的概念,讓機器人的數據和設置新的數據在這裏我使用狀態的客戶對象像下面這樣無法反序列化的響應 - GetUserDataAsync
//var stateClient = new StateClient(new Uri("http://localhost:9000/"));
var stateClient = new StateClient(new Uri("https://skype.botframework.com"));
我LoginController.cs寫的這是代碼
if (stateClient != null)
{
var getData = await stateClient.BotState.GetUserDataAsync(Constants.Constants.botId, activity.From.Id);// 29:1_12CsCTqilHlQTG9KI8YmvCKd - zwzekm2IDKR7xN8EVE3gjtfNQYp1aOzuC9Rs_t
//var getData = await client.B.GetUserDataAsync(Constants.Constants.botId, userid);
getData.Data = ar.Serialize();
var foo = await stateClient.BotState.SetUserDataAsync(Constants.Constants.botId, activity.From.Id, getData);
//var foo = await client.Bots.SetUserDataAsync(Constants.Constants.botId, userid, getData);
}
上面的代碼將在機器人仿真工作順利無一例外。但是當我加入機器人Skype的然後就開始在那個時候我得到異常聊天「無法反序列化響應」執行這一行
var getData = await stateClient.BotState.GetUserDataAsync(Constants.Constants.botId, activity.From.Id);
請告訴我該怎麼解決這個問題了。
您嘗試序列化的數據的大小是多少?機器人狀態服務僅用於存儲少量狀態數據(總共<64k)而非大型對象。如果要存儲較大的項目,可以將散列值放入UserData中,然後在單獨的存儲服務(如Azure存儲)或本地緩存中進行查找。 (請確認是否是這個問題,謝謝) – Lars
我在這裏得到上面的異常var getData = await stateClient.BotState.GetUserDataAsync(Constants.Constants.botId,activity.From.Id);我試圖序列化10K數據。 – pradeep
您是否嘗試過使用助手來創建您的狀態客戶端:StateClient stateClient = activity.GetStateClient(); – Lars