Я получаю ошибки десериализации, но только на Testserver.
Тот же код на производительном сервере работает.
Возникают следующие ошибки:
{"При анализе значения обнаружен неожиданный символ:. Path '', строка 0, позиция 0."}
Это полученная строка json, которую я получаю от веб-службы.
{"success":true,"responses":[{"statusCode":0,"responseMessage":"Der Datensatz wurde erfolgreich unter dem Bookmark BD2797BB4D283AF2 gespeichert"},{"statusCode":0,"responseMessage":"Der Datensatz wurde erfolgreich unter dem Bookmark 05206DB94D283AF2 gespeichert"},{"statusCode":0,"responseMessage":"Der Datensatz wurde erfolgreich unter dem Bookmark 900349C04D283AF2 gespeichert"},{"statusCode":0,"responseMessage":"Der Datensatz wurde erfolgreich unter dem Bookmark ED492DC74D283AF2 gespeichert"}]}
Несколько дней назад он работает и на тест-сервере, но я не знаю, где может быть ошибка.
Звонок веб-службы:
var errorPositions = new List<SalesConditionErrorMesageDTO>();
string response = "";
var settings = JsonSetting.DefaultSerializerSettings;
string jsonDataString = JsonConvert.SerializeObject(
new DataSend()
{
Conditions = salesConditions
}, settings
);
HttpWebRequest request = CreatePostRequest(ServerConfiguration.ConditionsWrite, jsonDataString.Length);
request.Timeout = 7200000; //120 Minutes
Logger.Log("Save Conditions on:" + Environment.NewLine
+ request.RequestUri + Environment.NewLine
+ jsonDataString, LogSeverity.Information);
using (Stream webStream = request.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, Encoding.ASCII))
{
requestWriter.Write(jsonDataString);
}
using (WebResponse webResponse = request.GetResponse())
using (Stream webStream = webResponse.GetResponseStream())
{
if (webStream != null)
{
using (StreamReader responseReader = new StreamReader(webStream))
{
response = responseReader.ReadToEnd();
var responseJson = JsonConvert.DeserializeObject<dynamic>(response);
if ((bool)responseJson.success)
{
foreach (dynamic responsePart in responseJson.responses)
{
if ((int)responsePart.statusCode == 2)
{
var errorPosition = new SalesConditionErrorMesageDTO(0, 0, responsePart.responseMessage);
}
}
}
}
}
else
{
throw new NullReferenceException("WebResponse.GetResponseStream() returned no WebStream object, so this is NULL.");
}
}