我正在使用WSE Web服务在c#中开发客户端 - 服务器应用程序。用户可以做的事情之一是将jpg图像发送到服务器以通过Web服务进行备份。最近出现了奇怪的错误。这不会发生在所有用户身上,只有少数用户。在客户端,例外是
System.Net.WebException Exception message: The operation has timed out
并在服务器上,在事件查看器中找到以下警告:
Exception information:
Exception type: HttpException
Exception message: Server cannot clear headers after HTTP headers have been sent.
Request information
Request URL: MyUrl/Service.asmx
Request path: /MyWebService/Service.asmx
User host address: -------
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 7
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.Web.HttpResponse.ClearHeaders()
at System.Web.Services.Protocols.SoapServerProtocol.WriteException(Exception e, Stream outputStream)
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
有没有人知道这个错误可能来自哪里?我已经尝试将web.config中的“maxRequestLength”提升到16Mb,但这并没有解决它。
此致 /丹尼尔
答案 0 :(得分:0)
您使用WSE是因为您别无选择吗?这是使用它的唯一原因,因为它已经过时了。你不能使用WCF吗?
答案 1 :(得分:0)
我经历过同样的事情。在我调查这个问题时,我遇到了这个问题。我只想分享到目前为止我发现的内容。
我在网上发现的很简单。通过在web.config文件的system.web部分中增加maxRequestLength(到理智的数量),您可以解决此问题。
我想,没有比这更多的研究,当你的一个用户通过你的WSE发送一个更大的JPG要在你的系统中备份时,maxRequestLength的默认设置将无法处理所呈现的请求的大小网络服务。
您可能还希望为executionTimeout设置添加时间。