×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

请教一个异步调用 web service 的问题

用 asp.net 写了一个 web service,在 windows form client 端使用 vs.net ide 通过创建 web service reference 得到了 reference.cs (web service proxy)。
因为这个 web service 要在多台机器运行(P2P),所以 proxy 的构造函数里取消了对 Url 的赋值。
我想用这样的 code (伪代码):
mynamespace.webserviceproxy wsProxy = new webserviceproxy ();
for(int i=0; i<20; i++)
{
wsProxy.Url = "http://server" + i.ToString() + "....";
AsyncCallBack myCallBack=new AyncCallBack(this.MyCallBackFunc);
wsProxy.BeginMyMethod(sParam1, myCallBack, null);
}
void MyCallBackFunc(IAsyncResult ar)
{
ExpRepDataSet = wsProxy.EndMyMethod(ar);
}
现在的问题是:
1。我应该用一个 wsProxy instance 还是多个?
2。如果多个,MyCallBackFunc 怎么区分?
3。如果某台 server 没有开机或 asmx 不存在,我如何能够知道是哪台出错?
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 请教一个异步调用 web service 的问题
    用 asp.net 写了一个 web service,在 windows form client 端使用 vs.net ide 通过创建 web service reference 得到了 reference.cs (web service proxy)。
    因为这个 web service 要在多台机器运行(P2P),所以 proxy 的构造函数里取消了对 Url 的赋值。
    我想用这样的 code (伪代码):
    mynamespace.webserviceproxy wsProxy = new webserviceproxy ();
    for(int i=0; i<20; i++)
    {
    wsProxy.Url = "http://server" + i.ToString() + "....";
    AsyncCallBack myCallBack=new AyncCallBack(this.MyCallBackFunc);
    wsProxy.BeginMyMethod(sParam1, myCallBack, null);
    }
    void MyCallBackFunc(IAsyncResult ar)
    {
    ExpRepDataSet = wsProxy.EndMyMethod(ar);
    }
    现在的问题是:
    1。我应该用一个 wsProxy instance 还是多个?
    2。如果多个,MyCallBackFunc 怎么区分?
    3。如果某台 server 没有开机或 asmx 不存在,我如何能够知道是哪台出错?
    • solved. using asyncResult.AsyncState
    • 你的问题总是很高深啊。今儿晚上晚上打牌?