带有Outlook加载项的Socket.io

时间:2015-02-10 20:48:00

标签: c# outlook socket.io

我尝试将SocketIoClientDotNet库与我的Outlook加载项一起使用,但我未能连接套接字。这是我的代码:

using Quobject.SocketIoClientDotNet.Client;

var socket = IO.Socket("http://localhost");
socket.On(Socket.EVENT_CONNECT, () =>
{
    socket.Emit("hi");
    socket.On("hi", (data) =>
    {
        Console.WriteLine(data);
        socket.Disconnect();
    });
});
Console.ReadLine();

奇怪的是,如果我在一个新的控制台应用程序项目中运行此代码,它可以工作,但是当我回到我的Outlook加载项项目并尝试在ThisAddIn_Startup()事件中运行它时,它会失败。这两个项目都针对.NET 4.0客户端配置文件,并且它们使用与socket.io 1.4.28相同的本地服务器。有没有关于Microsoft Add-Ins的东西?

1 个答案:

答案 0 :(得分:0)

您需要选择完整版的.Net框架作为加载项的目标框架。

另外,我建议为IO等长期运行任务运行另一个线程。事实是,如果加载项需要花费大量时间才能启动,Outlook可能会禁用加载项。 MSDN中 Outlook 2013中的新功能文章中的Performance criteria for keeping add-ins enabled部分说明了以下内容:

  

扩展Outlook 2010的加载项弹性支柱,Outlook 2013监视加载项性能指标,例如加载项启动,关闭,文件夹切换,项目打开和调用频率。 Outlook记录每个性能监视指标的经过时间(以毫秒为单位)。

     

例如,启动指标衡量Outlook启动期间每个连接的加载项所需的时间。然后,Outlook计算连续5次迭代的中位启动时间。如果中位启动时间超过1000毫秒(1秒),则Outlook会禁用该加载项,并向用户显示已禁用加载项的通知。用户可以选择始终启用加载项,在这种情况下,即使加载项超过1000毫秒的性能阈值,Outlook也不会禁用加载项

启动方法不应超过1000毫秒。