在SharePoint 2013 Webpart中使用Signalr

时间:2014-10-14 13:26:50

标签: sharepoint signalr sharepoint-2013 owin

我们需要为使用Signalr的SharePoint 2013构建Web部件。我知道使用app-part很容易,但在我的情况下,我需要在网页部分。我没有找到任何关于那个的文章

为此,我按照ASP.NET上的Signalr的设置步骤将其添加到SharePoint项目中,如下所示:

  1. 将所需脚本(Signalr.js和JQuery.js)添加到布局文件夹

  2. 将对这些文件的引用添加到我的网络部分,如

  3. `

     <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>
    

    `

    1. 定义Hub类包含一个测试方法
    2. 按以下方式添加启动类
    3. `

      [assembly: OwinStartup(typeof(Notifications.Code.OWINStartup))]
      
      namespace Notifications.Code
      {
      
          public class OWINStartup
          {
              public void Configuration(IAppBuilder app)
              {
                  app.MapSignalR();
              }
          }
      }
      

      `

      我的问题是在最后一点,Owin没有启动,这使得集线器代理文件&#34; / Signalr / hubs&#34;找不到文件

      请帮忙吗?

1 个答案:

答案 0 :(得分:3)

最后我找到了解决方案here

OWIN使用HttpHandler在程序集Microsoft.Owin.Host.SystemWeb中调用OwinHttpHandler来启动。这不适用于我的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网络上工作here