LyncClient卡在“登录”循环中

土司

我正在制作“我自己的lync客户”。我在网上关注了几个有关如何使用Ui抑制模式对lync客户端进行签名的示例。我可以让客户端登录,但随后会立即通过注销和登录循环。

是什么原因造成的?

2014-11-12 08:18:30.4381|DEBUG|LyncWpf.MainWindow|InitClient
2014-11-12 08:18:31.2021|DEBUG|LyncWpf.MainWindow|InitializeCallback
2014-11-12 08:18:31.2131|DEBUG|LyncWpf.MainWindow|StateChanged Uninitialized to Initializing
2014-11-12 08:18:31.2131|DEBUG|LyncWpf.MainWindow|StateChanged Initializing to SignedOut
2014-11-12 08:18:31.4221|DEBUG|LyncWpf.MainWindow|StateChanged SignedOut to SigningIn
2014-11-12 08:18:51.8631|DEBUG|LyncWpf.MainWindow|SigninCallback
2014-11-12 08:18:52.0151|DEBUG|LyncWpf.MainWindow|StateChanged SigningIn to SignedIn
2014-11-12 08:18:52.0211|INFO|LyncWpf.MainWindow|signed in!
2014-11-12 08:18:52.5451|DEBUG|LyncWpf.MainWindow|StateChanged SignedIn to SigningOut
2014-11-12 08:18:52.5591|DEBUG|LyncWpf.MainWindow|StateChanged SigningOut to SigningIn
2014-11-12 08:18:53.6051|DEBUG|LyncWpf.MainWindow|StateChanged SigningIn to SignedIn
2014-11-12 08:18:53.6071|INFO|LyncWpf.MainWindow|signed in!
...repeated forever

代码示例。注意,我不会再次调用BeginSignIn。

    private void _client_StateChanged(object sender, ClientStateChangedEventArgs e)
    {
        this.Log().Debug("StateChanged {0} to {1}", e.OldState.ToString(), e.NewState.ToString());
        switch (e.NewState)
        {
            case ClientState.SignedIn:
                this.Log().Info("signed in!");
                break;
            case ClientState.SignedOut:
                if (e.OldState == ClientState.Initializing)
                    ((LyncClient) sender).BeginSignIn(null, null, null, SigninCallback, sender);
                break;
        }
    }
    private void InitClient()
    {
        this.Log().Debug("InitClient");
        _client = LyncClient.GetClient(true);
        if (_client.InSuppressedMode)
        {
            _client.StateChanged += _client_StateChanged;
            if (_client.State == ClientState.Uninitialized)
            {
                Object[] asyncState = { _client };
                _client.BeginInitialize(InitializeCallback, asyncState);
            }
        }
    }
    private void InitializeCallback(IAsyncResult ar)
    {
        this.Log().Debug("InitializeCallback");
        if (ar.IsCompleted)
        {
            object[] asyncState = (object[])ar.AsyncState;
            ((LyncClient)asyncState[0]).EndInitialize(ar);
        }
    }
    private void SigninCallback(IAsyncResult ar)
    {
        this.Log().Debug("SigninCallback");
        if (ar.IsCompleted)
        {
            try
            {
                ((LyncClient)ar.AsyncState).EndSignIn(ar);
            }
            catch (RequestCanceledException re)
            {
                this.Log().Warn("SignIn Request Cancelled {0}", re.Message);
                throw; 
            }
        }

    }
肖恩·鲍威尔(Shane Powell)

在应用程序的第二次运行中,我遇到了同样的问题。就我而言,这是因为Lync 2013关闭api无法正常工作,并且在内存中留下了lync的副本。当您第二次运行您的应用程序时,它将创建一个新的ui抑制模式lync实例,这两个实例似乎在争用每个登录名。

我发现解决此问题的唯一方法是杀死任何后台lync进程(即没有主窗口句柄)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

卡在登录循环中

来自分类Dev

16.04:登录卡在循环中

来自分类Dev

Ubuntu 16.04卡在登录循环中

来自分类Dev

ubuntu 14.04卡在了登录循环中。似乎无济于事

来自分类Dev

编辑配置文件后,Ubuntu卡在了登录循环中

来自分类Dev

引导失败和fsck后卡在gdm登录循环中

来自分类Dev

卡在 ubuntu 上的登录循环中,适用于 xubuntu

来自分类Dev

安装 Ubuntu 18.04 后卡在登录循环中

来自分类Dev

卡在while循环中

来自分类Dev

卡在 while 循环中?

来自分类Dev

Ubuntu 13.04:无法使用Ubuntu(默认)会话登录。卡在登录循环中

来自分类Dev

Ubuntu 14.04卡在gui登录循环中,并且在尝试修复后无法登录gui

来自分类Dev

Java-卡在“ for”循环中

来自分类Dev

PostgreSQL函数卡在for循环中

来自分类Dev

scanf / cin卡在循环中

来自分类Dev

卡在基本的while循环中

来自分类Dev

C卡在无限循环中

来自分类Dev

卡在无限的fgets循环中

来自分类Dev

JavaFx卡在while循环中

来自分类Dev

VBA 宏卡在循环中

来自分类Dev

当tty和恢复模式终端正常工作时,卡在登录循环中

来自分类Dev

使用gnome-disks实用程序更改了Fstab文件,现在卡在了登录循环中

来自分类Dev

将 GPU 从 NVIDIA 切换到 Intel 后,Ubuntu 18.04 LTS 卡在登录循环中

来自分类Dev

卡在“以其他用户身份登录”屏幕循环中

来自分类Dev

破坏 xauth,卡在登录循环中,没有设置 $DISPLAY env

来自分类Dev

C:在双循环中使用 getchar() - 卡在循环中?

来自分类Dev

卡在do {} while(false)循环中

来自分类Dev

文件传输卡在do while循环中

来自分类Dev

文件传输卡在do while循环中