0

私は WPF アプリケーションに取り組んでおり、MVVM を使用しています。非同期メソッドを使用して WCF サービスを呼び出していますが、UI がブロックされています。完全にタイムアウトすることもあります。問題なく同じサービスを使用している (ただし、非同期呼び出しを使用していない) Web サイトがあります。これが私のコードとクライアント構成です。

    private void ProcessLogin()
    {
        if (Username == null || Password == null)
            return;

        _working = true;
        CommandManager.InvalidateRequerySuggested();
        Status = "Authenticating User";

        _authClient.BeginLogin(Username, Password, "", false, EndLogin, null);
    }

    protected void EndLogin(IAsyncResult asyncResult)
    {
        LoggedIn = _authClient.EndLogin(asyncResult);

        if (!LoggedIn)
        {
            Status = "Authentication Failure";
        }
        else
        {
            DialogResult = true;
        }
        _working = false;
        CommandManager.InvalidateRequerySuggested();
    }
<basicHttpBinding>
    <binding name="BasicHttpBinding_AuthenticationService" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
        useDefaultWebProxy="true">
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        <security mode="Transport">
            <transport clientCredentialType="None" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
        </security>
    </binding>
</basicHttpBinding>

<endpoint address="https://path_to_service:444/Authentication.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_AuthenticationService"
            contract="AuthService.AuthenticationService" name="BasicHttpBinding_AuthenticationService" />
4

1 に答える 1

0

無限のループがあるようです。endlogin内からendloginを呼び出しています。

于 2012-05-16T21:59:09.113 に答える