我尝试将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的东西?
答案 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毫秒。