2010-06-17 6 views
0

클라이언트에서 웹 서비스로 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 파일을 읽으려고하면 submission은 배열을 수락하고 반환하려고해도 오류를 반환합니다.

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(); 
     } 

서비스 측 코드 : 0

유형 'System.ServiceModel.Dispatcher.NetDispatcherFaultException'의 첫 번째 예외가 mscorlib.dll에서

의 실제 클라이언트 측 코드 발생

public byte[] SubmitForm(byte[] bytes) 
{ 
    return bytes; 
{ 

이전에이 문제가 발생 했습니까? 두 경우의 차이점은별로 없지만 C#에서는 경험이 없습니다.

모든 의견을 많이 주시면 감사하겠습니다.

감사합니다.

badPanda

+2

서비스 측'SubmitForm'은 매우 특이합니다. 한번도 사용하지 않은 returnBytes 객체를 만든 다음 원래의'bytes' 매개 변수를 아무 것도하지 않고 호출자에게 반환합니다. 그게 설계된거야? –

+0

있습니다. 이것은 일반적인 기능을 작동시키기 위해 테스트 한 코드 일뿐입니다. 실제 응용 프로그램은 반환 된 바이트 배열을 사용하며 전송 된 것과 동일하지 않습니다. 그래도 고마워! – badpanda

답변

2
+0

예외가 발생해도 메시지 크기 할당량에 도달 했습니까? 그것은 내 환경에서 확실합니다. – Kezzer

+0

마치 그렇게 보입니다. 그러나 이것은 byte []이며 그가 게시 한 링크는 바이트 직렬화가 아닌 XML 직렬화에 적용됩니다. 어쩌면 오류가 다를 수 있습니까? – badpanda

+0

Worked. 감사! – badpanda

관련 문제