Android Microsoft同步框架-ServerBlob为空错误
我正在使用Microsoft Sync Framework将android设备上的Datadictionary中的详细信息与SQL Server同步。最初,成功同步sql server中的所有数据。但是在添加一些数据后,当单击同步按钮时,会出现以下错误。你能告诉我有没有人碰到这个Android Microsoft同步框架-ServerBlob为空错误,android,microsoft-sync-framework,data-dictionary,Android,Microsoft Sync Framework,Data Dictionary,我正在使用Microsoft Sync Framework将android设备上的Datadictionary中的详细信息与SQL Server同步。最初,成功同步sql server中的所有数据。但是在添加一些数据后,当单击同步按钮时,会出现以下错误。你能告诉我有没有人碰到这个 [Sync Error]:Error occurs during sync. Please check logs below. [Upload Change Response Error]: 500 Response:
[Sync Error]:Error occurs during sync. Please check logs below.
[Upload Change Response Error]: 500 Response: <ServiceError xmlns="http://schemas.datacontract.org/2004/07/Microsoft.Synchronization.Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ErrorDescription>System.InvalidOperationException
 serverBlob is empty
 at Microsoft.Synchronization.Services.SqlProvider.SqlSyncProviderService.ApplyChanges(Byte[] serverBlob, List`1 entities)
 at Microsoft.Synchronization.Services.UploadChangesRequestProcessor.ProcessRequest(Request incomingRequest)
 at Microsoft.Synchronization.Services.SyncService`1.ProcessRequestForMessage(Stream messageBody)
 
 
 </ErrorDescription></ServiceError>
我已找到问题的根本原因。也就是说,当我从datadictionary存储中获取值时,
value在值中有单引号,因此无法在webview中加载值。现在我用\'
取代了单引号现在工作正常是第一次同步吗?您是如何在客户端存储blob的?@JuneT:请检查edit您还没有回答我的问题…服务器blob错误通常发生在首次同步时,当您在正在上载的客户端上有数据且服务器blob尚未初始化时。同样,如何存储blob和初始值?
this.sendRequest = function (serviceUri, successCallback, errorCallback, dir) {
TraceObj("[" + dir + " Request]:", serviceUri, this.dataObject());
// Construct HTTP POST request
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", serviceUri);
xmlHttp.setRequestHeader("Accept", "application/json");
xmlHttp.setRequestHeader("Content-Type", "application/json");
// Handle success & error response from server and then callback
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var res = new SyncFormatter();
if (res.parse(xmlHttp.responseText)) {
TraceObj("[" + dir + " Response]:", serviceUri, res.dataObject());
alert("[" + dir + " Response]:", serviceUri, res.dataObject());
successCallback(res);
return;
}
}
TraceMsg("[" + dir + " Response Error]: ", xmlHttp.status + " Response: " + xmlHttp.responseText);
errorCallback(xmlHttp.responseText);
}
};
xmlHttp.send(this.toString());
};
}