我整个下午一直在纠结这个问题但无济于事。我需要将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 对象。 / p>
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 e返回完美。我的sharepoint项目针对.Net 4.5进行编译,因此我引用了SignalR Client的版本4.5(https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Client45)。当我将上述行留下注释时,代码执行甚至没有到达我的自定义服务方法中第5行的断点。它在管道之前抛出异常。我在这里缺少什么?
提前致谢!
答案 0 :(得分:0)
我找到了问题的解决方案!问题是我从直接从github下载的源代码生成了 Microsoft.AspNet.SignalR.Client.dll ,因此生成的dll没有签名。从nuget下载 Microsoft.AspNet.SignalR.Client.dll 后,代码运行完美。