Parallel.invoke Web服务获得403禁止访问

时间:2011-11-25 22:32:47

标签: c# asp.net web-services

我有一个名为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);

1 个答案:

答案 0 :(得分:1)

尝试在IIS中为您的Web服务关闭keep-alives。这应该有点帮助。请记住,Win XP上的IIS具有传入连接的限制,因此您基本上是对自己发起DoS攻击; - )