2016-10-13 2 views
0

Я изогнул голову над этой проблемой весь день безрезультатно. У меня есть требование интегрировать SignalR в решение фермы SharePoint (http://sharepoint-community.net/profiles/blogs/using-signalr-2-2-in-a-sharepoint-2013-farm-solution). Сама интеграция здесь не проблема, как только я вижу события журнала при использовании пользовательского PersistentConnection с JS. Моя компания использует сервисный уровень на основе HttpHandlers, отвечающий на пользовательские суффиксы и выполняющий некоторое отражение, чтобы узнать, какой метод вызывать на основе шаблона url. Все всегда отлично работало! Проблема возникает, когда в моем сервисном коде, который будет отправлять сообщения в пользовательское PersistentConnection, чтобы он мог транслировать все подключенные клиенты, я создаю объект Microsoft.AspNet.SignalR.Client.Connection.Исключение было выбрано целью вызова при создании объекта

using Microsoft.AspNet.SignalR.Client; 
// other usings 
[Route] // Custom attribute 
public object MyCustomServiceMethod() { 
    try // LINE NUMBER: 5 
    { 
     // broadcast message to all connected clients 
     var url = "CONNECTION URL"; // LINE NUMBER 8 
     var connection = new Connection(url); // LINE NUMBER: 9 
     connection.Start().Wait(); // LINE NUMBER: 10 
     connection.Send(CUSTOM_MODEL_HERE).Wait(); // LINE NUMBER: 11 

     return Ok(new // LINE NUMBER: 13 
     { 
      Status = "SOME STATUS CODE HERE", 
      Data = SOME DATA HERE 
     }); 
    } 
    catch (Exception ex) 
    { 
     // some logging logic here 
    } 
} 

Дело в том, что я получаю «Исключение было выбрано целью вызова». исключение и выполнение не запускают метод MyCustomServiceMethod. Забавно, когда я комментирую номера строк 9, 10 и 11, выполнение переходит к строке 13 e, отлично возвращается. Мой проект sharepoint компилируется против .Net 4.5, поэтому я ссылался на версию 4.5 SignalR Client (https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Client45). когда я оставляю вышеупомянутые строки без комментариев, выполнение кода даже не достигает точки останова в строке 5 внутри моего настраиваемого метода обслуживания. Он генерирует исключение раньше. Что мне здесь не хватает?

Заранее благодарен!

ответ

0

Я нашел решение проблемы! Проблема заключалась в том, что я создал Microsoft.AspNet.SignalR.Client.dll из исходного кода, загруженного непосредственно из github, так что сгенерированная dll не была подписана. Как только я загрузил Microsoft.AspNet.SignalR.Client.dll из nuget, код работал отлично.

 Смежные вопросы

  • Нет связанных вопросов^_^