C# Web服务抛出大量的;接收时发生意外错误";在更改框架后使用时

C# Web服务抛出大量的;接收时发生意外错误";在更改框架后使用时,c#,web-services,client-server,C#,Web Services,Client Server,我有一个用.NET2.0编写的web服务,它公开了一些web方法。该服务由几年前使用.NET1.1编写的客户端应用程序使用。此时无法转换客户端应用程序 我最近将web服务项目“升级”到了.NET4.0,因为我已经开始使用VS2010,并希望使用新功能。由于客户端无法升级,我无法将web服务转换为WCF,因此代码本身根本没有更改。相同的web服务,相同的web方法 总的来说,它工作得很好,一开始我看不出有什么问题 然而,我的日志系统显示,当客户端使用web服务时,出现的“接收时发生意外错误”错误大

我有一个用.NET2.0编写的web服务,它公开了一些web方法。该服务由几年前使用.NET1.1编写的客户端应用程序使用。此时无法转换客户端应用程序

我最近将web服务项目“升级”到了.NET4.0,因为我已经开始使用VS2010,并希望使用新功能。由于客户端无法升级,我无法将web服务转换为WCF,因此代码本身根本没有更改。相同的web服务,相同的web方法

总的来说,它工作得很好,一开始我看不出有什么问题

然而,我的日志系统显示,当客户端使用web服务时,出现的“接收时发生意外错误”错误大幅增加——例如,如果以前是每周一次,现在每天抛出这些错误10-20次

大约有50个客户每天总共处理数千个请求

它不是以特定的方式发生的,也不能复制到某些客户的特定行为中

堆栈跟踪的一部分:

在System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest-request)
位于System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest请求)
位于System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object[]参数)

有人知道是什么原因导致了这种增长吗?有没有办法在不将整个内容转换为WCF的情况下减少它

仔细想想,这也可能是因为在服务器上安装了.NET4.0,所以我不确定将web服务DLL回滚到旧版本会有什么好处

完整的错误消息实际上是:

基础连接已关闭:
服务器上发生意外错误 接收


您正在为.NET 4服务使用什么端点绑定?.net上的早期版本不支持默认wshttpbinding,您必须使用BasicHttpBinding

以下是一些指导:

以下是ASP.NET 4:的中断更改列表,以及:

我在那里看到的唯一有趣的部分是ASP.NET请求验证章节。现在验证也适用于web服务

我会尝试
requestValidationMode=“2.0”


否则,这里有一个完整的想法列表:但它与.NET 4和.NET 2之间的更改无关。

我增加了服务器上的全局超时,减少了错误数量。谢谢