Issue with size of byte[] being sent to web service?
I am trying to send a byte[] from a client to a web service. The array is composed of a serialized XML file.
My test scenario works (with a very small byte[]). Here is the code:
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();
}
And the service-side code looks like this:
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;
}
This works perfectly. Results are correct.
However, when I try to read in an actual xml file from my file system (which is reading in correctly when I display it to console), submission returns an error even when I just try to accept and return the array:
A first chance exception of type 'System.ServiceModel.Dispatcher.NetDispatcherFaultException' occurred in mscorlib.dll
The actual client side code:
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())
开发者_JAVA百科 {
client.SubmitForm(bytes);
Console.ReadLine();
}
The service side code:
public byte[] SubmitForm(byte[] bytes)
{
return bytes;
{
Has anyone encountered this problem before? I don't see much difference between the two cases, but I am inexperienced with C#.
Any suggestions would be much appreciated.
Thanks!
badPanda
Try increasing the maximum message size quota.
精彩评论