2016-10-13 2 views
0

저는 오후 내내이 문제에 대해 머리를 숙였습니다. 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의 중단 점에 도달하지도 않습니다. 파이프 라인에 예외가 발생합니다. 내가 여기서 무엇을 놓치고 있니?

미리 감사드립니다.

답변

0

문제의 해결책을 찾았습니다. 문제는 생성 된 dll이 서명되지 않도록 소스 코드가 github에서 직접 다운로드 한 인 Microsoft.AspNet.SignalR.Client.dll을 생성했기 때문입니다. Nuget에서 Microsoft.AspNet.SignalR.Client.dll을 다운로드하면 코드가 완벽하게 실행되었습니다.

관련 문제