C# asp.net web引用调用超时

C# asp.net web引用调用超时,c#,asp.net,wcf,C#,Asp.net,Wcf,具有本地控制台托管的WCF服务。在dll项目的web引用中添加了相同的内容。在我的asp.net页面中使用 代码: 当尝试从网页拨打电话时,它超时。当我从另一个WCF服务中使用相同的服务并拨打电话时,它工作正常 注: 我使用的asp.net版本是2.0.50727,因为它是一个客户端代码,我无法升级它,所以我使用了asp.net 2.0.50727的web引用。增加超时时会发生什么情况?尝试过,但也失败了。托管WCF服务中没有太多进程,它将返回数据契约。注意:当尝试使用另一个WCF客户端代理时,

具有本地控制台托管的WCF服务。在dll项目的web引用中添加了相同的内容。在我的asp.net页面中使用

代码:

当尝试从网页拨打电话时,它超时。当我从另一个WCF服务中使用相同的服务并拨打电话时,它工作正常

注:
我使用的asp.net版本是2.0.50727,因为它是一个客户端代码,我无法升级它,所以我使用了asp.net 2.0.50727的web引用。

增加超时时会发生什么情况?尝试过,但也失败了。托管WCF服务中没有太多进程,它将返回数据契约。注意:当尝试使用另一个WCF客户端代理时,它正在工作。
 PrepaidManagementService proxy = null;

        try
        {

            proxy = new PrepaidManagementService();

            res = proxy.balanceUsageSummary(balanceUsageSummaryRequestDtoObj); // Timeout happening here.
        }
        catch (TimeoutException e)
        {
            res.returnMessage = e.Message;
            proxy.Abort();
        }
        catch (Exception e)
        {
            res.returnMessage = e.Message;
            proxy.Abort();
            throw;
        } 
//Reference.cs
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.3053")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="WSHttpBinding_IPrepaidManagementService", Namespace="http://tempuri.org/")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(prepaidResponseDto))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(responseDto))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(OnePortalBaseDto))]
public partial class PrepaidManagementService : System.Web.Services.Protocols.SoapHttpClientProtocol {

    private System.Threading.SendOrPostCallback balanceUsageSummaryOperationCompleted;

    private System.Threading.SendOrPostCallback getAvailableMyCreditTopUpsOperationCompleted;

    private System.Threading.SendOrPostCallback applyMyCreditTopUpOperationCompleted;

    private bool useDefaultCredentialsSetExplicitly;

