我有一个名为SColl的方法。此方法调用Web服务。
使用parallel.invoke时,我收到403(禁止访问)错误。有时在1或2中,如d1,d3,d4返回记录,但d2和d5返回禁止访问。
Parallel.Invoke(
() =>
{
List<myclass> d1 = SColl(param, param, param, param);
},
() =>
{
List<myclass> d2 = SColl(param, param, param, param);
},
() =>
{
List<myclass> d3 = SColl(param, param, param, param);
},
() =>
{
List<myclass> d4 = SColl(param, param, param, param);
},
() =>
{
List<myclass> d5 = SColl(param, param, param, param);
});
public List<myclass> SColl(param, param, param, param)
{
// fill param to pass to web service call
// ab = webservice is invoked
// for loop fill data from webservice to list
// return list
}
但如果我进行顺序调用,则所有列表都会返回数据。这项服务或我的结果有什么问题?或者与机器有关的东西?我正在使用WinXP在P4单核中调试此代码。
List<myclass> d1 = SColl(param, param, param, param);
List<myclass> d2 = SColl(param, param, param, param);
List<myclass> d3 = SColl(param, param, param, param);
List<myclass> d4 = SColl(param, param, param, param);
List<myclass> d5 = SColl(param, param, param, param);
答案 0 :(得分:1)
尝试在IIS中为您的Web服务关闭keep-alives。这应该有点帮助。请记住,Win XP上的IIS具有传入连接的限制,因此您基本上是对自己发起DoS攻击; - )