System.Net.ProtocolViolationException:ContentLengthbytesmustbewrittentotherequeststreambeforecallingGetResponseNet.ProtocolViolationException:当调用Web请求的“BeginGetResponse”方法时,ContentLength字节必须在调用[Begin]GetResponse之前写入请求流”错误。这是我的代码:try{StreamdataStream=null;WebRequestWeb请求;Webrequest=WebRequest.Create(this.EndPointAddress);Webrequest.Credentials=newNetworkCredential(this.username,this.password);Webrequest.ContentType="文本/xml";Webrequest.Method=WebRequestMethods.Http.Post;byteArray=System.Text.Encoding.UTF8.GetBytes(xmlRequest.Children[0].InnerXML);Webrequest.ContentLength=byteArray.Length;dataStream=Webrequest.GetRequestStream();dataStream.Write(byteArray,0,byteArray.Length);RequestStaters=newRequestState();rs.Request=Web请求;IAsyncResultr=(IAsyncResult)Webrequest.BeginGetResponse(newAsyncCallback(RespCallback),rs);}catch(Exceptionexc){TRACE.EXCEPTION(exc);}最后{dataStream.Close();}更具体地说,在调用函数“getRequestStream()”后,Stream抛出以下长度的异常:'stream.Length'抛出类型为'System.NotSupportedException'的异常可能是什么原因?这最终是通过使用完成的:使用(dataStream=Webrequest.GetRequestStream()){dataStream.Write(byteArray,0,byteArray.Length);}相反:dataStream=Webrequest.GetRequestStream();dataStream.Write(byteArray,0,byteArray.Length);您的代码应该适用于.NET2.0从4.0及更高版本开始,您应该在编写后关闭流:dataStream=Webrequest.GetRequestStream();dataStream.Write(byteArray,0,byteArray.Length);数据流。关闭();检查以验证您的服务器设置为接受大文件,您可能会发现您达到了4兆字节的默认限制。上传较大文件时在web.config文件中添加如下内容:以上是C#学习教程:System.Net.ProtocolViolationException:在调用GetResponse之前,必须将ContentLength字节写入请求流共享的全部内容,如果是对大家有用,需要详细了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
