我正在尝试从客户端向Web服务发送一个byte []。该数组由序列化的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文件时(当我将它显示到控制台时正确读取),即使我只是尝试接受并返回数组,提交也会返回错误: / p>
mscorlib.dll中出现'System.ServiceModel.Dispatcher.NetDispatcherFaultException'类型的第一次机会异常
实际的客户端代码:
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