2010-06-17 88 views
0

我想從客戶端發送一個字節[]到一個Web服務。該數組由一個序列化的XML文件組成。發送到Web服務的字節[]的大小問題?

我的測試場景工作(使用非常小的字節[])。下面是代碼:

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

+2

你的服務端'SubmitForm'非常奇特。你構造了一個從未使用過的'returnBytes'對象,然後將原始的'bytes'參數返回給調用者而不做任何事情。這是由設計嗎? – 2010-06-17 16:08:55

+0

是的。這只是我正在測試的代碼,以使一般功能正常工作......實際應用程序對返回的字節數組有用,而且它不會與發送的一樣。雖然謝謝! – badpanda 2010-06-18 14:30:56

回答

2
+0

所引發的異常是否表明消息大小配額已達到?它確實在我的環境中。 – Kezzer 2010-06-17 15:56:44

+0

它看起來會。但是,這是一個byte [],他發佈的鏈接適用於XML序列化,而不是字節序列化。所以也許錯誤是不同的? – badpanda 2010-06-17 15:59:33

+0

工作。謝謝! – badpanda 2010-06-17 16:07:24