我们需要为 SharePoint 2013 构建一个使用 Signalr 的 Web 部件。我知道使用应用程序部分很容易做到这一点,但就我而言,我需要在网络部分中使用它。我没有找到任何关于那个的文章
为此,我按照 ASP.NET 上 Signalr 的设置步骤将其添加到 SharePoint 项目中,如下所示:
将所需的脚本(Signalr.js 和 JQuery.js)添加到 Layout 文件夹
将对这些文件的引用添加到我的 Web 部件中,例如
`
<script src="/_layouts/15/Scripts/jquery-1.6.4.min.js" ></script>
<script src="/_layouts/15/Scripts/jquery.signalR-2.1.2.min.js"></script>
<script src="/signalr/hubs"></script>
`
- 定义 Hub 类包含一个测试方法
- 如下添加启动类
`
[assembly: OwinStartup(typeof(Notifications.Code.OWINStartup))]
namespace Notifications.Code
{
public class OWINStartup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
`
我的问题在最后一点,Owin 没有启动,这使得集线器代理文件“/Signalr/hubs”文件找不到
有什么帮助吗?
最佳答案
最后我找到了解决方案 here :
OWIN在程序集Microsoft.Owin.Host.SystemWeb中使用名为OwinHttpHandler的HttpHandler来启动。这在我的 SharePoint 服务器上不起作用,因为 IIS machine.config 不包含此处理程序,因此我将其添加到我的网站 web.config 中,如下所示
<add name="Owin" verb="*" path="/signalr" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
注意:不要忘记根据服务器上的版本更改程序集版本
您可以阅读使 Signalr 在 SharePoint web 部件上工作的完整步骤 here
关于sharepoint - 在 SharePoint 2013 Webpart 中使用 Signalr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26362049/