HTTP 407错误时未调用C#webservice异步回调

HTTP 407错误时未调用C#webservice异步回调,c#,web-services,callback,asynchronous,http-status-code-407,C#,Web Services,Callback,Asynchronous,Http Status Code 407,我正在尝试测试一个客户使用带有登录凭据的代理的用例,尝试从我们的客户机使用我们的Web服务 如果请求是同步的,我的工作就简单了。捕获WebException,检查407代码,并提示用户输入登录凭据 然而,对于异步请求,我似乎遇到了一个问题:永远不会调用回调!我运行了wireshark跟踪,确实看到HTTP 407错误被传回,所以我不知道该怎么办 以下是设置回调并启动请求的代码: TravelService.TravelServiceImplService svc = new TravelServ

我正在尝试测试一个客户使用带有登录凭据的代理的用例,尝试从我们的客户机使用我们的Web服务

如果请求是同步的,我的工作就简单了。捕获WebException,检查407代码,并提示用户输入登录凭据

然而,对于异步请求,我似乎遇到了一个问题:永远不会调用回调!我运行了wireshark跟踪,确实看到HTTP 407错误被传回,所以我不知道该怎么办

以下是设置回调并启动请求的代码:

TravelService.TravelServiceImplService svc = new TravelService.TravelServiceImplService();
svc.Url = svcUrl;
svc.CreateEventCompleted += CbkCreateEventCompleted;
svc.CreateEventAsync(crReq, req);
以及我使用WSDL时生成的代码:

public void CreateEventAsync(TravelServiceCreateEventRequest CreateEventRequest, object userState) {
        if ((this.CreateEventOperationCompleted == null)) {
            this.CreateEventOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateEventOperationCompleted);
        }

        this.InvokeAsync("CreateEvent", new object[] {
                    CreateEventRequest}, this.CreateEventOperationCompleted, userState);
    }

    private void OnCreateEventOperationCompleted(object arg) {
        if ((this.CreateEventCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.CreateEventCompleted(this, new CreateEventCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }

调试WS代码时,我发现即使是SoapHttpClientProtocol.InvokeAsync方法也没有调用其回调。我是否缺少某种配置?

我后来发现问题出在代理服务器上,而不是代码。切换到不同的代理服务器,以及不使用基本身份验证(到底谁使用它?)进行测试,我能够得到我的回调。

我也有同样的问题。现在,我只是实例化一个计时器,并转到其中的断开连接状态。

该代理是VS在“添加服务引用”时生成的吗?看起来是这样。如果你想省去很多麻烦,远离VS生成的代理。