    /// <remarks/>
    public PrepaidManagementService() {
        this.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
        this.Url = "http://localhost:8733/TestXSD/PrepaidManagementService/";
        if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
            this.UseDefaultCredentials = true;
            this.useDefaultCredentialsSetExplicitly = false;
        }
        else {
            this.useDefaultCredentialsSetExplicitly = true;
        }
    }

    public new string Url {
        get {
            return base.Url;
        }
        set {
            if ((((this.IsLocalFileSystemWebService(base.Url) == true) 
                        && (this.useDefaultCredentialsSetExplicitly == false)) 
                        && (this.IsLocalFileSystemWebService(value) == false))) {
                base.UseDefaultCredentials = false;
            }
            base.Url = value;
        }
    }

    public new bool UseDefaultCredentials {
        get {
            return base.UseDefaultCredentials;
        }
        set {
            base.UseDefaultCredentials = value;
            this.useDefaultCredentialsSetExplicitly = true;
        }
    }

    /// <remarks/>
    public event balanceUsageSummaryCompletedEventHandler balanceUsageSummaryCompleted;

    /// <remarks/>
    public event getAvailableMyCreditTopUpsCompletedEventHandler getAvailableMyCreditTopUpsCompleted;

    /// <remarks/>
    public event applyMyCreditTopUpCompletedEventHandler applyMyCreditTopUpCompleted;

    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/IPrepaidManagementService/balanceUsageSummary", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public balanceUsageSummaryResponseDto balanceUsageSummary([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] balanceUsageSummaryRequestDto balanceUsageSummaryRequestDtoObj) {
        object[] results = this.Invoke("balanceUsageSummary", new object[] {
                    balanceUsageSummaryRequestDtoObj});
        return ((balanceUsageSummaryResponseDto)(results[0]));
    }

    /// <remarks/>
    public void balanceUsageSummaryAsync(balanceUsageSummaryRequestDto balanceUsageSummaryRequestDtoObj) {
        this.balanceUsageSummaryAsync(balanceUsageSummaryRequestDtoObj, null);
    }

    /// <remarks/>
    public void balanceUsageSummaryAsync(balanceUsageSummaryRequestDto balanceUsageSummaryRequestDtoObj, object userState) {
        if ((this.balanceUsageSummaryOperationCompleted == null)) {
            this.balanceUsageSummaryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnbalanceUsageSummaryOperationCompleted);
        }
        this.InvokeAsync("balanceUsageSummary", new object[] {
                    balanceUsageSummaryRequestDtoObj}, this.balanceUsageSummaryOperationCompleted, userState);
    }

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

    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/IPrepaidManagementService/getAvailableMyCreditTopUps", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public getAvailableMyCreditTopUpsResponseDto getAvailableMyCreditTopUps([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] getAvailableMyCreditTopUpsRequestDto getAvailableMyCreditTopUpsRequestDtoObj) {
        object[] results = this.Invoke("getAvailableMyCreditTopUps", new object[] {
                    getAvailableMyCreditTopUpsRequestDtoObj});
        return ((getAvailableMyCreditTopUpsResponseDto)(results[0]));
    }

    /// <remarks/>
    public void getAvailableMyCreditTopUpsAsync(getAvailableMyCreditTopUpsRequestDto getAvailableMyCreditTopUpsRequestDtoObj) {
        this.getAvailableMyCreditTopUpsAsync(getAvailableMyCreditTopUpsRequestDtoObj, null);
    }

    /// <remarks/>
    public void getAvailableMyCreditTopUpsAsync(getAvailableMyCreditTopUpsRequestDto getAvailableMyCreditTopUpsRequestDtoObj, object userState) {
        if ((this.getAvailableMyCreditTopUpsOperationCompleted == null)) {
            this.getAvailableMyCreditTopUpsOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetAvailableMyCreditTopUpsOperationCompleted);
        }
        this.InvokeAsync("getAvailableMyCreditTopUps", new object[] {
                    getAvailableMyCreditTopUpsRequestDtoObj}, this.getAvailableMyCreditTopUpsOperationCompleted, userState);
    }

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

    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/IPrepaidManagementService/applyMyCreditTopUp", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public applyMyCreditTopUpResponseDto applyMyCreditTopUp([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] applyMyCreditTopUpRequestDto applyMyCreditTopUpRequestDtoObj) {
        object[] results = this.Invoke("applyMyCreditTopUp", new object[] {
                    applyMyCreditTopUpRequestDtoObj});
        return ((applyMyCreditTopUpResponseDto)(results[0]));
    }

    /// <remarks/>
    public void applyMyCreditTopUpAsync(applyMyCreditTopUpRequestDto applyMyCreditTopUpRequestDtoObj) {
        this.applyMyCreditTopUpAsync(applyMyCreditTopUpRequestDtoObj, null);
    }

    /// <remarks/>
    public void applyMyCreditTopUpAsync(applyMyCreditTopUpRequestDto applyMyCreditTopUpRequestDtoObj, object userState) {
        if ((this.applyMyCreditTopUpOperationCompleted == null)) {
            this.applyMyCreditTopUpOperationCompleted = new System.Threading.SendOrPostCallback(this.OnapplyMyCreditTopUpOperationCompleted);
        }
        this.InvokeAsync("applyMyCreditTopUp", new object[] {
                    applyMyCreditTopUpRequestDtoObj}, this.applyMyCreditTopUpOperationCompleted, userState);
    }

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

    /// <remarks/>
    public new void CancelAsync(object userState) {
        base.CancelAsync(userState);
    }

    private bool IsLocalFileSystemWebService(string url) {
        if (((url == null) 
                    || (url == string.Empty))) {
            return false;
        }
        System.Uri wsUri = new System.Uri(url);
        if (((wsUri.Port >= 1024) 
                    && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
            return true;
        }
        return false;
    }
}