相比.调用获得403禁止访问的web服务
本文关键字:访问 web 服务 禁止 调用 相比 | 更新日期: 2023-09-27 18:15:40
我有一个叫做scl的方法。这个方法调用了一个webservice。
当使用parallel时。我得到一个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);
尝试在IIS中为您的web服务关闭keep-alive。这应该有点帮助。请记住,windows XP上的IIS对传入连接有限制,所以你基本上是在对自己发起DoS攻击;-)