Я пытаюсь отправить байт [] от клиента в веб-службу. Массив состоит из сериализованного XML-файла.
Мой тестовый сценарий работает (с очень маленьким байтом []). Вот код:
FormsService.FormsServiceClient client = new FormsService.FormsServiceClient();
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("root");
XmlElement element = doc.CreateElement("child");
root.AppendChild(element);
doc.AppendChild(root);
MemoryStream ms = new MemoryStream();
doc.Save(ms);
byte[] bytes = ms.ToArray();
if (client.ServerActive())
{
client.SubmitForm(bytes);
Console.ReadLine();
}
И код сервисной стороны выглядит так:
public byte[] SubmitForm(byte[] bytes)
{
XmlDocument doc = new XmlDocument();
string xml = Encoding.UTF8.GetString(decryptedBytes);
doc.LoadXml(xml);
XmlNodeList nodeList = doc.GetElementsByTagName("child");
byte[] returnBytes = Encoding.UTF8.GetBytes(nodeList[0].Name);
return bytes;
}
Это отлично работает. Результаты верны.
Однако, когда я пытаюсь прочитать реальный xml-файл из моей файловой системы (который правильно читает, когда я отображаю его на консоли), отправка возвращает ошибку, даже когда я просто пытаюсь принять и вернуть массив:
Первое случайное исключение типа 'System.ServiceModel.Dispatcher.NetDispatcherFaultException' произошло в mscorlib.dll
Фактический код на стороне клиента:
FormsService.FormsServiceClient client = new FormsService.FormsServiceClient();
XmlDocument doc = new XmlDocument();
doc.Load(myFilePath);
MemoryStream ms = new MemoryStream();
doc.Save(ms);
byte[] bytes = ms.ToArray();
if (client.ServerActive())
{
client.SubmitForm(bytes);
Console.ReadLine();
}
Код сервисной стороны:
public byte[] SubmitForm(byte[] bytes)
{
return bytes;
{
Кто-нибудь сталкивался с этой проблемой раньше? Я не вижу большой разницы между этими двумя случаями, но я неопытен в C #.
Любые предложения приветствуются.
Спасибо!
badPanda