2017-04-12 10 views
0

928mb 파일이 제대로 작동하지만 1.08GB 비누 서비스 (mtom 청크 분할 전송 _svice reference.cs wsdl에서 생성 할 때이 오버플로 오류가 발생합니다.). 추적 피들러에서 나는 요청의 헤더를 볼 수 있지만 더 요청 본문없고 응답이C# 비누 클라이언트 System.OverflowException : 산술 연산 오버플로가 발생했습니다

관련 코드 :

var httpsTransportBindingElement = new HttpsTransportBindingElement 
{ 
    MaxReceivedMessageSize = int.MaxValue, 
    TransferMode = TransferMode.Streamed //Chunked transfer 
}; 
var binding = new CustomBinding(); 
var mtomEncoding = new MtomMessageEncodingBindingElement(MessageVersion.Soap12, Encoding.UTF8); 
mtomEncoding.ReaderQuotas.MaxStringContentLength = int.MaxValue; 
binding.Elements.Add(mtomEncoding); 
binding.Elements.Add(httpsTransportBindingElement); 
binding.SendTimeout = TimeSpan.FromHours(1); 
binding.ReceiveTimeout = TimeSpan.FromMinutes(5); 
_service = new FileuploadSoapPortTypeClient(binding, new EndpointAddress(configuration.HttpUploadUrl)); 
_service.PostFile(request); 

그리고 에러 스택 트레이스는 다음과 같다 :

System.OverflowException: Arithmetic operation resulted in an overflow. 

Server stack trace: 
at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count) 
at System.Xml.XmlMtomWriter.WriteXOPBinaryParts() 
at System.ServiceModel.Channels.Message.WriteMessagePostamble(XmlDictionaryWriter writer) 
at System.ServiceModel.Channels.MtomMessageEncoder.WriteMessage(Message message, Stream stream, String startInfo, String boundary, String startUri, Boolean writeMessageHeaders) 
at System.ServiceModel.Channels.HttpOutput.WriteStreamedMessage(TimeSpan timeout) 
at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) 
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) 
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) 
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) 
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

Exception rethrown at [0]: 
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
at MyServiceClient.FileuploadSoapPortType.PostFile(UploadRequest request) 
at MyServiceClient.FileuploadSoapPortType.PostFile(UploadRequest request) in C:\MyServiceClient\Reference.cs:line 8473 

내가 캔트 디버깅이 이상의 PostFile() 호출, 그래서 내 질문 - 오류가 발생하는 서버 또는 클라이언트에서? 물론 그것을 고정시키는 방법은 무엇입니까? 감사!

이 오류는 무언가에 의해 발생
Server stack trace: 

에서 일어나고있다 : 그것은 서버 측 스택 트레이스에서

+0

서버 스택 추적 : 문제가 서버에 있습니다 –

+0

오류가 발생한 서비스 제공 업체에 설명하는 방법을 알려 주시면 고맙겠습니다. 보통 비누 오류 메시지가 표시되어 검토를 위해 보낼 수 있지만이 경우 응답이 없습니다 – Succenna

+0

여기 무슨 일이 일어나고 있습니까? C : \ MyServiceClient \ Reference.cs : 줄 8473 –

답변

0

당신을 말하고 있음을

at MyServiceClient.FileuploadSoapPortType.PostFile(UploadRequest request) in C:\MyServiceClient\Reference.cs:line 8473 

액세스 해당 파일을 볼 것 그 라인에서 일어나고있다. 웹 서비스가 호스팅되는 곳을 생각해보고 싶습니다. 이런 일이 발생하면 로그가 생깁니다.

것은 내가 제안 이유를 확인하는 방법은 다음과 같습니다

  • 은 발생 시간 제공 (그들이 가지고있는 경우 로그는 쉽게 스택 트레이스를 찾을 수) 오류가 발생했을 때 당신이해야 할 노력 무엇
  • 자세한 설명 .