问题是这样的 我调用webservice上传图片 给webservice传递的是byte[]字节 , 如果连续5张 200k 的都能上传成功, 单张600k的也行 ,如果连续2张600k的 就一张也上不去 webservice那没什么反映了。 我用httpwatch工具查看了一下,是因为上传的响应时间只要超过30秒就会提示错误 "在与服务器的连接已被终止",30秒内的都可以成功.
我在webservice,服务端都配置了<httpRuntime maxRequestLength="100000" executionTimeout="360000" />,
在代理类里也重写了
//在 WebService 的客户端代理程序(用 wsdl.exe 生成)里设置 Request 超时时间, 单位是毫秒:
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest wr = (HttpWebRequest)base.GetWebRequest( uri );
wr.Timeout = 3600*1000;
return wr;
}
在实例化webservice时也增加了 (部分代码)
string FilePath = inputFile.PostedFile.FileName;
int fileSize = inputFile.PostedFile.ContentLength;
string FileName = FilePath.Substring(FilePath.LastIndexOf("\\") + 1);
byte[] fileByte= new byte[fileSize];
inputFile.PostedFile.InputStream.Read(fileByte, 0, fileSize);
_imageService.Timeout = 150000;//增加了超时时间
return _imageService.UserPhoto(fileByte, FileName, UserID);
IIS也配置了对应的响应时间,实在是找不到解决的办法了。 请高手给指点一下思路谢谢拉.
我也考虑过webservice多线程传递byte[],但还是想先知道是不是还有什么配置我没做. 麻烦各位了
给webservice一个图片的url ,webservice获取到url以后,去下载图片,而不是你这样去传送图片,这样的话应该好一点吧?
获取URL下载图片....客户端上传的,这样是不是更不合理,上传的图片未知,而且要对应解析