C# WebService并发问题

本人目前在做一个有关WebSerivce的项目,用VS 2005下的C#开发。我们做的是一个平台,
这个平台提供接口供其它人调用,接受他们的请求,然后再把他们的请求转发给其它平台(也是调用其它平台的接口).
我们应用的技术是VS2005封装好的WebSerivce异步调用技术,现在遇到的问题是,当同时有比较多的请求要接收和处理时
(比如一秒内有超过两百的请求过来时),我们的平台就会丢失一些请求,之前我们是发布在XP上的IIS5.1,然后改为
windows server 2003上的IIS6.0,发现得到了不小的改善,但还是会丢失一些请求。
我想问问大家有没有什么比较好的建议,来解决这种问题,是不是IIS或者微软这套机制的瓶颈所在?是不是只能靠升级
软件(比如用2008上的IIS7.0)和硬件(更好的配置)来解决?
请大家帮帮忙!
谢谢1楼的回答。不过如果用同步的话要一条处理完才能处理下一条。这样会很慢的

为什么要用异步呢?异步非阻塞线程启动后交由操作系统处理, 而程序去接受另一个请求.操作系统有自己的优先级调度,至于什么时候处理那个线程就不知道了,当然会"丢失", 其实也不是丢失,而是优先级过低, web服务器还没等到处理好, 就超时了.
你可以使用同步的方法调用看看能不能解决问题.
温馨提示:内容为网友见解,仅供参考
无其他回答

c# webservice 报出异常“在一个非套接字上尝试了一个操作”,是什么原...
出现这个错误的原因,是你的电脑访问不了webservice了,通常是网络的原因。

C# WebService并发问题
为什么要用异步呢?异步非阻塞线程启动后交由操作系统处理, 而程序去接受另一个请求.操作系统有自己的优先级调度,至于什么时候处理那个线程就不知道了,当然会"丢失", 其实也不是丢失,而是优先级过低, web服务器还没等到处理好, 就超时了.你可以使用同步的方法调用看看能不能解决问题.

iis+webservice(c#)过段时间就会异常,重启就没问题
SqlDataReader 看看有没有这个,如果有,但是程序结束后没有关闭的话,就可能出现那个问题;

C# webservie 传递一个大型byte数据,服务报错
我遇到过这类问题vxbg原因应该是你的update语句。你的sql语句的update 某列= 某值a本来是正确的40但是如果用来修改二进制数据就不行gko你可以修改成参数形式的sql语句例如:update [表名] set [列名] = @param1 where [列名] = 某值SqlParameter[] parameters = { new Sql...

c# webservice 如何防止客户端重复登陆,要考虑客户端意外掉线情况。听说...
1 建立2个webservice 由于本身服务为b\/s结构模式,因此存在HttpSession对象 第一个service1为登陆时调用。功能:用户登录,如session中该用户名还不存在session对象,则建立,并返回sessionid到客户端,客户端保存,如已存在,则删除原有session,建立新session并返回新的id,客户端保存 第二个service2为...

C# 关于WebService运行速度
1:可能是网络问题(这个个人觉得微乎其微)因为,你能从服务器获得数据,说明,网络连接没有问题。只是最后return时出问题了 2:那为什么return会出问题呢?其实很简单,由于服务器响应后,是通过xml形式给你的(你的webservice估计返回了一个对象或者别的什么,但是网页上显示大多是xml)然而,因为xml...

C# 频繁调用WebService 产生 “连接远程服务器失败”异常
我碰到过类似问题,供你参考 1 webService里面的全局变量会过期,使用之前需检测 2 如果全局变量是Static,且会变化,处理之前 最好 lock(object)

C#调用webService报错,该怎么处理
项目引用WebService时,如果WebService有源代码可以在引用WebService时,引用解决方案中的WebService,这样可以加断点调试。

c#系统调用webservice连接数据库超时卡死怎么处理
首先修改服务端配置 WebService服务所在站点为服务端,它提供了服务,打开这个站点的web.config,添加下面的配置:<httpRuntime executionTimeout="300000" \/> <compilation defaultLanguage="c#" debug="false"> executionTimeout="300000" 单位是“毫秒”,这里配置的是5分钟。debug="false" 要关闭...

c#调用webservice报错:基础连接已经关闭: 接收时发生错误。网上很多人说...
protected override WebRequest GetWebRequest(Uri uri){ HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);webRequest.KeepAlive = false;webRequest.ProtocolVersion = HttpVersion.Version10;return webRequest;} \/\/\/ <remarks\/> ...

相似回答