首页新闻找找看学习计划

WIN7 X64 iis7 silverlight+wcf 同时下载文件问题

0
悬赏园豆:50 [待解决问题]
软件设计流程是这样的,都发生在局域网
1.服务端 使用wcf,.读取局域网另一台服务机上的文件,对文件进行解析,生成新文件,打包新文件成压缩包,提供下载,流的形式。
2.客户端 使用silverlight,1.一个List<path> 取path 循环调用wcf下载压缩文件方法。

问题描述1. 文件数量比较多,500个,
当有6台机器同时下载时,大概是每台机器都下载到220个文件左右,全部停止,服务器cup也降下来。
220x6=1320

当有4台机器同时下载时,大概是每台机器都下载到350个文件左右,全部停止,服务器cup也降下来。
350x4=1400

当有2台机器同时下载时,可正常下载,服务器cup降下来。
结论是只能同时下载大概1300张左右的文件,超过时就会停止下载。
在停止下载后,在进行下载(1-2)台,可正常下载。

问:这种情况大概有哪些原因。 我觉得主要是服务器端的问题,1. IIS下载限制(数量,大小),2.连接问题,Silverlight端没有正确释放?(silverlight中wcf的调用是每次打开一个新实例,调用方法,关闭)
下载调用代码:
var psc = new ServiceClient();
try
{
(psc.Endpoint.Binding as BasicHttpBinding).MaxReceivedMessageSize = int.MaxValue;
(psc.Endpoint.Binding as BasicHttpBinding).MaxBufferSize = int.MaxValue;
psc.GetDicomFileBytesCompleted += psc_GetFileBytesCompleted;
psc.GetDicomFileBytesAsync(downLoadPath);
psc.CloseAsync();
}

config文件配置:
<binding name="BasicHttpBinding_IService" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
zhcnblog的主页 zhcnblog | 初学一级 | 园豆:154
提问于:2014-07-09 11:07
< >
分享
所有回答(1)
0

FileShare.Read问题        

File.Open(,,,FileShare.Read))    msdn:允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。 

zhcnblog | 园豆:154 (初学一级) | 2014-07-09 16:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册