相比.调用获得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);

相比.调用获得403禁止访问的web服务

尝试在IIS中为您的web服务关闭keep-alive。这应该有点帮助。请记住,windows XP上的IIS对传入连接有限制,所以你基本上是在对自己发起DoS攻击;-)