저는 오후 내내이 문제에 대해 머리를 숙였습니다. SignalR을 SharePoint 팜 솔루션 (http://sharepoint-community.net/profiles/blogs/using-signalr-2-2-in-a-sharepoint-2013-farm-solution)에 통합해야한다는 요구 사항이 있습니다. JS 자체에서 PersistentConnection을 사용할 때 로그 이벤트를 볼 수있게되면 통합 자체가 문제가되지 않습니다. 우리 회사는 HttpHandlers을 기반으로하는 서비스 계층을 사용하여 사용자 지정 접미사에 응답하고 URL 패턴을 기반으로 호출 할 메소드를 확인하기 위해 일부 리플렉션을 실행합니다. 모든 것이 항상 효과적입니다! 문제는 내 서비스 코드에서 사용자 지정 PersistentConnection에 메시지를 보내 모든 연결된 클라이언트에 브로드 캐스팅 할 때 발생합니다. Microsoft.AspNet.SignalR.Client.Connection 개체를 인스턴스화합니다.개체 인스턴스화시 호출 대상에 의해 예외가 throw되었습니다.
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
}
}
"예외는 호출 대상에 의해 throw되었습니다." 예외 및 실행은 MyCustomServiceMethod 메서드를 실행하지 않습니다. 재미있는 것은 내가 행 번호 9, 10 및 11을 주석 처리 할 때, 실행은 13 행에 도달하고 e는 완벽하게 반환됩니다. 내 Sharepoint 프로젝트가 .Net 4.5에 대해 컴파일되므로 SignalR Client 버전 4.5 (https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Client45)를 참조했습니다. 앞에서 언급 한 행의 주석을 풀면 코드 실행이 내 사용자 지정 서비스 메서드 내에서 줄 5의 중단 점에 도달하지도 않습니다. 파이프 라인에 예외가 발생합니다. 내가 여기서 무엇을 놓치고 있니?
미리 감사드립니다.