2015-02-10 57 views
0

我想用我的Outlook加載項來使用SocketIoClientDotNet庫,但我無法連接套接字。這是我的代碼:帶有Outlook加載項的Socket.io

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相同的本地服務器。有什麼我錯過了有關微軟加載項?

+0

你是什麼意思'它失敗'?哪一行代碼失敗,確切的錯誤信息是什麼。 – 2015-02-10 20:50:49

+0

服務器沒有任何反應,它觸發客戶端中的'Socket.EVENT_CONNECT_ERROR'。 – 2015-02-10 21:03:01

回答

0

您需要選擇完整版的.Net框架作爲加載項的目標框架。

另外,我建議運行另一個線程進行長時間運行任務,如IO。事實是,Outlook可能會禁用加載項,如果他們需要很長時間才能啓動。從Performance criteria for keeping add-ins enabled部分是什麼在展望新的2013文章在MSDN聲明如下:

擴展插件在Outlook 2010中的彈性支柱,Outlook 2013中監控插件的性能指標,如加載啓動,關機,文件夾切換,打開項目和調用頻率。 Outlook會記錄每個性能監視指標的經過時間(以毫秒爲單位)。

例如,啓動度量標準度量Outlook啓動期間每個連接的加載項所需的時間。 Outlook然後計算5次連續迭代的中值啓動時間。如果中值啓動時間超過1000毫秒(1秒),則Outlook會禁用加載項並向用戶顯示已禁用加載項的通知。用戶必須始終啓用加載項,在這種情況下,Outlook將不會禁用外接即使外接超過1000毫秒性能閾值的選項

啓動方法不應該採取更多超過1000毫秒。