Я изогнул голову над этой проблемой весь день безрезультатно. У меня есть требование интегрировать 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 внутри моего настраиваемого метода обслуживания. Он генерирует исключение раньше. Что мне здесь не хватает?
Заранее благодарен!