From 72d62c3296c968bbca7c610fd6248306fe2b46c2 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 30 八月 2022 17:41:25 +0800
Subject: [PATCH] 外协收料,添加工单号+工序号+外协供方做过滤

---
 VueWebApi/obj/Release/VueWebApi.pdb                                                                                |    0 
 packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/Microsoft.AspNet.SignalR.SystemWeb.XML                 |  115 
 packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/.signature.p7s                                                   |    0 
 packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2.nupkg   |    0 
 VueWebApi/Hubs/HubsMessage.html                                                                                    |   77 
 packages/Microsoft.Owin.Security.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml                       |  549 
 packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.js                                 | 2958 ++++
 .vs/VueWebApi/v16/.suo                                                                                             |    0 
 packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/.signature.p7s                                                |    0 
 VueWebApi/Logs/2022-08-30.TXT                                                                                      |    0 
 VueWebApi/bin/Microsoft.AspNet.SignalR.Core.xml                                                                    | 3300 +++++
 VueWebApi/VueWebApi.csproj                                                                                         |   24 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache                                               |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb                                                         |    0 
 VueWebApi/Hubs/HubsMessage1.html                                                                                   |   62 
 packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.2.2.2.nupkg                   |    0 
 packages/Microsoft.Owin.4.0.0/.signature.p7s                                                                       |    0 
 packages/Microsoft.Owin.Security.4.0.0/Microsoft.Owin.Security.4.0.0.nupkg                                         |    0 
 packages/Microsoft.Owin.Security.zh-Hans.4.0.0/.signature.p7s                                                      |    0 
 VueWebApi/bin/VueWebApi.pdb                                                                                        |    0 
 packages/Microsoft.AspNet.SignalR.JS.2.2.2/Microsoft.AspNet.SignalR.JS.2.2.2.nupkg                                 |    0 
 packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net451/Microsoft.Owin.Host.SystemWeb.xml                          |  639 
 packages/Microsoft.Owin.Security.4.0.0/.signature.p7s                                                              |    0 
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache                                                     |    2 
 VueWebApi/Controllers/AppDeviceManageController.cs                                                                 |   11 
 packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.zh-Hans.2.2.2.nupkg                       |    0 
 packages/Microsoft.Owin.Security.4.0.0/lib/net451/Microsoft.Owin.Security.XML                                      |  494 
 packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml           | 4099 ++++++
 packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0.nupkg             |    0 
 VueWebApi/Web.config                                                                                               |    8 
 VueWebApi/bin/Microsoft.Owin.xml                                                                                   | 3289 +++++
 packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/.signature.p7s                                           |    0 
 VueWebApi/App_Start/Startup.cs                                                                                     |   18 
 VueWebApi/bin/VueWebApi.xml                                                                                        |   39 
 VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html                                                    |   62 
 packages/Microsoft.Owin.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml                                                 | 1755 ++
 packages/Microsoft.Owin.4.0.0/Microsoft.Owin.4.0.0.nupkg                                                           |    0 
 packages/Microsoft.Owin.Host.SystemWeb.4.0.0/Microsoft.Owin.Host.SystemWeb.4.0.0.nupkg                             |    0 
 packages/Microsoft.Owin.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml                                         | 1755 ++
 VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.js                                           | 2958 ++++
 VueWebApi/packages.config                                                                                          |   14 
 packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/.signature.p7s                                                     |    0 
 packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml                   |  201 
 packages/Microsoft.Owin.Host.SystemWeb.4.0.0/.signature.p7s                                                        |    0 
 packages/Microsoft.AspNet.SignalR.Core.2.2.2/.signature.p7s                                                        |    0 
 packages/Microsoft.AspNet.SignalR.2.2.2/readme.txt                                                                 |   50 
 packages/Microsoft.Owin.Security.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml                               |  549 
 packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/Microsoft.AspNet.SignalR.Core.xml                           | 3300 +++++
 VueWebApi/Scripts/jquery.signalR-2.2.2.min.js                                                                      |    9 
 VueWebApi/obj/Release/TransformWebConfig/original/Web.config                                                       |    8 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                                                                       |   33 
 VueWebApi/DLL/BLL/AppDeviceManageBLL.cs                                                                            |    8 
 packages/Microsoft.Owin.4.0.0/lib/net451/Microsoft.Owin.XML                                                        | 3289 +++++
 VueWebApi/DLL/DAL/AppDeviceManageDAL.cs                                                                            |    9 
 VueWebApi/Hubs/ChatHub.cs                                                                                          |   65 
 VueWebApi/bin/Microsoft.Owin.Host.SystemWeb.xml                                                                    |  639 
 VueWebApi/obj/Release/Package/PackageTmp/Web.config                                                                |    8 
 VueWebApi/bin/VueWebApi.dll.config                                                                                 |    8 
 VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config                                                    |    8 
 packages/Owin.1.0/Owin.1.0.nupkg                                                                                   |    0 
 packages/Microsoft.AspNet.SignalR.Core.2.2.2/Microsoft.AspNet.SignalR.Core.2.2.2.nupkg                             |    0 
 VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt                                                        |   14 
 packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml         |   91 
 packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml                   | 4099 ++++++
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user                                                     |   55 
 VueWebApi/bin/Microsoft.AspNet.SignalR.SystemWeb.xml                                                               |  115 
 packages/Microsoft.Owin.zh-Hans.4.0.0/.signature.p7s                                                               |    0 
 VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.min.js                                       |    9 
 packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2.nupkg             |    0 
 packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml           |  201 
 VueWebApi/bin/Microsoft.Owin.Security.xml                                                                          |  494 
 packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/.signature.p7s                                                |    0 
 packages/Microsoft.Owin.Security.zh-Hans.4.0.0/Microsoft.Owin.Security.zh-Hans.4.0.0.nupkg                         |    0 
 packages/Microsoft.Owin.zh-Hans.4.0.0/Microsoft.Owin.zh-Hans.4.0.0.nupkg                                           |    0 
 packages/Microsoft.AspNet.SignalR.2.2.2/Microsoft.AspNet.SignalR.2.2.2.nupkg                                       |    0 
 VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html                                                     |   77 
 VueWebApi/Scripts/jquery.signalR-2.2.2.js                                                                          | 2958 ++++
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml                                                         |   39 
 packages/Microsoft.AspNet.SignalR.JS.2.2.2/.signature.p7s                                                          |    0 
 packages/Owin.1.0/.signature.p7s                                                                                   |    0 
 packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml |   91 
 packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.min.js                             |    9 
 packages/Microsoft.AspNet.SignalR.2.2.2/.signature.p7s                                                             |    0 
 83 files changed, 38,639 insertions(+), 25 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index fbdf50d..a54f116 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/App_Start/Startup.cs b/VueWebApi/App_Start/Startup.cs
new file mode 100644
index 0000000..d2fc6c2
--- /dev/null
+++ b/VueWebApi/App_Start/Startup.cs
@@ -0,0 +1,18 @@
+锘縰sing Microsoft.Owin;
+using Owin;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+[assembly: OwinStartup(typeof(VueWebApi.App_Start.Startup))]
+namespace VueWebApi.App_Start
+{
+    public class Startup
+    {
+        public void Configuration(IAppBuilder app)
+        {
+            // 閰嶇疆闆嗙嚎鍣�
+            app.MapSignalR();
+        }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Controllers/AppDeviceManageController.cs b/VueWebApi/Controllers/AppDeviceManageController.cs
index b9018d7..71a9cdc 100644
--- a/VueWebApi/Controllers/AppDeviceManageController.cs
+++ b/VueWebApi/Controllers/AppDeviceManageController.cs
@@ -111,5 +111,16 @@
             return TJson.toJson(mes);
         }
         #endregion
+
+
+        #region[娴嬭瘯瀹夌伅鍛煎彨]
+        [Route(template: "AppDeviceAnDengCallSave")]
+        [HttpPost]
+        public HttpResponseMessage AppDeviceAnDengCallSave(string eqpcode)
+        {
+            mes = AppDeviceManageBLL.AppDeviceAnDengCallSave(eqpcode);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebApi/DLL/BLL/AppDeviceManageBLL.cs b/VueWebApi/DLL/BLL/AppDeviceManageBLL.cs
index 145dec4..19f60e7 100644
--- a/VueWebApi/DLL/BLL/AppDeviceManageBLL.cs
+++ b/VueWebApi/DLL/BLL/AppDeviceManageBLL.cs
@@ -53,5 +53,13 @@
             return AppDeviceManageDAL.AppDeviceRepairSave(username, maintcyc, json);
         }
         #endregion
+
+
+        #region[娴嬭瘯瀹夌伅鍛煎彨]
+        public static ToMessage AppDeviceAnDengCallSave(string eqpcode)
+        {
+            return AppDeviceManageDAL.AppDeviceAnDengCallSave(eqpcode);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs b/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
index 54f4c58..cd32133 100644
--- a/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
+++ b/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
@@ -362,5 +362,14 @@
             return mes;
         }
         #endregion
+
+
+
+        #region[娴嬭瘯瀹夌伅鍛煎彨]
+        public static ToMessage AppDeviceAnDengCallSave(string eqpcode)
+        {
+            throw new NotImplementedException();
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 9393548..ad57ee7 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1812,20 +1812,45 @@
                 dynamicParams.Add("@wx_code", wxcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 //鑾峰彇鍙戞枡璁板綍鐨勯粯璁ら�変腑鐨勫鍗忎緵搴斿晢涓庢敹鏂欐椂鐨勫鍗忎緵搴斿晢鍋氬姣斿垽鏂�
-                sql = @"select A.wx_code,B.name   from TK_Wrk_OutRecord A
+                sql = @"select A.wx_code,B.name,A.fqty   from TK_Wrk_OutRecord A
                         inner join TCustomer B on A.wx_code=B.code
-                        where A.wo_code=@wo_code and A.step_code=@step_code and A.style='F' ";
+                        where A.wo_code=@wo_code and A.step_code=@step_code and wx_code=@wx_code and A.style='F' ";
                 dynamicParams.Add("@wo_code", mesordercode);
                 dynamicParams.Add("@step_code", stepcode);
+                dynamicParams.Add("@wx_code", wxcode);
                 var da = DapperHelper.selectdata(sql, dynamicParams);
-                if (da.Rows[0]["WX_CODE"].ToString() != wxcode)
+                if (da.Rows.Count<=0) 
                 {
+                    sql = @"select A.wx_code,B.name,A.fqty   from TK_Wrk_OutRecord A
+                        inner join TCustomer B on A.wx_code=B.code
+                        where A.wo_code=@wo_code and A.step_code=@step_code and A.style='F' ";
+                    dynamicParams.Add("@wo_code", mesordercode);
+                    dynamicParams.Add("@step_code", stepcode);
+                    var da1 = DapperHelper.selectdata(sql, dynamicParams);
+                    var dr = da1.AsEnumerable().ToList().Select(x => x.Field<int>("NAME")).ToList();
+                    string wxstring = (string.Join(",", dr.Select(x => x.ToString()).ToArray()));
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟涓庡彂鏂欏鍗忎緵搴斿晢涓嶅尮閰�,搴斾负锛氥��"+wxstring+"銆�!";
                     mes.data = null;
                     return mes;
                 }
+                if ((decimal.Parse(sqty) + decimal.Parse(ngqty)) > decimal.Parse(da.Rows[0]["FQTY"].ToString()))  //鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鍙戞枡鏁伴噺
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬鍙戞枡鏁伴噺:"+da.Rows[0]["FQTY"].ToString()+"!";
+                    mes.data = null;
+                    return mes;
+                }
+                //if (da.Rows[0]["WX_CODE"].ToString() != wxcode)
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+                //    mes.data = null;
+                //    return mes;
+                //}
                 if (data.Rows.Count > 0)
                 {
                     //鑾峰彇涓昏〃鏈�澶D
diff --git a/VueWebApi/Hubs/ChatHub.cs b/VueWebApi/Hubs/ChatHub.cs
new file mode 100644
index 0000000..5b6f1dc
--- /dev/null
+++ b/VueWebApi/Hubs/ChatHub.cs
@@ -0,0 +1,65 @@
+锘縰sing Microsoft.AspNet.SignalR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace VueWebApi.Hubs
+{
+    public class ChatHub : Hub
+    {
+        /// <summary>
+        /// 闈欐�佺敤鎴峰垪琛�
+        /// </summary>
+        private IList<string> userList = UserInfo.userList;
+
+
+
+        /// <summary>
+        /// 鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
+        /// </summary>
+        private readonly static Dictionary<string, string> _connections = new Dictionary<string, string>();
+
+
+
+        /// <summary>
+        /// 鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
+        /// 璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
+        /// </summary>
+        /// <param name="name1">鍙戣捣鑰�</param>
+        /// <param name="name2">娑堟伅鎺ユ敹鑰�</param>
+        /// <param name="cont">娑堟伅鍐呭</param>
+        public void SendByGroup(string name1, string name2, string cont)
+        {
+            //Client鍐呬负鐢ㄦ埛鐨刬d锛屾槸鍞竴鐨勶紝SendMessage鍑芥暟鏄墠绔嚱鏁帮紝鎰忔�濇槸鏈嶅姟鍣ㄥ皢璇ユ秷鎭帹閫佽嚦鍓嶇
+            Clients.Client(_connections[name2]).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
+        }
+
+
+
+        /// <summary>
+        /// 鐢ㄦ埛涓婄嚎鍑芥暟
+        /// </summary>
+        /// <param name="name"></param>
+        public void SendLogin(string name)
+        {
+            if (!userList.Contains(name))
+            {
+                userList.Add(name);
+                //杩欓噷渚挎槸灏嗙敤鎴穒d鍜屽鍚嶈仈绯昏捣鏉�
+                _connections.Add(name, Context.ConnectionId);
+            }
+            else
+            {
+                //姣忔鐧婚檰id浼氬彂鐢熷彉鍖�
+                _connections[name] = Context.ConnectionId;
+            }
+            //鏂扮敤鎴蜂笂绾匡紝鏈嶅姟鍣ㄥ箍鎾鐢ㄦ埛鍚�
+            Clients.All.loginUser(userList);
+        }
+    }
+    public class UserInfo
+    {
+        public static IList<string> userList = new List<string>();
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Hubs/HubsMessage.html b/VueWebApi/Hubs/HubsMessage.html
new file mode 100644
index 0000000..5bccdbd
--- /dev/null
+++ b/VueWebApi/Hubs/HubsMessage.html
@@ -0,0 +1,77 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("寮犱笁");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+
+            //鍚庣SendLogin璋冪敤鍚庯紝浜х敓鐨刲oginUser鍥炶皟
+            work.client.loginUser = function (userlist) {
+                reloadUser(userlist);
+            };
+
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+                //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
+                $('#send').click(function () {
+                    var friend = $('#username').val();
+                    var cont = $('#cont').val();
+                    //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
+                    work.server.sendByGroup(username, friend, cont);
+                });
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        var reloadUser = function () {
+            $("#username").empty();
+            for (i = 0; i < 5; i++) {
+                $("#username").append("<option value=" + i + ">" +i + "</option>");
+            }
+        }
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/Hubs/HubsMessage1.html b/VueWebApi/Hubs/HubsMessage1.html
new file mode 100644
index 0000000..4b675b1
--- /dev/null
+++ b/VueWebApi/Hubs/HubsMessage1.html
@@ -0,0 +1,62 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("1");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        //var reloadUser = function () {
+        //    $("#username").empty();
+        //    for (i = 0; i < 5; i++) {
+        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
+        //    }
+        //}
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/Logs/2022-08-30.TXT b/VueWebApi/Logs/2022-08-30.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/VueWebApi/Logs/2022-08-30.TXT
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index 8acc5ea..4fbc699 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\XKDMesApi</_PublishTargetUrl>
-    <History>True|2022-08-30T04:55:16.4084322Z;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
+    <History>True|2022-08-30T09:36:34.5932064Z;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -119,6 +119,12 @@
     <File Include="bin/log4net.dll">
       <publishTime>12/17/2021 18:45:06</publishTime>
     </File>
+    <File Include="bin/Microsoft.AspNet.SignalR.Core.dll">
+      <publishTime>05/04/2017 02:25:34</publishTime>
+    </File>
+    <File Include="bin/Microsoft.AspNet.SignalR.SystemWeb.dll">
+      <publishTime>05/04/2017 02:25:40</publishTime>
+    </File>
     <File Include="bin/Microsoft.AspNetCore.Http.Abstractions.dll">
       <publishTime>11/13/2018 01:29:00</publishTime>
     </File>
@@ -142,6 +148,15 @@
     </File>
     <File Include="bin/Microsoft.Net.Http.Headers.dll">
       <publishTime>11/13/2018 01:28:58</publishTime>
+    </File>
+    <File Include="bin/Microsoft.Owin.dll">
+      <publishTime>02/14/2018 00:28:04</publishTime>
+    </File>
+    <File Include="bin/Microsoft.Owin.Host.SystemWeb.dll">
+      <publishTime>02/14/2018 00:28:12</publishTime>
+    </File>
+    <File Include="bin/Microsoft.Owin.Security.dll">
+      <publishTime>02/14/2018 00:28:16</publishTime>
     </File>
     <File Include="bin/Microsoft.Web.Infrastructure.dll">
       <publishTime>07/25/2012 11:48:56</publishTime>
@@ -178,6 +193,9 @@
     </File>
     <File Include="bin/NPOI.pdb">
       <publishTime>04/26/2022 00:23:22</publishTime>
+    </File>
+    <File Include="bin/Owin.dll">
+      <publishTime>11/13/2012 20:19:34</publishTime>
     </File>
     <File Include="bin/Pipelines.Sockets.Unofficial.dll">
       <publishTime>12/14/2021 20:20:48</publishTime>
@@ -696,22 +714,37 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>08/30/2022 12:55:10</publishTime>
+      <publishTime>08/30/2022 17:36:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>08/30/2022 12:55:10</publishTime>
+      <publishTime>08/30/2022 17:36:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>08/30/2022 12:55:10</publishTime>
+      <publishTime>08/30/2022 17:36:29</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>01/23/2014 13:57:34</publishTime>
+    </File>
+    <File Include="bin/zh-Hans/Microsoft.AspNet.SignalR.Core.resources.dll">
+      <publishTime>05/04/2017 02:34:10</publishTime>
+    </File>
+    <File Include="bin/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.resources.dll">
+      <publishTime>05/04/2017 02:34:16</publishTime>
+    </File>
+    <File Include="bin/zh-Hans/Microsoft.Owin.Host.SystemWeb.resources.dll">
+      <publishTime>01/18/2019 12:59:56</publishTime>
+    </File>
+    <File Include="bin/zh-Hans/Microsoft.Owin.resources.dll">
+      <publishTime>01/18/2019 12:59:58</publishTime>
+    </File>
+    <File Include="bin/zh-Hans/Microsoft.Owin.Security.resources.dll">
+      <publishTime>01/18/2019 13:00:00</publishTime>
     </File>
     <File Include="bin/zh-Hans/System.Net.Http.Formatting.resources.dll">
       <publishTime>05/28/2022 07:34:44</publishTime>
@@ -1238,6 +1271,12 @@
     <File Include="Grid/webapp-ws-tutorial.htm">
       <publishTime>07/08/2022 15:15:11</publishTime>
     </File>
+    <File Include="Hubs/HubsMessage.html">
+      <publishTime>08/30/2022 14:32:38</publishTime>
+    </File>
+    <File Include="Hubs/HubsMessage1.html">
+      <publishTime>08/30/2022 14:51:37</publishTime>
+    </File>
     <File Include="Image/1.png">
       <publishTime>08/11/2022 08:20:52</publishTime>
     </File>
@@ -1439,6 +1478,12 @@
     <File Include="Scripts/jquery-3.4.1.slim.min.map">
       <publishTime>06/10/2022 08:20:27</publishTime>
     </File>
+    <File Include="Scripts/jquery.signalR-2.2.2.js">
+      <publishTime>08/30/2022 13:49:42</publishTime>
+    </File>
+    <File Include="Scripts/jquery.signalR-2.2.2.min.js">
+      <publishTime>08/30/2022 13:49:42</publishTime>
+    </File>
     <File Include="Scripts/modernizr-2.8.3.js">
       <publishTime>06/10/2022 08:20:31</publishTime>
     </File>
@@ -1461,7 +1506,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>08/30/2022 12:55:15</publishTime>
+      <publishTime>08/30/2022 17:36:34</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Scripts/jquery.signalR-2.2.2.js b/VueWebApi/Scripts/jquery.signalR-2.2.2.js
new file mode 100644
index 0000000..9859301
--- /dev/null
+++ b/VueWebApi/Scripts/jquery.signalR-2.2.2.js
@@ -0,0 +1,2958 @@
+/* jquery.signalR.core.js */
+/*global window:false */
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+
+/// <reference path="Scripts/jquery-1.6.4.js" />
+/// <reference path="jquery.signalR.version.js" />
+(function ($, window, undefined) {
+
+    var resources = {
+        nojQuery: "jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",
+        noTransportOnInit: "No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",
+        errorOnNegotiate: "Error during negotiation request.",
+        stoppedWhileLoading: "The connection was stopped during page load.",
+        stoppedWhileNegotiating: "The connection was stopped during the negotiate request.",
+        errorParsingNegotiateResponse: "Error parsing negotiate response.",
+        errorDuringStartRequest: "Error during start request. Stopping the connection.",
+        stoppedDuringStartRequest: "The connection was stopped during the start request.",
+        errorParsingStartResponse: "Error parsing start response: '{0}'. Stopping the connection.",
+        invalidStartResponse: "Invalid start response: '{0}'. Stopping the connection.",
+        protocolIncompatible: "You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",
+        sendFailed: "Send failed.",
+        parseFailed: "Failed at parsing response: {0}",
+        longPollFailed: "Long polling request failed.",
+        eventSourceFailedToConnect: "EventSource failed to connect.",
+        eventSourceError: "Error raised by EventSource",
+        webSocketClosed: "WebSocket closed.",
+        pingServerFailedInvalidResponse: "Invalid ping response when pinging server: '{0}'.",
+        pingServerFailed: "Failed to ping server.",
+        pingServerFailedStatusCode: "Failed to ping server.  Server responded with status code {0}, stopping the connection.",
+        pingServerFailedParse: "Failed to parse ping server response, stopping the connection.",
+        noConnectionTransport: "Connection is in an invalid state, there is no transport active.",
+        webSocketsInvalidState: "The Web Socket transport is in an invalid state, transitioning into reconnecting.",
+        reconnectTimeout: "Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",
+        reconnectWindowTimeout: "The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."
+    };
+
+    if (typeof ($) !== "function") {
+        // no jQuery!
+        throw new Error(resources.nojQuery);
+    }
+
+    var signalR,
+        _connection,
+        _pageLoaded = (window.document.readyState === "complete"),
+        _pageWindow = $(window),
+        _negotiateAbortText = "__Negotiate Aborted__",
+        events = {
+            onStart: "onStart",
+            onStarting: "onStarting",
+            onReceived: "onReceived",
+            onError: "onError",
+            onConnectionSlow: "onConnectionSlow",
+            onReconnecting: "onReconnecting",
+            onReconnect: "onReconnect",
+            onStateChanged: "onStateChanged",
+            onDisconnect: "onDisconnect"
+        },
+        ajaxDefaults = {
+            processData: true,
+            timeout: null,
+            async: true,
+            global: false,
+            cache: false
+        },
+        log = function (msg, logging) {
+            if (logging === false) {
+                return;
+            }
+            var m;
+            if (typeof (window.console) === "undefined") {
+                return;
+            }
+            m = "[" + new Date().toTimeString() + "] SignalR: " + msg;
+            if (window.console.debug) {
+                window.console.debug(m);
+            } else if (window.console.log) {
+                window.console.log(m);
+            }
+        },
+
+        changeState = function (connection, expectedState, newState) {
+            if (expectedState === connection.state) {
+                connection.state = newState;
+
+                $(connection).triggerHandler(events.onStateChanged, [{ oldState: expectedState, newState: newState }]);
+                return true;
+            }
+
+            return false;
+        },
+
+        isDisconnecting = function (connection) {
+            return connection.state === signalR.connectionState.disconnected;
+        },
+
+        supportsKeepAlive = function (connection) {
+            return connection._.keepAliveData.activated &&
+                   connection.transport.supportsKeepAlive(connection);
+        },
+
+        configureStopReconnectingTimeout = function (connection) {
+            var stopReconnectingTimeout,
+                onReconnectTimeout;
+
+            // Check if this connection has already been configured to stop reconnecting after a specified timeout.
+            // Without this check if a connection is stopped then started events will be bound multiple times.
+            if (!connection._.configuredStopReconnectingTimeout) {
+                onReconnectTimeout = function (connection) {
+                    var message = signalR._.format(signalR.resources.reconnectTimeout, connection.disconnectTimeout);
+                    connection.log(message);
+                    $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                    connection.stop(/* async */ false, /* notifyServer */ false);
+                };
+
+                connection.reconnecting(function () {
+                    var connection = this;
+
+                    // Guard against state changing in a previous user defined even handler
+                    if (connection.state === signalR.connectionState.reconnecting) {
+                        stopReconnectingTimeout = window.setTimeout(function () { onReconnectTimeout(connection); }, connection.disconnectTimeout);
+                    }
+                });
+
+                connection.stateChanged(function (data) {
+                    if (data.oldState === signalR.connectionState.reconnecting) {
+                        // Clear the pending reconnect timeout check
+                        window.clearTimeout(stopReconnectingTimeout);
+                    }
+                });
+
+                connection._.configuredStopReconnectingTimeout = true;
+            }
+        };
+
+    signalR = function (url, qs, logging) {
+        /// <summary>Creates a new SignalR connection for the given url</summary>
+        /// <param name="url" type="String">The URL of the long polling endpoint</param>
+        /// <param name="qs" type="Object">
+        ///     [Optional] Custom querystring parameters to add to the connection URL.
+        ///     If an object, every non-function member will be added to the querystring.
+        ///     If a string, it's added to the QS as specified.
+        /// </param>
+        /// <param name="logging" type="Boolean">
+        ///     [Optional] A flag indicating whether connection logging is enabled to the browser
+        ///     console/log. Defaults to false.
+        /// </param>
+
+        return new signalR.fn.init(url, qs, logging);
+    };
+
+    signalR._ = {
+        defaultContentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+        ieVersion: (function () {
+            var version,
+                matches;
+
+            if (window.navigator.appName === 'Microsoft Internet Explorer') {
+                // Check if the user agent has the pattern "MSIE (one or more numbers).(one or more numbers)";
+                matches = /MSIE ([0-9]+\.[0-9]+)/.exec(window.navigator.userAgent);
+
+                if (matches) {
+                    version = window.parseFloat(matches[1]);
+                }
+            }
+
+            // undefined value means not IE
+            return version;
+        })(),
+
+        error: function (message, source, context) {
+            var e = new Error(message);
+            e.source = source;
+
+            if (typeof context !== "undefined") {
+                e.context = context;
+            }
+
+            return e;
+        },
+
+        transportError: function (message, transport, source, context) {
+            var e = this.error(message, source, context);
+            e.transport = transport ? transport.name : undefined;
+            return e;
+        },
+
+        format: function () {
+            /// <summary>Usage: format("Hi {0}, you are {1}!", "Foo", 100) </summary>
+            var s = arguments[0];
+            for (var i = 0; i < arguments.length - 1; i++) {
+                s = s.replace("{" + i + "}", arguments[i + 1]);
+            }
+            return s;
+        },
+
+        firefoxMajorVersion: function (userAgent) {
+            // Firefox user agents: http://useragentstring.com/pages/Firefox/
+            var matches = userAgent.match(/Firefox\/(\d+)/);
+            if (!matches || !matches.length || matches.length < 2) {
+                return 0;
+            }
+            return parseInt(matches[1], 10 /* radix */);
+        },
+
+        configurePingInterval: function (connection) {
+            var config = connection._.config,
+                onFail = function (error) {
+                    $(connection).triggerHandler(events.onError, [error]);
+                };
+
+            if (config && !connection._.pingIntervalId && config.pingInterval) {
+                connection._.pingIntervalId = window.setInterval(function () {
+                    signalR.transports._logic.pingServer(connection).fail(onFail);
+                }, config.pingInterval);
+            }
+        }
+    };
+
+    signalR.events = events;
+
+    signalR.resources = resources;
+
+    signalR.ajaxDefaults = ajaxDefaults;
+
+    signalR.changeState = changeState;
+
+    signalR.isDisconnecting = isDisconnecting;
+
+    signalR.connectionState = {
+        connecting: 0,
+        connected: 1,
+        reconnecting: 2,
+        disconnected: 4
+    };
+
+    signalR.hub = {
+        start: function () {
+            // This will get replaced with the real hub connection start method when hubs is referenced correctly
+            throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.");
+        }
+    };
+
+    // .on() was added in version 1.7.0, .load() was removed in version 3.0.0 so we fallback to .load() if .on() does
+    // not exist to not break existing applications
+    if (typeof _pageWindow.on == "function") {
+        _pageWindow.on("load", function () { _pageLoaded = true; });
+    }
+    else {
+        _pageWindow.load(function () { _pageLoaded = true; });
+    }
+
+    function validateTransport(requestedTransport, connection) {
+        /// <summary>Validates the requested transport by cross checking it with the pre-defined signalR.transports</summary>
+        /// <param name="requestedTransport" type="Object">The designated transports that the user has specified.</param>
+        /// <param name="connection" type="signalR">The connection that will be using the requested transports.  Used for logging purposes.</param>
+        /// <returns type="Object" />
+
+        if ($.isArray(requestedTransport)) {
+            // Go through transport array and remove an "invalid" tranports
+            for (var i = requestedTransport.length - 1; i >= 0; i--) {
+                var transport = requestedTransport[i];
+                if ($.type(transport) !== "string" || !signalR.transports[transport]) {
+                    connection.log("Invalid transport: " + transport + ", removing it from the transports list.");
+                    requestedTransport.splice(i, 1);
+                }
+            }
+
+            // Verify we still have transports left, if we dont then we have invalid transports
+            if (requestedTransport.length === 0) {
+                connection.log("No transports remain within the specified transport array.");
+                requestedTransport = null;
+            }
+        } else if (!signalR.transports[requestedTransport] && requestedTransport !== "auto") {
+            connection.log("Invalid transport: " + requestedTransport.toString() + ".");
+            requestedTransport = null;
+        } else if (requestedTransport === "auto" && signalR._.ieVersion <= 8) {
+            // If we're doing an auto transport and we're IE8 then force longPolling, #1764
+            return ["longPolling"];
+
+        }
+
+        return requestedTransport;
+    }
+
+    function getDefaultPort(protocol) {
+        if (protocol === "http:") {
+            return 80;
+        } else if (protocol === "https:") {
+            return 443;
+        }
+    }
+
+    function addDefaultPort(protocol, url) {
+        // Remove ports  from url.  We have to check if there's a / or end of line
+        // following the port in order to avoid removing ports such as 8080.
+        if (url.match(/:\d+$/)) {
+            return url;
+        } else {
+            return url + ":" + getDefaultPort(protocol);
+        }
+    }
+
+    function ConnectingMessageBuffer(connection, drainCallback) {
+        var that = this,
+            buffer = [];
+
+        that.tryBuffer = function (message) {
+            if (connection.state === $.signalR.connectionState.connecting) {
+                buffer.push(message);
+
+                return true;
+            }
+
+            return false;
+        };
+
+        that.drain = function () {
+            // Ensure that the connection is connected when we drain (do not want to drain while a connection is not active)
+            if (connection.state === $.signalR.connectionState.connected) {
+                while (buffer.length > 0) {
+                    drainCallback(buffer.shift());
+                }
+            }
+        };
+
+        that.clear = function () {
+            buffer = [];
+        };
+    }
+
+    signalR.fn = signalR.prototype = {
+        init: function (url, qs, logging) {
+            var $connection = $(this);
+
+            this.url = url;
+            this.qs = qs;
+            this.lastError = null;
+            this._ = {
+                keepAliveData: {},
+                connectingMessageBuffer: new ConnectingMessageBuffer(this, function (message) {
+                    $connection.triggerHandler(events.onReceived, [message]);
+                }),
+                lastMessageAt: new Date().getTime(),
+                lastActiveAt: new Date().getTime(),
+                beatInterval: 5000, // Default value, will only be overridden if keep alive is enabled,
+                beatHandle: null,
+                totalTransportConnectTimeout: 0 // This will be the sum of the TransportConnectTimeout sent in response to negotiate and connection.transportConnectTimeout
+            };
+            if (typeof (logging) === "boolean") {
+                this.logging = logging;
+            }
+        },
+
+        _parseResponse: function (response) {
+            var that = this;
+
+            if (!response) {
+                return response;
+            } else if (typeof response === "string") {
+                return that.json.parse(response);
+            } else {
+                return response;
+            }
+        },
+
+        _originalJson: window.JSON,
+
+        json: window.JSON,
+
+        isCrossDomain: function (url, against) {
+            /// <summary>Checks if url is cross domain</summary>
+            /// <param name="url" type="String">The base URL</param>
+            /// <param name="against" type="Object">
+            ///     An optional argument to compare the URL against, if not specified it will be set to window.location.
+            ///     If specified it must contain a protocol and a host property.
+            /// </param>
+            var link;
+
+            url = $.trim(url);
+
+            against = against || window.location;
+
+            if (url.indexOf("http") !== 0) {
+                return false;
+            }
+
+            // Create an anchor tag.
+            link = window.document.createElement("a");
+            link.href = url;
+
+            // When checking for cross domain we have to special case port 80 because the window.location will remove the
+            return link.protocol + addDefaultPort(link.protocol, link.host) !== against.protocol + addDefaultPort(against.protocol, against.host);
+        },
+
+        ajaxDataType: "text",
+
+        contentType: "application/json; charset=UTF-8",
+
+        logging: false,
+
+        state: signalR.connectionState.disconnected,
+
+        clientProtocol: "1.5",
+
+        reconnectDelay: 2000,
+
+        transportConnectTimeout: 0,
+
+        disconnectTimeout: 30000, // This should be set by the server in response to the negotiate request (30s default)
+
+        reconnectWindow: 30000, // This should be set by the server in response to the negotiate request
+
+        keepAliveWarnAt: 2 / 3, // Warn user of slow connection if we breach the X% mark of the keep alive timeout
+
+        start: function (options, callback) {
+            /// <summary>Starts the connection</summary>
+            /// <param name="options" type="Object">Options map</param>
+            /// <param name="callback" type="Function">A callback function to execute when the connection has started</param>
+            var connection = this,
+                config = {
+                    pingInterval: 300000,
+                    waitForPageLoad: true,
+                    transport: "auto",
+                    jsonp: false
+                },
+                initialize,
+                deferred = connection._deferral || $.Deferred(), // Check to see if there is a pre-existing deferral that's being built on, if so we want to keep using it
+                parser = window.document.createElement("a");
+
+            connection.lastError = null;
+
+            // Persist the deferral so that if start is called multiple times the same deferral is used.
+            connection._deferral = deferred;
+
+            if (!connection.json) {
+                // no JSON!
+                throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");
+            }
+
+            if ($.type(options) === "function") {
+                // Support calling with single callback parameter
+                callback = options;
+            } else if ($.type(options) === "object") {
+                $.extend(config, options);
+                if ($.type(config.callback) === "function") {
+                    callback = config.callback;
+                }
+            }
+
+            config.transport = validateTransport(config.transport, connection);
+
+            // If the transport is invalid throw an error and abort start
+            if (!config.transport) {
+                throw new Error("SignalR: Invalid transport(s) specified, aborting start.");
+            }
+
+            connection._.config = config;
+
+            // Check to see if start is being called prior to page load
+            // If waitForPageLoad is true we then want to re-direct function call to the window load event
+            if (!_pageLoaded && config.waitForPageLoad === true) {
+                connection._.deferredStartHandler = function () {
+                    connection.start(options, callback);
+                };
+                _pageWindow.bind("load", connection._.deferredStartHandler);
+
+                return deferred.promise();
+            }
+
+            // If we're already connecting just return the same deferral as the original connection start
+            if (connection.state === signalR.connectionState.connecting) {
+                return deferred.promise();
+            } else if (changeState(connection,
+                            signalR.connectionState.disconnected,
+                            signalR.connectionState.connecting) === false) {
+                // We're not connecting so try and transition into connecting.
+                // If we fail to transition then we're either in connected or reconnecting.
+
+                deferred.resolve(connection);
+                return deferred.promise();
+            }
+
+            configureStopReconnectingTimeout(connection);
+
+            // Resolve the full url
+            parser.href = connection.url;
+            if (!parser.protocol || parser.protocol === ":") {
+                connection.protocol = window.document.location.protocol;
+                connection.host = parser.host || window.document.location.host;
+            } else {
+                connection.protocol = parser.protocol;
+                connection.host = parser.host;
+            }
+
+            connection.baseUrl = connection.protocol + "//" + connection.host;
+
+            // Set the websocket protocol
+            connection.wsProtocol = connection.protocol === "https:" ? "wss://" : "ws://";
+
+            // If jsonp with no/auto transport is specified, then set the transport to long polling
+            // since that is the only transport for which jsonp really makes sense.
+            // Some developers might actually choose to specify jsonp for same origin requests
+            // as demonstrated by Issue #623.
+            if (config.transport === "auto" && config.jsonp === true) {
+                config.transport = "longPolling";
+            }
+
+            // If the url is protocol relative, prepend the current windows protocol to the url.
+            if (connection.url.indexOf("//") === 0) {
+                connection.url = window.location.protocol + connection.url;
+                connection.log("Protocol relative URL detected, normalizing it to '" + connection.url + "'.");
+            }
+
+            if (this.isCrossDomain(connection.url)) {
+                connection.log("Auto detected cross domain url.");
+
+                if (config.transport === "auto") {
+                    // TODO: Support XDM with foreverFrame
+                    config.transport = ["webSockets", "serverSentEvents", "longPolling"];
+                }
+
+                if (typeof (config.withCredentials) === "undefined") {
+                    config.withCredentials = true;
+                }
+
+                // Determine if jsonp is the only choice for negotiation, ajaxSend and ajaxAbort.
+                // i.e. if the browser doesn't supports CORS
+                // If it is, ignore any preference to the contrary, and switch to jsonp.
+                if (!config.jsonp) {
+                    config.jsonp = !$.support.cors;
+
+                    if (config.jsonp) {
+                        connection.log("Using jsonp because this browser doesn't support CORS.");
+                    }
+                }
+
+                connection.contentType = signalR._.defaultContentType;
+            }
+
+            connection.withCredentials = config.withCredentials;
+
+            connection.ajaxDataType = config.jsonp ? "jsonp" : "text";
+
+            $(connection).bind(events.onStart, function (e, data) {
+                if ($.type(callback) === "function") {
+                    callback.call(connection);
+                }
+                deferred.resolve(connection);
+            });
+
+            connection._.initHandler = signalR.transports._logic.initHandler(connection);
+
+            initialize = function (transports, index) {
+                var noTransportError = signalR._.error(resources.noTransportOnInit);
+
+                index = index || 0;
+                if (index >= transports.length) {
+                    if (index === 0) {
+                        connection.log("No transports supported by the server were selected.");
+                    } else if (index === 1) {
+                        connection.log("No fallback transports were selected.");
+                    } else {
+                        connection.log("Fallback transports exhausted.");
+                    }
+
+                    // No transport initialized successfully
+                    $(connection).triggerHandler(events.onError, [noTransportError]);
+                    deferred.reject(noTransportError);
+                    // Stop the connection if it has connected and move it into the disconnected state
+                    connection.stop();
+                    return;
+                }
+
+                // The connection was aborted
+                if (connection.state === signalR.connectionState.disconnected) {
+                    return;
+                }
+
+                var transportName = transports[index],
+                    transport = signalR.transports[transportName],
+                    onFallback = function () {
+                        initialize(transports, index + 1);
+                    };
+
+                connection.transport = transport;
+
+                try {
+                    connection._.initHandler.start(transport, function () { // success
+                        // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials
+                        var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11,
+                            asyncAbort = !!connection.withCredentials && isFirefox11OrGreater;
+
+                        connection.log("The start request succeeded. Transitioning to the connected state.");
+
+                        if (supportsKeepAlive(connection)) {
+                            signalR.transports._logic.monitorKeepAlive(connection);
+                        }
+
+                        signalR.transports._logic.startHeartbeat(connection);
+
+                        // Used to ensure low activity clients maintain their authentication.
+                        // Must be configured once a transport has been decided to perform valid ping requests.
+                        signalR._.configurePingInterval(connection);
+
+                        if (!changeState(connection,
+                                            signalR.connectionState.connecting,
+                                            signalR.connectionState.connected)) {
+                            connection.log("WARNING! The connection was not in the connecting state.");
+                        }
+
+                        // Drain any incoming buffered messages (messages that came in prior to connect)
+                        connection._.connectingMessageBuffer.drain();
+
+                        $(connection).triggerHandler(events.onStart);
+
+                        // wire the stop handler for when the user leaves the page
+                        _pageWindow.bind("unload", function () {
+                            connection.log("Window unloading, stopping the connection.");
+
+                            connection.stop(asyncAbort);
+                        });
+
+                        if (isFirefox11OrGreater) {
+                            // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close.
+                            // #2400
+                            _pageWindow.bind("beforeunload", function () {
+                                // If connection.stop() runs runs in beforeunload and fails, it will also fail
+                                // in unload unless connection.stop() runs after a timeout.
+                                window.setTimeout(function () {
+                                    connection.stop(asyncAbort);
+                                }, 0);
+                            });
+                        }
+                    }, onFallback);
+                }
+                catch (error) {
+                    connection.log(transport.name + " transport threw '" + error.message + "' when attempting to start.");
+                    onFallback();
+                }
+            };
+
+            var url = connection.url + "/negotiate",
+                onFailed = function (error, connection) {
+                    var err = signalR._.error(resources.errorOnNegotiate, error, connection._.negotiateRequest);
+
+                    $(connection).triggerHandler(events.onError, err);
+                    deferred.reject(err);
+                    // Stop the connection if negotiate failed
+                    connection.stop();
+                };
+
+            $(connection).triggerHandler(events.onStarting);
+
+            url = signalR.transports._logic.prepareQueryString(connection, url);
+
+            connection.log("Negotiating with '" + url + "'.");
+
+            // Save the ajax negotiate request object so we can abort it if stop is called while the request is in flight.
+            connection._.negotiateRequest = signalR.transports._logic.ajax(connection, {
+                url: url,
+                error: function (error, statusText) {
+                    // We don't want to cause any errors if we're aborting our own negotiate request.
+                    if (statusText !== _negotiateAbortText) {
+                        onFailed(error, connection);
+                    } else {
+                        // This rejection will noop if the deferred has already been resolved or rejected.
+                        deferred.reject(signalR._.error(resources.stoppedWhileNegotiating, null /* error */, connection._.negotiateRequest));
+                    }
+                },
+                success: function (result) {
+                    var res,
+                        keepAliveData,
+                        protocolError,
+                        transports = [],
+                        supportedTransports = [];
+
+                    try {
+                        res = connection._parseResponse(result);
+                    } catch (error) {
+                        onFailed(signalR._.error(resources.errorParsingNegotiateResponse, error), connection);
+                        return;
+                    }
+
+                    keepAliveData = connection._.keepAliveData;
+                    connection.appRelativeUrl = res.Url;
+                    connection.id = res.ConnectionId;
+                    connection.token = res.ConnectionToken;
+                    connection.webSocketServerUrl = res.WebSocketServerUrl;
+
+                    // The long poll timeout is the ConnectionTimeout plus 10 seconds
+                    connection._.pollTimeout = res.ConnectionTimeout * 1000 + 10000; // in ms
+
+                    // Once the server has labeled the PersistentConnection as Disconnected, we should stop attempting to reconnect
+                    // after res.DisconnectTimeout seconds.
+                    connection.disconnectTimeout = res.DisconnectTimeout * 1000; // in ms
+
+                    // Add the TransportConnectTimeout from the response to the transportConnectTimeout from the client to calculate the total timeout
+                    connection._.totalTransportConnectTimeout = connection.transportConnectTimeout + res.TransportConnectTimeout * 1000;
+
+                    // If we have a keep alive
+                    if (res.KeepAliveTimeout) {
+                        // Register the keep alive data as activated
+                        keepAliveData.activated = true;
+
+                        // Timeout to designate when to force the connection into reconnecting converted to milliseconds
+                        keepAliveData.timeout = res.KeepAliveTimeout * 1000;
+
+                        // Timeout to designate when to warn the developer that the connection may be dead or is not responding.
+                        keepAliveData.timeoutWarning = keepAliveData.timeout * connection.keepAliveWarnAt;
+
+                        // Instantiate the frequency in which we check the keep alive.  It must be short in order to not miss/pick up any changes
+                        connection._.beatInterval = (keepAliveData.timeout - keepAliveData.timeoutWarning) / 3;
+                    } else {
+                        keepAliveData.activated = false;
+                    }
+
+                    connection.reconnectWindow = connection.disconnectTimeout + (keepAliveData.timeout || 0);
+
+                    if (!res.ProtocolVersion || res.ProtocolVersion !== connection.clientProtocol) {
+                        protocolError = signalR._.error(signalR._.format(resources.protocolIncompatible, connection.clientProtocol, res.ProtocolVersion));
+                        $(connection).triggerHandler(events.onError, [protocolError]);
+                        deferred.reject(protocolError);
+
+                        return;
+                    }
+
+                    $.each(signalR.transports, function (key) {
+                        if ((key.indexOf("_") === 0) || (key === "webSockets" && !res.TryWebSockets)) {
+                            return true;
+                        }
+                        supportedTransports.push(key);
+                    });
+
+                    if ($.isArray(config.transport)) {
+                        $.each(config.transport, function (_, transport) {
+                            if ($.inArray(transport, supportedTransports) >= 0) {
+                                transports.push(transport);
+                            }
+                        });
+                    } else if (config.transport === "auto") {
+                        transports = supportedTransports;
+                    } else if ($.inArray(config.transport, supportedTransports) >= 0) {
+                        transports.push(config.transport);
+                    }
+
+                    initialize(transports);
+                }
+            });
+
+            return deferred.promise();
+        },
+
+        starting: function (callback) {
+            /// <summary>Adds a callback that will be invoked before anything is sent over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute before the connection is fully instantiated.</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStarting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        send: function (data) {
+            /// <summary>Sends data over the connection</summary>
+            /// <param name="data" type="String">The data to send over the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");
+            }
+
+            if (connection.state === signalR.connectionState.connecting) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");
+            }
+
+            connection.transport.send(connection, data);
+            // REVIEW: Should we return deferred here?
+            return connection;
+        },
+
+        received: function (callback) {
+            /// <summary>Adds a callback that will be invoked after anything is received over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when any data is received on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReceived, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        stateChanged: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the connection state changes</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection state changes</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStateChanged, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        error: function (callback) {
+            /// <summary>Adds a callback that will be invoked after an error occurs with the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when an error occurs on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onError, function (e, errorData, sendData) {
+                connection.lastError = errorData;
+                // In practice 'errorData' is the SignalR built error object.
+                // In practice 'sendData' is undefined for all error events except those triggered by
+                // 'ajaxSend' and 'webSockets.send'.'sendData' is the original send payload.
+                callback.call(connection, errorData, sendData);
+            });
+            return connection;
+        },
+
+        disconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client disconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is broken</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onDisconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        connectionSlow: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client detects a slow connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is slow</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onConnectionSlow, function (e, data) {
+                callback.call(connection);
+            });
+
+            return connection;
+        },
+
+        reconnecting: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport begins reconnecting</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection enters a reconnecting state</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnecting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        reconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport reconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is restored</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        stop: function (async, notifyServer) {
+            /// <summary>Stops listening</summary>
+            /// <param name="async" type="Boolean">Whether or not to asynchronously abort the connection</param>
+            /// <param name="notifyServer" type="Boolean">Whether we want to notify the server that we are aborting the connection</param>
+            /// <returns type="signalR" />
+            var connection = this,
+                // Save deferral because this is always cleaned up
+                deferral = connection._deferral;
+
+            // Verify that we've bound a load event.
+            if (connection._.deferredStartHandler) {
+                // Unbind the event.
+                _pageWindow.unbind("load", connection._.deferredStartHandler);
+            }
+
+            // Always clean up private non-timeout based state.
+            delete connection._.config;
+            delete connection._.deferredStartHandler;
+
+            // This needs to be checked despite the connection state because a connection start can be deferred until page load.
+            // If we've deferred the start due to a page load we need to unbind the "onLoad" -> start event.
+            if (!_pageLoaded && (!connection._.config || connection._.config.waitForPageLoad === true)) {
+                connection.log("Stopping connection prior to negotiate.");
+
+                // If we have a deferral we should reject it
+                if (deferral) {
+                    deferral.reject(signalR._.error(resources.stoppedWhileLoading));
+                }
+
+                // Short-circuit because the start has not been fully started.
+                return;
+            }
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                return;
+            }
+
+            connection.log("Stopping connection.");
+
+            // Clear this no matter what
+            window.clearTimeout(connection._.beatHandle);
+            window.clearInterval(connection._.pingIntervalId);
+
+            if (connection.transport) {
+                connection.transport.stop(connection);
+
+                if (notifyServer !== false) {
+                    connection.transport.abort(connection, async);
+                }
+
+                if (supportsKeepAlive(connection)) {
+                    signalR.transports._logic.stopMonitoringKeepAlive(connection);
+                }
+
+                connection.transport = null;
+            }
+
+            if (connection._.negotiateRequest) {
+                // If the negotiation request has already completed this will noop.
+                connection._.negotiateRequest.abort(_negotiateAbortText);
+                delete connection._.negotiateRequest;
+            }
+
+            // Ensure that initHandler.stop() is called before connection._deferral is deleted
+            if (connection._.initHandler) {
+                connection._.initHandler.stop();
+            }
+
+            delete connection._deferral;
+            delete connection.messageId;
+            delete connection.groupsToken;
+            delete connection.id;
+            delete connection._.pingIntervalId;
+            delete connection._.lastMessageAt;
+            delete connection._.lastActiveAt;
+
+            // Clear out our message buffer
+            connection._.connectingMessageBuffer.clear();
+            
+            // Clean up this event
+            $(connection).unbind(events.onStart);
+
+            // Trigger the disconnect event
+            changeState(connection, connection.state, signalR.connectionState.disconnected);
+            $(connection).triggerHandler(events.onDisconnect);
+
+            return connection;
+        },
+
+        log: function (msg) {
+            log(msg, this.logging);
+        }
+    };
+
+    signalR.fn.init.prototype = signalR.fn;
+
+    signalR.noConflict = function () {
+        /// <summary>Reinstates the original value of $.connection and returns the signalR object for manual assignment</summary>
+        /// <returns type="signalR" />
+        if ($.connection === signalR) {
+            $.connection = _connection;
+        }
+        return signalR;
+    };
+
+    if ($.connection) {
+        _connection = $.connection;
+    }
+
+    $.connection = $.signalR = signalR;
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.common.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        startAbortText = "__Start Aborted__",
+        transportLogic;
+
+    signalR.transports = {};
+
+    function beat(connection) {
+        if (connection._.keepAliveData.monitoring) {
+            checkIfAlive(connection);
+        }
+
+        // Ensure that we successfully marked active before continuing the heartbeat.
+        if (transportLogic.markActive(connection)) {
+            connection._.beatHandle = window.setTimeout(function () {
+                beat(connection);
+            }, connection._.beatInterval);
+        }
+    }
+
+    function checkIfAlive(connection) {
+        var keepAliveData = connection._.keepAliveData,
+            timeElapsed;
+
+        // Only check if we're connected
+        if (connection.state === signalR.connectionState.connected) {
+            timeElapsed = new Date().getTime() - connection._.lastMessageAt;
+
+            // Check if the keep alive has completely timed out
+            if (timeElapsed >= keepAliveData.timeout) {
+                connection.log("Keep alive timed out.  Notifying transport that connection has been lost.");
+
+                // Notify transport that the connection has been lost
+                connection.transport.lostConnection(connection);
+            } else if (timeElapsed >= keepAliveData.timeoutWarning) {
+                // This is to assure that the user only gets a single warning
+                if (!keepAliveData.userNotified) {
+                    connection.log("Keep alive has been missed, connection may be dead/slow.");
+                    $(connection).triggerHandler(events.onConnectionSlow);
+                    keepAliveData.userNotified = true;
+                }
+            } else {
+                keepAliveData.userNotified = false;
+            }
+        }
+    }
+
+    function getAjaxUrl(connection, path) {
+        var url = connection.url + path;
+
+        if (connection.transport) {
+            url += "?transport=" + connection.transport.name;
+        }
+
+        return transportLogic.prepareQueryString(connection, url);
+    }
+
+    function InitHandler(connection) {
+        this.connection = connection;
+
+        this.startRequested = false;
+        this.startCompleted = false;
+        this.connectionStopped = false;
+    }
+
+    InitHandler.prototype = {
+        start: function (transport, onSuccess, onFallback) {
+            var that = this,
+                connection = that.connection,
+                failCalled = false;
+
+            if (that.startRequested || that.connectionStopped) {
+                connection.log("WARNING! " + transport.name + " transport cannot be started. Initialization ongoing or completed.");
+                return;
+            }
+
+            connection.log(transport.name + " transport starting.");
+
+            transport.start(connection, function () {
+                if (!failCalled) {
+                    that.initReceived(transport, onSuccess);
+                }
+            }, function (error) {
+                // Don't allow the same transport to cause onFallback to be called twice
+                if (!failCalled) {
+                    failCalled = true;
+                    that.transportFailed(transport, error, onFallback);
+                }
+
+                // Returns true if the transport should stop;
+                // false if it should attempt to reconnect
+                return !that.startCompleted || that.connectionStopped;
+            });
+
+            that.transportTimeoutHandle = window.setTimeout(function () {
+                if (!failCalled) {
+                    failCalled = true;
+                    connection.log(transport.name + " transport timed out when trying to connect.");
+                    that.transportFailed(transport, undefined, onFallback);
+                }
+            }, connection._.totalTransportConnectTimeout);
+        },
+
+        stop: function () {
+            this.connectionStopped = true;
+            window.clearTimeout(this.transportTimeoutHandle);
+            signalR.transports._logic.tryAbortStartRequest(this.connection);
+        },
+
+        initReceived: function (transport, onSuccess) {
+            var that = this,
+                connection = that.connection;
+
+            if (that.startRequested) {
+                connection.log("WARNING! The client received multiple init messages.");
+                return;
+            }
+
+            if (that.connectionStopped) {
+                return;
+            }
+
+            that.startRequested = true;
+            window.clearTimeout(that.transportTimeoutHandle);
+
+            connection.log(transport.name + " transport connected. Initiating start request.");
+            signalR.transports._logic.ajaxStart(connection, function () {
+                that.startCompleted = true;
+                onSuccess();
+            });
+        },
+
+        transportFailed: function (transport, error, onFallback) {
+            var connection = this.connection,
+                deferred = connection._deferral,
+                wrappedError;
+
+            if (this.connectionStopped) {
+                return;
+            }
+
+            window.clearTimeout(this.transportTimeoutHandle);
+
+            if (!this.startRequested) {
+                transport.stop(connection);
+
+                connection.log(transport.name + " transport failed to connect. Attempting to fall back.");
+                onFallback();
+            } else if (!this.startCompleted) {
+                // Do not attempt to fall back if a start request is ongoing during a transport failure.
+                // Instead, trigger an error and stop the connection.
+                wrappedError = signalR._.error(signalR.resources.errorDuringStartRequest, error);
+
+                connection.log(transport.name + " transport failed during the start request. Stopping the connection.");
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                if (deferred) {
+                    deferred.reject(wrappedError);
+                }
+
+                connection.stop();
+            } else {
+                // The start request has completed, but the connection has not stopped.
+                // No need to do anything here. The transport should attempt its normal reconnect logic.
+            }
+        }
+    };
+
+    transportLogic = signalR.transports._logic = {
+        ajax: function (connection, options) {
+            return $.ajax(
+                $.extend(/*deep copy*/ true, {}, $.signalR.ajaxDefaults, {
+                    type: "GET",
+                    data: {},
+                    xhrFields: { withCredentials: connection.withCredentials },
+                    contentType: connection.contentType,
+                    dataType: connection.ajaxDataType
+                }, options));
+        },
+
+        pingServer: function (connection) {
+            /// <summary>Pings the server</summary>
+            /// <param name="connection" type="signalr">Connection associated with the server ping</param>
+            /// <returns type="signalR" />
+            var url,
+                xhr,
+                deferral = $.Deferred();
+
+            if (connection.transport) {
+                url = connection.url + "/ping";
+
+                url = transportLogic.addQs(url, connection.qs);
+
+                xhr = transportLogic.ajax(connection, {
+                    url: url,
+                    success: function (result) {
+                        var data;
+
+                        try {
+                            data = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailedParse,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                            return;
+                        }
+
+                        if (data.Response === "pong") {
+                            deferral.resolve();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedInvalidResponse, result),
+                                    connection.transport,
+                                    null /* error */,
+                                    xhr
+                                )
+                            );
+                        }
+                    },
+                    error: function (error) {
+                        if (error.status === 401 || error.status === 403) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedStatusCode, error.status),
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailed,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                        }
+                    }
+                });
+            }
+            else {
+                deferral.reject(
+                    signalR._.transportError(
+                        signalR.resources.noConnectionTransport,
+                        connection.transport
+                    )
+                );
+            }
+
+            return deferral.promise();
+        },
+
+        prepareQueryString: function (connection, url) {
+            var preparedUrl;
+
+            // Use addQs to start since it handles the ?/& prefix for us
+            preparedUrl = transportLogic.addQs(url, "clientProtocol=" + connection.clientProtocol);
+
+            // Add the user-specified query string params if any
+            preparedUrl = transportLogic.addQs(preparedUrl, connection.qs);
+
+            if (connection.token) {
+                preparedUrl += "&connectionToken=" + window.encodeURIComponent(connection.token);
+            }
+
+            if (connection.data) {
+                preparedUrl += "&connectionData=" + window.encodeURIComponent(connection.data);
+            }
+
+            return preparedUrl;
+        },
+
+        addQs: function (url, qs) {
+            var appender = url.indexOf("?") !== -1 ? "&" : "?",
+                firstChar;
+
+            if (!qs) {
+                return url;
+            }
+
+            if (typeof (qs) === "object") {
+                return url + appender + $.param(qs);
+            }
+
+            if (typeof (qs) === "string") {
+                firstChar = qs.charAt(0);
+
+                if (firstChar === "?" || firstChar === "&") {
+                    appender = "";
+                }
+
+                return url + appender + qs;
+            }
+
+            throw new Error("Query string property must be either a string or object.");
+        },
+
+        // BUG #2953: The url needs to be same otherwise it will cause a memory leak
+        getUrl: function (connection, transport, reconnecting, poll, ajaxPost) {
+            /// <summary>Gets the url for making a GET based connect request</summary>
+            var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,
+                url = baseUrl + connection.appRelativeUrl,
+                qs = "transport=" + transport;
+
+            if (!ajaxPost && connection.groupsToken) {
+                qs += "&groupsToken=" + window.encodeURIComponent(connection.groupsToken);
+            }
+
+            if (!reconnecting) {
+                url += "/connect";
+            } else {
+                if (poll) {
+                    // longPolling transport specific
+                    url += "/poll";
+                } else {
+                    url += "/reconnect";
+                }
+
+                if (!ajaxPost && connection.messageId) {
+                    qs += "&messageId=" + window.encodeURIComponent(connection.messageId);
+                }
+            }
+            url += "?" + qs;
+            url = transportLogic.prepareQueryString(connection, url);
+
+            if (!ajaxPost) {
+                url += "&tid=" + Math.floor(Math.random() * 11);
+            }
+
+            return url;
+        },
+
+        maximizePersistentResponse: function (minPersistentResponse) {
+            return {
+                MessageId: minPersistentResponse.C,
+                Messages: minPersistentResponse.M,
+                Initialized: typeof (minPersistentResponse.S) !== "undefined" ? true : false,
+                ShouldReconnect: typeof (minPersistentResponse.T) !== "undefined" ? true : false,
+                LongPollDelay: minPersistentResponse.L,
+                GroupsToken: minPersistentResponse.G
+            };
+        },
+
+        updateGroups: function (connection, groupsToken) {
+            if (groupsToken) {
+                connection.groupsToken = groupsToken;
+            }
+        },
+
+        stringifySend: function (connection, message) {
+            if (typeof (message) === "string" || typeof (message) === "undefined" || message === null) {
+                return message;
+            }
+            return connection.json.stringify(message);
+        },
+
+        ajaxSend: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data),
+                url = getAjaxUrl(connection, "/send"),
+                xhr,
+                onFail = function (error, connection) {
+                    $(connection).triggerHandler(events.onError, [signalR._.transportError(signalR.resources.sendFailed, connection.transport, error, xhr), data]);
+                };
+
+
+            xhr = transportLogic.ajax(connection, {
+                url: url,
+                type: connection.ajaxDataType === "jsonp" ? "GET" : "POST",
+                contentType: signalR._.defaultContentType,
+                data: {
+                    data: payload
+                },
+                success: function (result) {
+                    var res;
+
+                    if (result) {
+                        try {
+                            res = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            onFail(error, connection);
+                            connection.stop();
+                            return;
+                        }
+
+                        transportLogic.triggerReceived(connection, res);
+                    }
+                },
+                error: function (error, textStatus) {
+                    if (textStatus === "abort" || textStatus === "parsererror") {
+                        // The parsererror happens for sends that don't return any data, and hence
+                        // don't write the jsonp callback to the response. This is harder to fix on the server
+                        // so just hack around it on the client for now.
+                        return;
+                    }
+
+                    onFail(error, connection);
+                }
+            });
+
+            return xhr;
+        },
+
+        ajaxAbort: function (connection, async) {
+            if (typeof (connection.transport) === "undefined") {
+                return;
+            }
+
+            // Async by default unless explicitly overidden
+            async = typeof async === "undefined" ? true : async;
+
+            var url = getAjaxUrl(connection, "/abort");
+
+            transportLogic.ajax(connection, {
+                url: url,
+                async: async,
+                timeout: 1000,
+                type: "POST"
+            });
+
+            connection.log("Fired ajax abort async = " + async + ".");
+        },
+
+        ajaxStart: function (connection, onSuccess) {
+            var rejectDeferred = function (error) {
+                    var deferred = connection._deferral;
+                    if (deferred) {
+                        deferred.reject(error);
+                    }
+                },
+                triggerStartError = function (error) {
+                    connection.log("The start request failed. Stopping the connection.");
+                    $(connection).triggerHandler(events.onError, [error]);
+                    rejectDeferred(error);
+                    connection.stop();
+                };
+
+            connection._.startRequest = transportLogic.ajax(connection, {
+                url: getAjaxUrl(connection, "/start"),
+                success: function (result, statusText, xhr) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(result);
+                    } catch (error) {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.errorParsingStartResponse, result),
+                            error, xhr));
+                        return;
+                    }
+
+                    if (data.Response === "started") {
+                        onSuccess();
+                    } else {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.invalidStartResponse, result),
+                            null /* error */, xhr));
+                    }
+                },
+                error: function (xhr, statusText, error) {
+                    if (statusText !== startAbortText) {
+                        triggerStartError(signalR._.error(
+                            signalR.resources.errorDuringStartRequest,
+                            error, xhr));
+                    } else {
+                        // Stop has been called, no need to trigger the error handler
+                        // or stop the connection again with onStartError
+                        connection.log("The start request aborted because connection.stop() was called.");
+                        rejectDeferred(signalR._.error(
+                            signalR.resources.stoppedDuringStartRequest,
+                            null /* error */, xhr));
+                    }
+                }
+            });
+        },
+
+        tryAbortStartRequest: function (connection) {
+            if (connection._.startRequest) {
+                // If the start request has already completed this will noop.
+                connection._.startRequest.abort(startAbortText);
+                delete connection._.startRequest;
+            }
+        },
+
+        tryInitialize: function (connection, persistentResponse, onInitialized) {
+            if (persistentResponse.Initialized && onInitialized) {
+                onInitialized();
+            } else if (persistentResponse.Initialized) {
+                connection.log("WARNING! The client received an init message after reconnecting.");
+            }
+
+        },
+
+        triggerReceived: function (connection, data) {
+            if (!connection._.connectingMessageBuffer.tryBuffer(data)) {
+                $(connection).triggerHandler(events.onReceived, [data]);
+            }
+        },
+
+        processMessages: function (connection, minData, onInitialized) {
+            var data;
+
+            // Update the last message time stamp
+            transportLogic.markLastMessage(connection);
+
+            if (minData) {
+                data = transportLogic.maximizePersistentResponse(minData);
+
+                transportLogic.updateGroups(connection, data.GroupsToken);
+
+                if (data.MessageId) {
+                    connection.messageId = data.MessageId;
+                }
+
+                if (data.Messages) {
+                    $.each(data.Messages, function (index, message) {
+                        transportLogic.triggerReceived(connection, message);
+                    });
+
+                    transportLogic.tryInitialize(connection, data, onInitialized);
+                }
+            }
+        },
+
+        monitorKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // If we haven't initiated the keep alive timeouts then we need to
+            if (!keepAliveData.monitoring) {
+                keepAliveData.monitoring = true;
+
+                transportLogic.markLastMessage(connection);
+
+                // Save the function so we can unbind it on stop
+                connection._.keepAliveData.reconnectKeepAliveUpdate = function () {
+                    // Mark a new message so that keep alive doesn't time out connections
+                    transportLogic.markLastMessage(connection);
+                };
+
+                // Update Keep alive on reconnect
+                $(connection).bind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                connection.log("Now monitoring keep alive with a warning timeout of " + keepAliveData.timeoutWarning + ", keep alive timeout of " + keepAliveData.timeout + " and disconnecting timeout of " + connection.disconnectTimeout);
+            } else {
+                connection.log("Tried to monitor keep alive but it's already being monitored.");
+            }
+        },
+
+        stopMonitoringKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // Only attempt to stop the keep alive monitoring if its being monitored
+            if (keepAliveData.monitoring) {
+                // Stop monitoring
+                keepAliveData.monitoring = false;
+
+                // Remove the updateKeepAlive function from the reconnect event
+                $(connection).unbind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                // Clear all the keep alive data
+                connection._.keepAliveData = {};
+                connection.log("Stopping the monitoring of the keep alive.");
+            }
+        },
+
+        startHeartbeat: function (connection) {
+            connection._.lastActiveAt = new Date().getTime();
+            beat(connection);
+        },
+
+        markLastMessage: function (connection) {
+            connection._.lastMessageAt = new Date().getTime();
+        },
+
+        markActive: function (connection) {
+            if (transportLogic.verifyLastActive(connection)) {
+                connection._.lastActiveAt = new Date().getTime();
+                return true;
+            }
+
+            return false;
+        },
+
+        isConnectedOrReconnecting: function (connection) {
+            return connection.state === signalR.connectionState.connected ||
+                   connection.state === signalR.connectionState.reconnecting;
+        },
+
+        ensureReconnectingState: function (connection) {
+            if (changeState(connection,
+                        signalR.connectionState.connected,
+                        signalR.connectionState.reconnecting) === true) {
+                $(connection).triggerHandler(events.onReconnecting);
+            }
+            return connection.state === signalR.connectionState.reconnecting;
+        },
+
+        clearReconnectTimeout: function (connection) {
+            if (connection && connection._.reconnectTimeout) {
+                window.clearTimeout(connection._.reconnectTimeout);
+                delete connection._.reconnectTimeout;
+            }
+        },
+
+        verifyLastActive: function (connection) {
+            if (new Date().getTime() - connection._.lastActiveAt >= connection.reconnectWindow) {
+                var message = signalR._.format(signalR.resources.reconnectWindowTimeout, new Date(connection._.lastActiveAt), connection.reconnectWindow);
+                connection.log(message);
+                $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                connection.stop(/* async */ false, /* notifyServer */ false);
+                return false;
+            }
+
+            return true;
+        },
+
+        reconnect: function (connection, transportName) {
+            var transport = signalR.transports[transportName];
+
+            // We should only set a reconnectTimeout if we are currently connected
+            // and a reconnectTimeout isn't already set.
+            if (transportLogic.isConnectedOrReconnecting(connection) && !connection._.reconnectTimeout) {
+                // Need to verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+                if (!transportLogic.verifyLastActive(connection)) {
+                    return;
+                }
+
+                connection._.reconnectTimeout = window.setTimeout(function () {
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    transport.stop(connection);
+
+                    if (transportLogic.ensureReconnectingState(connection)) {
+                        connection.log(transportName + " reconnecting.");
+                        transport.start(connection);
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        handleParseFailure: function (connection, result, error, onFailed, context) {
+            var wrappedError = signalR._.transportError(
+                signalR._.format(signalR.resources.parseFailed, result),
+                connection.transport,
+                error,
+                context);
+
+            // If we're in the initialization phase trigger onFailed, otherwise stop the connection.
+            if (onFailed && onFailed(wrappedError)) {
+                connection.log("Failed to parse server response while attempting to connect.");
+            } else {
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                connection.stop();
+            }
+        },
+
+        initHandler: function (connection) {
+            return new InitHandler(connection);
+        },
+
+        foreverFrame: {
+            count: 0,
+            connections: {}
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.webSockets.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.webSockets = {
+        name: "webSockets",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        send: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data);
+
+            try {
+                connection.socket.send(payload);
+            } catch (ex) {
+                $(connection).triggerHandler(events.onError,
+                    [signalR._.transportError(
+                        signalR.resources.webSocketsInvalidState,
+                        connection.transport,
+                        ex,
+                        connection.socket
+                    ),
+                    data]);
+            }
+        },
+
+        start: function (connection, onSuccess, onFailed) {
+            var url,
+                opened = false,
+                that = this,
+                reconnecting = !onSuccess,
+                $connection = $(connection);
+
+            if (!window.WebSocket) {
+                onFailed();
+                return;
+            }
+
+            if (!connection.socket) {
+                if (connection.webSocketServerUrl) {
+                    url = connection.webSocketServerUrl;
+                } else {
+                    url = connection.wsProtocol + connection.host;
+                }
+
+                url += transportLogic.getUrl(connection, this.name, reconnecting);
+
+                connection.log("Connecting to websocket endpoint '" + url + "'.");
+                connection.socket = new window.WebSocket(url);
+
+                connection.socket.onopen = function () {
+                    opened = true;
+                    connection.log("Websocket opened.");
+
+                    transportLogic.clearReconnectTimeout(connection);
+
+                    if (changeState(connection,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                };
+
+                connection.socket.onclose = function (event) {
+                    var error;
+
+                    // Only handle a socket close if the close is from the current socket.
+                    // Sometimes on disconnect the server will push down an onclose event
+                    // to an expired socket.
+
+                    if (this === connection.socket) {
+                        if (opened && typeof event.wasClean !== "undefined" && event.wasClean === false) {
+                            // Ideally this would use the websocket.onerror handler (rather than checking wasClean in onclose) but
+                            // I found in some circumstances Chrome won't call onerror. This implementation seems to work on all browsers.
+                            error = signalR._.transportError(
+                                signalR.resources.webSocketClosed,
+                                connection.transport,
+                                event);
+
+                            connection.log("Unclean disconnect from websocket: " + (event.reason || "[no reason given]."));
+                        } else {
+                            connection.log("Websocket closed.");
+                        }
+
+                        if (!onFailed || !onFailed(error)) {
+                            if (error) {
+                                $(connection).triggerHandler(events.onError, [error]);
+                            }
+
+                            that.reconnect(connection);
+                        }
+                    }
+                };
+
+                connection.socket.onmessage = function (event) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(event.data);
+                    }
+                    catch (error) {
+                        transportLogic.handleParseFailure(connection, event.data, error, onFailed, event);
+                        return;
+                    }
+
+                    if (data) {
+                        // data.M is PersistentResponse.Messages
+                        if ($.isEmptyObject(data) || data.M) {
+                            transportLogic.processMessages(connection, data, onSuccess);
+                        } else {
+                            // For websockets we need to trigger onReceived
+                            // for callbacks to outgoing hub calls.
+                            transportLogic.triggerReceived(connection, data);
+                        }
+                    }
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection.socket) {
+                connection.log("Closing the Websocket.");
+                connection.socket.close();
+                connection.socket = null;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.serverSentEvents.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        clearReconnectAttemptTimeout = function (connection) {
+            window.clearTimeout(connection._.reconnectAttemptTimeoutHandle);
+            delete connection._.reconnectAttemptTimeoutHandle;
+        };
+
+    signalR.transports.serverSentEvents = {
+        name: "serverSentEvents",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        timeOut: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                opened = false,
+                $connection = $(connection),
+                reconnecting = !onSuccess,
+                url;
+
+            if (connection.eventSource) {
+                connection.log("The connection already has an event source. Stopping it.");
+                connection.stop();
+            }
+
+            if (!window.EventSource) {
+                if (onFailed) {
+                    connection.log("This browser doesn't support SSE.");
+                    onFailed();
+                }
+                return;
+            }
+
+            url = transportLogic.getUrl(connection, this.name, reconnecting);
+
+            try {
+                connection.log("Attempting to connect to SSE endpoint '" + url + "'.");
+                connection.eventSource = new window.EventSource(url, { withCredentials: connection.withCredentials });
+            }
+            catch (e) {
+                connection.log("EventSource failed trying to connect with error " + e.Message + ".");
+                if (onFailed) {
+                    // The connection failed, call the failed callback
+                    onFailed();
+                } else {
+                    $connection.triggerHandler(events.onError, [signalR._.transportError(signalR.resources.eventSourceFailedToConnect, connection.transport, e)]);
+                    if (reconnecting) {
+                        // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                        that.reconnect(connection);
+                    }
+                }
+                return;
+            }
+
+            if (reconnecting) {
+                connection._.reconnectAttemptTimeoutHandle = window.setTimeout(function () {
+                    if (opened === false) {
+                        // If we're reconnecting and the event source is attempting to connect,
+                        // don't keep retrying. This causes duplicate connections to spawn.
+                        if (connection.eventSource.readyState !== window.EventSource.OPEN) {
+                            // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                            that.reconnect(connection);
+                        }
+                    }
+                },
+                that.timeOut);
+            }
+
+            connection.eventSource.addEventListener("open", function (e) {
+                connection.log("EventSource connected.");
+
+                clearReconnectAttemptTimeout(connection);
+                transportLogic.clearReconnectTimeout(connection);
+
+                if (opened === false) {
+                    opened = true;
+
+                    if (changeState(connection,
+                                         signalR.connectionState.reconnecting,
+                                         signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                }
+            }, false);
+
+            connection.eventSource.addEventListener("message", function (e) {
+                var res;
+
+                // process messages
+                if (e.data === "initialized") {
+                    return;
+                }
+
+                try {
+                    res = connection._parseResponse(e.data);
+                }
+                catch (error) {
+                    transportLogic.handleParseFailure(connection, e.data, error, onFailed, e);
+                    return;
+                }
+
+                transportLogic.processMessages(connection, res, onSuccess);
+            }, false);
+
+            connection.eventSource.addEventListener("error", function (e) {
+                var error = signalR._.transportError(
+                    signalR.resources.eventSourceError,
+                    connection.transport,
+                    e);
+
+                // Only handle an error if the error is from the current Event Source.
+                // Sometimes on disconnect the server will push down an error event
+                // to an expired Event Source.
+                if (this !== connection.eventSource) {
+                    return;
+                }
+
+                if (onFailed && onFailed(error)) {
+                    return;
+                }
+
+                connection.log("EventSource readyState: " + connection.eventSource.readyState + ".");
+
+                if (e.eventPhase === window.EventSource.CLOSED) {
+                    // We don't use the EventSource's native reconnect function as it
+                    // doesn't allow us to change the URL when reconnecting. We need
+                    // to change the URL to not include the /connect suffix, and pass
+                    // the last message id we received.
+                    connection.log("EventSource reconnecting due to the server connection ending.");
+                    that.reconnect(connection);
+                } else {
+                    // connection error
+                    connection.log("EventSource error.");
+                    $connection.triggerHandler(events.onError, [error]);
+                }
+            }, false);
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            clearReconnectAttemptTimeout(connection);
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection && connection.eventSource) {
+                connection.log("EventSource calling close().");
+                connection.eventSource.close();
+                connection.eventSource = null;
+                delete connection.eventSource;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.foreverFrame.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        createFrame = function () {
+            var frame = window.document.createElement("iframe");
+            frame.setAttribute("style", "position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;");
+            return frame;
+        },
+        // Used to prevent infinite loading icon spins in older versions of ie
+        // We build this object inside a closure so we don't pollute the rest of
+        // the foreverFrame transport with unnecessary functions/utilities.
+        loadPreventer = (function () {
+            var loadingFixIntervalId = null,
+                loadingFixInterval = 1000,
+                attachedTo = 0;
+
+            return {
+                prevent: function () {
+                    // Prevent additional iframe removal procedures from newer browsers
+                    if (signalR._.ieVersion <= 8) {
+                        // We only ever want to set the interval one time, so on the first attachedTo
+                        if (attachedTo === 0) {
+                            // Create and destroy iframe every 3 seconds to prevent loading icon, super hacky
+                            loadingFixIntervalId = window.setInterval(function () {
+                                var tempFrame = createFrame();
+
+                                window.document.body.appendChild(tempFrame);
+                                window.document.body.removeChild(tempFrame);
+
+                                tempFrame = null;
+                            }, loadingFixInterval);
+                        }
+
+                        attachedTo++;
+                    }
+                },
+                cancel: function () {
+                    // Only clear the interval if there's only one more object that the loadPreventer is attachedTo
+                    if (attachedTo === 1) {
+                        window.clearInterval(loadingFixIntervalId);
+                    }
+
+                    if (attachedTo > 0) {
+                        attachedTo--;
+                    }
+                }
+            };
+        })();
+
+    signalR.transports.foreverFrame = {
+        name: "foreverFrame",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        // Added as a value here so we can create tests to verify functionality
+        iframeClearThreshold: 50,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                frameId = (transportLogic.foreverFrame.count += 1),
+                url,
+                frame = createFrame(),
+                frameLoadHandler = function () {
+                    connection.log("Forever frame iframe finished loading and is no longer receiving messages.");
+                    if (!onFailed || !onFailed()) {
+                        that.reconnect(connection);
+                    }
+                };
+
+            if (window.EventSource) {
+                // If the browser supports SSE, don't use Forever Frame
+                if (onFailed) {
+                    connection.log("Forever Frame is not supported by SignalR on browsers with SSE support.");
+                    onFailed();
+                }
+                return;
+            }
+
+            frame.setAttribute("data-signalr-connection-id", connection.id);
+
+            // Start preventing loading icon
+            // This will only perform work if the loadPreventer is not attached to another connection.
+            loadPreventer.prevent();
+
+            // Build the url
+            url = transportLogic.getUrl(connection, this.name);
+            url += "&frameId=" + frameId;
+
+            // add frame to the document prior to setting URL to avoid caching issues.
+            window.document.documentElement.appendChild(frame);
+
+            connection.log("Binding to iframe's load event.");
+
+            if (frame.addEventListener) {
+                frame.addEventListener("load", frameLoadHandler, false);
+            } else if (frame.attachEvent) {
+                frame.attachEvent("onload", frameLoadHandler);
+            }
+
+            frame.src = url;
+            transportLogic.foreverFrame.connections[frameId] = connection;
+
+            connection.frame = frame;
+            connection.frameId = frameId;
+
+            if (onSuccess) {
+                connection.onSuccess = function () {
+                    connection.log("Iframe transport started.");
+                    onSuccess();
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            var that = this;
+
+            // Need to verify connection state and verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+            if (transportLogic.isConnectedOrReconnecting(connection) && transportLogic.verifyLastActive(connection)) {
+                window.setTimeout(function () {
+                    // Verify that we're ok to reconnect.
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    if (connection.frame && transportLogic.ensureReconnectingState(connection)) {
+                        var frame = connection.frame,
+                            src = transportLogic.getUrl(connection, that.name, true) + "&frameId=" + connection.frameId;
+                        connection.log("Updating iframe src to '" + src + "'.");
+                        frame.src = src;
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        receive: function (connection, data) {
+            var cw,
+                body,
+                response;
+
+            if (connection.json !== connection._originalJson) {
+                // If there's a custom JSON parser configured then serialize the object
+                // using the original (browser) JSON parser and then deserialize it using
+                // the custom parser (connection._parseResponse does that). This is so we
+                // can easily send the response from the server as "raw" JSON but still
+                // support custom JSON deserialization in the browser.
+                data = connection._originalJson.stringify(data);
+            }
+
+            response = connection._parseResponse(data);
+
+            transportLogic.processMessages(connection, response, connection.onSuccess);
+
+            // Protect against connection stopping from a callback trigger within the processMessages above.
+            if (connection.state === $.signalR.connectionState.connected) {
+                // Delete the script & div elements
+                connection.frameMessageCount = (connection.frameMessageCount || 0) + 1;
+                if (connection.frameMessageCount > signalR.transports.foreverFrame.iframeClearThreshold) {
+                    connection.frameMessageCount = 0;
+                    cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                    if (cw && cw.document && cw.document.body) {
+                        body = cw.document.body;
+
+                        // Remove all the child elements from the iframe's body to conserver memory
+                        while (body.firstChild) {
+                            body.removeChild(body.firstChild);
+                        }
+                    }
+                }
+            }
+        },
+
+        stop: function (connection) {
+            var cw = null;
+
+            // Stop attempting to prevent loading icon
+            loadPreventer.cancel();
+
+            if (connection.frame) {
+                if (connection.frame.stop) {
+                    connection.frame.stop();
+                } else {
+                    try {
+                        cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                        if (cw.document && cw.document.execCommand) {
+                            cw.document.execCommand("Stop");
+                        }
+                    }
+                    catch (e) {
+                        connection.log("Error occurred when stopping foreverFrame transport. Message = " + e.message + ".");
+                    }
+                }
+
+                // Ensure the iframe is where we left it
+                if (connection.frame.parentNode === window.document.documentElement) {
+                    window.document.documentElement.removeChild(connection.frame);
+                }
+
+                delete transportLogic.foreverFrame.connections[connection.frameId];
+                connection.frame = null;
+                connection.frameId = null;
+                delete connection.frame;
+                delete connection.frameId;
+                delete connection.onSuccess;
+                delete connection.frameMessageCount;
+                connection.log("Stopping forever frame.");
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        },
+
+        getConnection: function (id) {
+            return transportLogic.foreverFrame.connections[id];
+        },
+
+        started: function (connection) {
+            if (changeState(connection,
+                signalR.connectionState.reconnecting,
+                signalR.connectionState.connected) === true) {
+
+                $(connection).triggerHandler(events.onReconnect);
+            }
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.longPolling.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        isDisconnecting = $.signalR.isDisconnecting,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.longPolling = {
+        name: "longPolling",
+
+        supportsKeepAlive: function () {
+            return false;
+        },
+
+        reconnectDelay: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            /// <summary>Starts the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to start</param>
+            var that = this,
+                fireConnect = function () {
+                    fireConnect = $.noop;
+
+                    connection.log("LongPolling connected.");
+
+                    if (onSuccess) {
+                        onSuccess();
+                    } else {
+                        connection.log("WARNING! The client received an init message after reconnecting.");
+                    }
+                },
+                tryFailConnect = function (error) {
+                    if (onFailed(error)) {
+                        connection.log("LongPolling failed to connect.");
+                        return true;
+                    }
+
+                    return false;
+                },
+                privateData = connection._,
+                reconnectErrors = 0,
+                fireReconnected = function (instance) {
+                    window.clearTimeout(privateData.reconnectTimeoutId);
+                    privateData.reconnectTimeoutId = null;
+
+                    if (changeState(instance,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        // Successfully reconnected!
+                        instance.log("Raising the reconnect event");
+                        $(instance).triggerHandler(events.onReconnect);
+                    }
+                },
+                // 1 hour
+                maxFireReconnectedTimeout = 3600000;
+
+            if (connection.pollXhr) {
+                connection.log("Polling xhr requests already exists, aborting.");
+                connection.stop();
+            }
+
+            connection.messageId = null;
+
+            privateData.reconnectTimeoutId = null;
+
+            privateData.pollTimeoutId = window.setTimeout(function () {
+                (function poll(instance, raiseReconnect) {
+                    var messageId = instance.messageId,
+                        connect = (messageId === null),
+                        reconnecting = !connect,
+                        polling = !raiseReconnect,
+                        url = transportLogic.getUrl(instance, that.name, reconnecting, polling, true /* use Post for longPolling */),
+                        postData = {};
+
+                    if (instance.messageId) {
+                        postData.messageId = instance.messageId;
+                    }
+
+                    if (instance.groupsToken) {
+                        postData.groupsToken = instance.groupsToken;
+                    }
+
+                    // If we've disconnected during the time we've tried to re-instantiate the poll then stop.
+                    if (isDisconnecting(instance) === true) {
+                        return;
+                    }
+
+                    connection.log("Opening long polling request to '" + url + "'.");
+                    instance.pollXhr = transportLogic.ajax(connection, {
+                        xhrFields: {
+                            onprogress: function () {
+                                transportLogic.markLastMessage(connection);
+                            }
+                        },
+                        url: url,
+                        type: "POST",
+                        contentType: signalR._.defaultContentType,
+                        data: postData,
+                        timeout: connection._.pollTimeout,
+                        success: function (result) {
+                            var minData,
+                                delay = 0,
+                                data,
+                                shouldReconnect;
+
+                            connection.log("Long poll complete.");
+
+                            // Reset our reconnect errors so if we transition into a reconnecting state again we trigger
+                            // reconnected quickly
+                            reconnectErrors = 0;
+
+                            try {
+                                // Remove any keep-alives from the beginning of the result
+                                minData = connection._parseResponse(result);
+                            }
+                            catch (error) {
+                                transportLogic.handleParseFailure(instance, result, error, tryFailConnect, instance.pollXhr);
+                                return;
+                            }
+
+                            // If there's currently a timeout to trigger reconnect, fire it now before processing messages
+                            if (privateData.reconnectTimeoutId !== null) {
+                                fireReconnected(instance);
+                            }
+
+                            if (minData) {
+                                data = transportLogic.maximizePersistentResponse(minData);
+                            }
+
+                            transportLogic.processMessages(instance, minData, fireConnect);
+
+                            if (data &&
+                                $.type(data.LongPollDelay) === "number") {
+                                delay = data.LongPollDelay;
+                            }
+
+                            if (isDisconnecting(instance) === true) {
+                                return;
+                            }
+
+                            shouldReconnect = data && data.ShouldReconnect;
+                            if (shouldReconnect) {
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into a invalid state in processMessages.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+                            }
+
+                            // We never want to pass a raiseReconnect flag after a successful poll.  This is handled via the error function
+                            if (delay > 0) {
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, shouldReconnect);
+                                }, delay);
+                            } else {
+                                poll(instance, shouldReconnect);
+                            }
+                        },
+
+                        error: function (data, textStatus) {
+                            var error = signalR._.transportError(signalR.resources.longPollFailed, connection.transport, data, instance.pollXhr);
+
+                            // Stop trying to trigger reconnect, connection is in an error state
+                            // If we're not in the reconnect state this will noop
+                            window.clearTimeout(privateData.reconnectTimeoutId);
+                            privateData.reconnectTimeoutId = null;
+
+                            if (textStatus === "abort") {
+                                connection.log("Aborted xhr request.");
+                                return;
+                            }
+
+                            if (!tryFailConnect(error)) {
+
+                                // Increment our reconnect errors, we assume all errors to be reconnect errors
+                                // In the case that it's our first error this will cause Reconnect to be fired
+                                // after 1 second due to reconnectErrors being = 1.
+                                reconnectErrors++;
+
+                                if (connection.state !== signalR.connectionState.reconnecting) {
+                                    connection.log("An error occurred using longPolling. Status = " + textStatus + ".  Response = " + data.responseText + ".");
+                                    $(instance).triggerHandler(events.onError, [error]);
+                                }
+
+                                // We check the state here to verify that we're not in an invalid state prior to verifying Reconnect.
+                                // If we're not in connected or reconnecting then the next ensureReconnectingState check will fail and will return.
+                                // Therefore we don't want to change that failure code path.
+                                if ((connection.state === signalR.connectionState.connected ||
+                                    connection.state === signalR.connectionState.reconnecting) &&
+                                    !transportLogic.verifyLastActive(connection)) {
+                                    return;
+                                }
+
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into the disconnected or connecting state within the above error handler trigger.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+
+                                // Call poll with the raiseReconnect flag as true after the reconnect delay
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, true);
+                                }, that.reconnectDelay);
+                            }
+                        }
+                    });
+
+                    // This will only ever pass after an error has occurred via the poll ajax procedure.
+                    if (reconnecting && raiseReconnect === true) {
+                        // We wait to reconnect depending on how many times we've failed to reconnect.
+                        // This is essentially a heuristic that will exponentially increase in wait time before
+                        // triggering reconnected.  This depends on the "error" handler of Poll to cancel this
+                        // timeout if it triggers before the Reconnected event fires.
+                        // The Math.min at the end is to ensure that the reconnect timeout does not overflow.
+                        privateData.reconnectTimeoutId = window.setTimeout(function () { fireReconnected(instance); }, Math.min(1000 * (Math.pow(2, reconnectErrors) - 1), maxFireReconnectedTimeout));
+                    }
+                }(connection));
+            }, 250); // Have to delay initial poll so Chrome doesn't show loader spinner in tab
+        },
+
+        lostConnection: function (connection) {
+            if (connection.pollXhr) {
+                connection.pollXhr.abort("lostConnection");
+            }
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            /// <summary>Stops the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to stop</param>
+
+            window.clearTimeout(connection._.pollTimeoutId);
+            window.clearTimeout(connection._.reconnectTimeoutId);
+
+            delete connection._.pollTimeoutId;
+            delete connection._.reconnectTimeoutId;
+
+            if (connection.pollXhr) {
+                connection.pollXhr.abort();
+                connection.pollXhr = null;
+                delete connection.pollXhr;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.hubs.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var eventNamespace = ".hubProxy",
+        signalR = $.signalR;
+
+    function makeEventName(event) {
+        return event + eventNamespace;
+    }
+
+    // Equivalent to Array.prototype.map
+    function map(arr, fun, thisp) {
+        var i,
+            length = arr.length,
+            result = [];
+        for (i = 0; i < length; i += 1) {
+            if (arr.hasOwnProperty(i)) {
+                result[i] = fun.call(thisp, arr[i], i, arr);
+            }
+        }
+        return result;
+    }
+
+    function getArgValue(a) {
+        return $.isFunction(a) ? null : ($.type(a) === "undefined" ? null : a);
+    }
+
+    function hasMembers(obj) {
+        for (var key in obj) {
+            // If we have any properties in our callback map then we have callbacks and can exit the loop via return
+            if (obj.hasOwnProperty(key)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    function clearInvocationCallbacks(connection, error) {
+        /// <param name="connection" type="hubConnection" />
+        var callbacks = connection._.invocationCallbacks,
+            callback;
+
+        if (hasMembers(callbacks)) {
+            connection.log("Clearing hub invocation callbacks with error: " + error + ".");
+        }
+
+        // Reset the callback cache now as we have a local var referencing it
+        connection._.invocationCallbackId = 0;
+        delete connection._.invocationCallbacks;
+        connection._.invocationCallbacks = {};
+
+        // Loop over the callbacks and invoke them.
+        // We do this using a local var reference and *after* we've cleared the cache
+        // so that if a fail callback itself tries to invoke another method we don't
+        // end up with its callback in the list we're looping over.
+        for (var callbackId in callbacks) {
+            callback = callbacks[callbackId];
+            callback.method.call(callback.scope, { E: error });
+        }
+    }
+
+    // hubProxy
+    function hubProxy(hubConnection, hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        return new hubProxy.fn.init(hubConnection, hubName);
+    }
+
+    hubProxy.fn = hubProxy.prototype = {
+        init: function (connection, hubName) {
+            this.state = {};
+            this.connection = connection;
+            this.hubName = hubName;
+            this._ = {
+                callbackMap: {}
+            };
+        },
+
+        constructor: hubProxy,
+
+        hasSubscriptions: function () {
+            return hasMembers(this._.callbackMap);
+        },
+
+        on: function (eventName, callback) {
+            /// <summary>Wires up a callback to be invoked when a invocation request is received from the server hub.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to register the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            // If there is not an event registered for this callback yet we want to create its event space in the callback map.
+            if (!callbackMap[eventName]) {
+                callbackMap[eventName] = {};
+            }
+
+            // Map the callback to our encompassed function
+            callbackMap[eventName][callback] = function (e, data) {
+                callback.apply(that, data);
+            };
+
+            $(that).bind(makeEventName(eventName), callbackMap[eventName][callback]);
+
+            return that;
+        },
+
+        off: function (eventName, callback) {
+            /// <summary>Removes the callback invocation request from the server hub for the given event name.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to unregister the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap,
+                callbackSpace;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            callbackSpace = callbackMap[eventName];
+
+            // Verify that there is an event space to unbind
+            if (callbackSpace) {
+                // Only unbind if there's an event bound with eventName and a callback with the specified callback
+                if (callbackSpace[callback]) {
+                    $(that).unbind(makeEventName(eventName), callbackSpace[callback]);
+
+                    // Remove the callback from the callback map
+                    delete callbackSpace[callback];
+
+                    // Check if there are any members left on the event, if not we need to destroy it.
+                    if (!hasMembers(callbackSpace)) {
+                        delete callbackMap[eventName];
+                    }
+                } else if (!callback) { // Check if we're removing the whole event and we didn't error because of an invalid callback
+                    $(that).unbind(makeEventName(eventName));
+
+                    delete callbackMap[eventName];
+                }
+            }
+
+            return that;
+        },
+
+        invoke: function (methodName) {
+            /// <summary>Invokes a server hub method with the given arguments.</summary>
+            /// <param name="methodName" type="String">The name of the server hub method.</param>
+
+            var that = this,
+                connection = that.connection,
+                args = $.makeArray(arguments).slice(1),
+                argValues = map(args, getArgValue),
+                data = { H: that.hubName, M: methodName, A: argValues, I: connection._.invocationCallbackId },
+                d = $.Deferred(),
+                callback = function (minResult) {
+                    var result = that._maximizeHubResponse(minResult),
+                        source,
+                        error;
+
+                    // Update the hub state
+                    $.extend(that.state, result.State);
+
+                    if (result.Progress) {
+                        if (d.notifyWith) {
+                            // Progress is only supported in jQuery 1.7+
+                            d.notifyWith(that, [result.Progress.Data]);
+                        } else if(!connection._.progressjQueryVersionLogged) {
+                            connection.log("A hub method invocation progress update was received but the version of jQuery in use (" + $.prototype.jquery + ") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications.");
+                            connection._.progressjQueryVersionLogged = true;
+                        }
+                    } else if (result.Error) {
+                        // Server hub method threw an exception, log it & reject the deferred
+                        if (result.StackTrace) {
+                            connection.log(result.Error + "\n" + result.StackTrace + ".");
+                        }
+
+                        // result.ErrorData is only set if a HubException was thrown
+                        source = result.IsHubException ? "HubException" : "Exception";
+                        error = signalR._.error(result.Error, source);
+                        error.data = result.ErrorData;
+
+                        connection.log(that.hubName + "." + methodName + " failed to execute. Error: " + error.message);
+                        d.rejectWith(that, [error]);
+                    } else {
+                        // Server invocation succeeded, resolve the deferred
+                        connection.log("Invoked " + that.hubName + "." + methodName);
+                        d.resolveWith(that, [result.Result]);
+                    }
+                };
+
+            connection._.invocationCallbacks[connection._.invocationCallbackId.toString()] = { scope: that, method: callback };
+            connection._.invocationCallbackId += 1;
+
+            if (!$.isEmptyObject(that.state)) {
+                data.S = that.state;
+            }
+
+            connection.log("Invoking " + that.hubName + "." + methodName);
+            connection.send(data);
+
+            return d.promise();
+        },
+
+        _maximizeHubResponse: function (minHubResponse) {
+            return {
+                State: minHubResponse.S,
+                Result: minHubResponse.R,
+                Progress: minHubResponse.P ? {
+                    Id: minHubResponse.P.I,
+                    Data: minHubResponse.P.D
+                } : null,
+                Id: minHubResponse.I,
+                IsHubException: minHubResponse.H,
+                Error: minHubResponse.E,
+                StackTrace: minHubResponse.T,
+                ErrorData: minHubResponse.D
+            };
+        }
+    };
+
+    hubProxy.fn.init.prototype = hubProxy.fn;
+
+    // hubConnection
+    function hubConnection(url, options) {
+        /// <summary>Creates a new hub connection.</summary>
+        /// <param name="url" type="String">[Optional] The hub route url, defaults to "/signalr".</param>
+        /// <param name="options" type="Object">[Optional] Settings to use when creating the hubConnection.</param>
+        var settings = {
+            qs: null,
+            logging: false,
+            useDefaultPath: true
+        };
+
+        $.extend(settings, options);
+
+        if (!url || settings.useDefaultPath) {
+            url = (url || "") + "/signalr";
+        }
+        return new hubConnection.fn.init(url, settings);
+    }
+
+    hubConnection.fn = hubConnection.prototype = $.connection();
+
+    hubConnection.fn.init = function (url, options) {
+        var settings = {
+                qs: null,
+                logging: false,
+                useDefaultPath: true
+            },
+            connection = this;
+
+        $.extend(settings, options);
+
+        // Call the base constructor
+        $.signalR.fn.init.call(connection, url, settings.qs, settings.logging);
+
+        // Object to store hub proxies for this connection
+        connection.proxies = {};
+
+        connection._.invocationCallbackId = 0;
+        connection._.invocationCallbacks = {};
+
+        // Wire up the received handler
+        connection.received(function (minData) {
+            var data, proxy, dataCallbackId, callback, hubName, eventName;
+            if (!minData) {
+                return;
+            }
+
+            // We have to handle progress updates first in order to ensure old clients that receive
+            // progress updates enter the return value branch and then no-op when they can't find
+            // the callback in the map (because the minData.I value will not be a valid callback ID)
+            if (typeof (minData.P) !== "undefined") {
+                // Process progress notification
+                dataCallbackId = minData.P.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    callback.method.call(callback.scope, minData);
+                }
+            } else if (typeof (minData.I) !== "undefined") {
+                // We received the return value from a server method invocation, look up callback by id and call it
+                dataCallbackId = minData.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    // Delete the callback from the proxy
+                    connection._.invocationCallbacks[dataCallbackId] = null;
+                    delete connection._.invocationCallbacks[dataCallbackId];
+
+                    // Invoke the callback
+                    callback.method.call(callback.scope, minData);
+                }
+            } else {
+                data = this._maximizeClientHubInvocation(minData);
+
+                // We received a client invocation request, i.e. broadcast from server hub
+                connection.log("Triggering client hub event '" + data.Method + "' on hub '" + data.Hub + "'.");
+
+                // Normalize the names to lowercase
+                hubName = data.Hub.toLowerCase();
+                eventName = data.Method.toLowerCase();
+
+                // Trigger the local invocation event
+                proxy = this.proxies[hubName];
+
+                // Update the hub state
+                $.extend(proxy.state, data.State);
+                $(proxy).triggerHandler(makeEventName(eventName), [data.Args]);
+            }
+        });
+
+        connection.error(function (errData, origData) {
+            var callbackId, callback;
+
+            if (!origData) {
+                // No original data passed so this is not a send error
+                return;
+            }
+
+            callbackId = origData.I;
+            callback = connection._.invocationCallbacks[callbackId];
+
+            // Verify that there is a callback bound (could have been cleared)
+            if (callback) {
+                // Delete the callback
+                connection._.invocationCallbacks[callbackId] = null;
+                delete connection._.invocationCallbacks[callbackId];
+
+                // Invoke the callback with an error to reject the promise
+                callback.method.call(callback.scope, { E: errData });
+            }
+        });
+
+        connection.reconnecting(function () {
+            if (connection.transport && connection.transport.name === "webSockets") {
+                clearInvocationCallbacks(connection, "Connection started reconnecting before invocation result was received.");
+            }
+        });
+
+        connection.disconnected(function () {
+            clearInvocationCallbacks(connection, "Connection was disconnected before invocation result was received.");
+        });
+    };
+
+    hubConnection.fn._maximizeClientHubInvocation = function (minClientHubInvocation) {
+        return {
+            Hub: minClientHubInvocation.H,
+            Method: minClientHubInvocation.M,
+            Args: minClientHubInvocation.A,
+            State: minClientHubInvocation.S
+        };
+    };
+
+    hubConnection.fn._registerSubscribedHubs = function () {
+        /// <summary>
+        ///     Sets the starting event to loop through the known hubs and register any new hubs
+        ///     that have been added to the proxy.
+        /// </summary>
+        var connection = this;
+
+        if (!connection._subscribedToHubs) {
+            connection._subscribedToHubs = true;
+            connection.starting(function () {
+                // Set the connection's data object with all the hub proxies with active subscriptions.
+                // These proxies will receive notifications from the server.
+                var subscribedHubs = [];
+
+                $.each(connection.proxies, function (key) {
+                    if (this.hasSubscriptions()) {
+                        subscribedHubs.push({ name: key });
+                        connection.log("Client subscribed to hub '" + key + "'.");
+                    }
+                });
+
+                if (subscribedHubs.length === 0) {
+                    connection.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");
+                }
+
+                connection.data = connection.json.stringify(subscribedHubs);
+            });
+        }
+    };
+
+    hubConnection.fn.createHubProxy = function (hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        /// <param name="hubName" type="String">
+        ///     The name of the hub on the server to create the proxy for.
+        /// </param>
+
+        // Normalize the name to lowercase
+        hubName = hubName.toLowerCase();
+
+        var proxy = this.proxies[hubName];
+        if (!proxy) {
+            proxy = hubProxy(this, hubName);
+            this.proxies[hubName] = proxy;
+        }
+
+        this._registerSubscribedHubs();
+
+        return proxy;
+    };
+
+    hubConnection.fn.init.prototype = hubConnection.fn;
+
+    $.hubConnection = hubConnection;
+
+}(window.jQuery, window));
+/* jquery.signalR.version.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+(function ($, undefined) {
+    $.signalR.version = "2.2.2";
+}(window.jQuery));
diff --git a/VueWebApi/Scripts/jquery.signalR-2.2.2.min.js b/VueWebApi/Scripts/jquery.signalR-2.2.2.min.js
new file mode 100644
index 0000000..2ccd39d
--- /dev/null
+++ b/VueWebApi/Scripts/jquery.signalR-2.2.2.min.js
@@ -0,0 +1,9 @@
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+(function(n,t,i){function w(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function b(n){return n==="http:"?80:n==="https:"?443:void 0}function a(n,t){return t.match(/:\d+$/)?t:t+":"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server.  Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if(typeof n!="function")throw new Error(f.nojQuery);var r,h,o=t.document.readyState==="complete",e=n(t),c="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},v=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<arguments.length-1;n++)t=t.replace("{"+n+"}",arguments[n+1]);return t},firefoxMajorVersion:function(n){var t=n.match(/Firefox\/(\d+)/);return!t||!t.length||t.length<2?0:parseInt(t[1],10)},configurePingInterval:function(i){var f=i._.config,e=function(t){n(i).triggerHandler(u.onError,[t])};f&&!i._.pingIntervalId&&f.pingInterval&&(i._.pingIntervalId=t.setInterval(function(){r.transports._logic.pingServer(i).fail(e)},f.pingInterval))}},r.events=u,r.resources=f,r.ajaxDefaults={processData:!0,timeout:null,async:!0,global:!1,cache:!1},r.changeState=s,r.isDisconnecting=y,r.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},r.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"1.5",reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},d,y=a._deferral||n.Deferred(),b=t.document.createElement("a"),k,g;if(a.lastError=null,a._deferral=y,!a.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(v,i),n.type(v.callback)==="function"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind("load",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),b.href=a.url,b.protocol&&b.protocol!==":"?(a.protocol=b.protocol,a.host=b.host):(a.protocol=t.document.location.protocol,a.host=b.host||t.document.location.host),a.baseUrl=a.protocol+"//"+a.host,a.wsProtocol=a.protocol==="https:"?"wss://":"ws://",v.transport==="auto"&&v.jsonp===!0&&(v.transport="longPolling"),a.url.indexOf("//")===0&&(a.url=t.location.protocol+a.url,a.log("Protocol relative URL detected, normalizing it to '"+a.url+"'.")),this.isCrossDomain(a.url)&&(a.log("Auto detected cross domain url."),v.transport==="auto"&&(v.transport=["webSockets","serverSentEvents","longPolling"]),typeof v.withCredentials=="undefined"&&(v.withCredentials=!0),v.jsonp||(v.jsonp=!n.support.cors,v.jsonp&&a.log("Using jsonp because this browser doesn't support CORS.")),a.contentType=r._.defaultContentType),a.withCredentials=v.withCredentials,a.ajaxDataType=v.jsonp?"jsonp":"text",n(a).bind(u.onStart,function(){n.type(h)==="function"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),d=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log("No transports supported by the server were selected."):o===1?a.log("No fallback transports were selected."):a.log("Fallback transports exhausted.");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){d(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var i=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,f=!!a.withCredentials&&i;a.log("The start request succeeded. Transitioning to the connected state.");l(a)&&r.transports._logic.monitorKeepAlive(a);r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log("WARNING! The connection was not in the connecting state.");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind("unload",function(){a.log("Window unloading, stopping the connection.");a.stop(f)});i&&e.bind("beforeunload",function(){t.setTimeout(function(){a.stop(f)},0)})},v)}catch(w){a.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},k=a.url+"/negotiate",g=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),k=r.transports._logic.prepareQueryString(a,k),a.log("Negotiating with '"+k+"'."),a._.negotiateRequest=r.transports._logic.ajax(a,{url:k,error:function(n,t){t!==c?g(n,a):y.reject(r._.error(f.stoppedWhileNegotiating,null,a._.negotiateRequest))},success:function(t){var i,e,h,o=[],s=[];try{i=a._parseResponse(t)}catch(c){g(r._.error(f.errorParsingNegotiateResponse,c),a);return}if(e=a._.keepAliveData,a.appRelativeUrl=i.Url,a.id=i.ConnectionId,a.token=i.ConnectionToken,a.webSocketServerUrl=i.WebSocketServerUrl,a._.pollTimeout=i.ConnectionTimeout*1e3+1e4,a.disconnectTimeout=i.DisconnectTimeout*1e3,a._.totalTransportConnectTimeout=a.transportConnectTimeout+i.TransportConnectTimeout*1e3,i.KeepAliveTimeout?(e.activated=!0,e.timeout=i.KeepAliveTimeout*1e3,e.timeoutWarning=e.timeout*a.keepAliveWarnAt,a._.beatInterval=(e.timeout-e.timeoutWarning)/3):e.activated=!1,a.reconnectWindow=a.disconnectTimeout+(e.timeout||0),!i.ProtocolVersion||i.ProtocolVersion!==a.clientProtocol){h=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,i.ProtocolVersion));n(a).triggerHandler(u.onError,[h]);y.reject(h);return}n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!i.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport==="auto"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);d(o)}}),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind("load",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log("Stopping connection."),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),n(a).unbind(u.onStart),s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out.  Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o="__Start Aborted__",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,t){if(typeof n.transport!="undefined"){t=typeof t=="undefined"?!0:t;var i=e(n,"/abort");u.ajax(n,{url:i,async:t,timeout:1e3,type:"POST"});n.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response==="started"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,r){var f;u.markLastMessage(t);i&&(f=u.maximizePersistentResponse(i),u.updateGroups(t,f.GroupsToken),f.MessageId&&(t.messageId=f.MessageId),f.Messages&&(n.each(f.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,f,r)))},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime()},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if((new Date).getTime()-t._.lastActiveAt>=t.reconnectWindow){var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1}return!0},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new h(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,f=n.signalR.changeState,i=r.transports._logic;r.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=i.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[r._.transportError(r.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=i.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");i.clearReconnectTimeout(e);f(e,r.connectionState.reconnecting,r.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var i;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(i=r._.transportError(r.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(i)||(i&&n(e).triggerHandler(u.onError,[i]),l.reconnect(e)))},e.socket.onmessage=function(t){var r;try{r=e._parseResponse(t.data)}catch(u){i.handleParseFailure(e,t.data,u,s,t);return}r&&(n.isEmptyObject(r)||r.M?i.processMessages(e,r,o):i.triggerReceived(e,r))})},reconnect:function(n){i.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){i.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.documentElement&&t.document.documentElement.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+".  Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+e}function s(n,t,i){for(var f=n.length,u=[],r=0;r<f;r+=1)n.hasOwnProperty(r)&&(u[r]=t.call(i,n[r],r,n));return u}function h(t){return n.isFunction(t)?null:n.type(t)==="undefined"?null:t}function u(n){for(var t in n)if(n.hasOwnProperty(t))return!0;return!1}function f(n,t){var i=n._.invocationCallbacks,r,f;u(i)&&n.log("Clearing hub invocation callbacks with error: "+t+".");n._.invocationCallbackId=0;delete n._.invocationCallbacks;n._.invocationCallbacks={};for(f in i)r=i[f],r.method.call(r.scope,{E:t})}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||"")+"/signalr"),new t.fn.init(i,u)}var e=".hubProxy",o=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i){var u=this,f=u._.callbackMap;return t=t.toLowerCase(),f[t]||(f[t]={}),f[t][i]=function(n,t){i.apply(u,t)},n(u).bind(r(t),f[t][i]),u},off:function(t,i){var e=this,o=e._.callbackMap,f;return t=t.toLowerCase(),f=o[t],f&&(f[i]?(n(e).unbind(r(t),f[i]),delete f[i],u(f)||delete o[t]):i||(n(e).unbind(r(t)),delete o[t])),e},invoke:function(t){var i=this,r=i.connection,e=n.makeArray(arguments).slice(1),c=s(e,h),f={H:i.hubName,M:t,A:c,I:r._.invocationCallbackId},u=n.Deferred(),l=function(f){var e=i._maximizeHubResponse(f),h,s;n.extend(i.state,e.State);e.Progress?u.notifyWith?u.notifyWith(i,[e.Progress.Data]):r._.progressjQueryVersionLogged||(r.log("A hub method invocation progress update was received but the version of jQuery in use ("+n.prototype.jquery+") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),r._.progressjQueryVersionLogged=!0):e.Error?(e.StackTrace&&r.log(e.Error+"\n"+e.StackTrace+"."),h=e.IsHubException?"HubException":"Exception",s=o._.error(e.Error,h),s.data=e.ErrorData,r.log(i.hubName+"."+t+" failed to execute. Error: "+s.message),u.rejectWith(i,[s])):(r.log("Invoked "+i.hubName+"."+t),u.resolveWith(i,[e.Result]))};return r._.invocationCallbacks[r._.invocationCallbackId.toString()]={scope:i,method:l},r._.invocationCallbackId+=1,n.isEmptyObject(i.state)||(f.S=i.state),r.log("Invoking "+i.hubName+"."+t),r.send(f),u.promise()},_maximizeHubResponse:function(n){return{State:n.S,Result:n.R,Progress:n.P?{Id:n.P.I,Data:n.P.D}:null,Id:n.I,IsHubException:n.H,Error:n.E,StackTrace:n.T,ErrorData:n.D}}};i.fn.init.prototype=i.fn;t.fn=t.prototype=n.connection();t.fn.init=function(t,i){var e={qs:null,logging:!1,useDefaultPath:!0},u=this;n.extend(e,i);n.signalR.fn.init.call(u,t,e.qs,e.logging);u.proxies={};u._.invocationCallbackId=0;u._.invocationCallbacks={};u.received(function(t){var f,o,e,i,s,h;t&&(typeof t.P!="undefined"?(e=t.P.I.toString(),i=u._.invocationCallbacks[e],i&&i.method.call(i.scope,t)):typeof t.I!="undefined"?(e=t.I.toString(),i=u._.invocationCallbacks[e],i&&(u._.invocationCallbacks[e]=null,delete u._.invocationCallbacks[e],i.method.call(i.scope,t))):(f=this._maximizeClientHubInvocation(t),u.log("Triggering client hub event '"+f.Method+"' on hub '"+f.Hub+"'."),s=f.Hub.toLowerCase(),h=f.Method.toLowerCase(),o=this.proxies[s],n.extend(o.state,f.State),n(o).triggerHandler(r(h),[f.Args])))});u.error(function(n,t){var i,r;t&&(i=t.I,r=u._.invocationCallbacks[i],r&&(u._.invocationCallbacks[i]=null,delete u._.invocationCallbacks[i],r.method.call(r.scope,{E:n})))});u.reconnecting(function(){u.transport&&u.transport.name==="webSockets"&&f(u,"Connection started reconnecting before invocation result was received.")});u.disconnected(function(){f(u,"Connection was disconnected before invocation result was received.")})};t.fn._maximizeClientHubInvocation=function(n){return{Hub:n.H,Method:n.M,Args:n.A,State:n.S}};t.fn._registerSubscribedHubs=function(){var t=this;t._subscribedToHubs||(t._subscribedToHubs=!0,t.starting(function(){var i=[];n.each(t.proxies,function(n){this.hasSubscriptions()&&(i.push({name:n}),t.log("Client subscribed to hub '"+n+"'."))});i.length===0&&t.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");t.data=t.json.stringify(i)}))};t.fn.createHubProxy=function(n){n=n.toLowerCase();var t=this.proxies[n];return t||(t=i(this,n),this.proxies[n]=t),this._registerSubscribedHubs(),t};t.fn.init.prototype=t.fn;n.hubConnection=t}(window.jQuery,window),function(n){n.signalR.version="2.2.2"}(window.jQuery);
\ No newline at end of file
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index bb499ab..b910693 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -68,6 +68,12 @@
     <Reference Include="log4net, Version=2.0.14.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
       <HintPath>..\packages\log4net.2.0.14\lib\net45\log4net.dll</HintPath>
     </Reference>
+    <Reference Include="Microsoft.AspNet.SignalR.Core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.2.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.AspNet.SignalR.SystemWeb, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.2.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
+    </Reference>
     <Reference Include="Microsoft.AspNetCore.Http.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.AspNetCore.Http.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll</HintPath>
     </Reference>
@@ -90,6 +96,15 @@
     <Reference Include="Microsoft.Net.Http.Headers, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.Net.Http.Headers.2.2.0\lib\netstandard2.0\Microsoft.Net.Http.Headers.dll</HintPath>
     </Reference>
+    <Reference Include="Microsoft.Owin, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Owin.4.0.0\lib\net451\Microsoft.Owin.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Owin.Host.SystemWeb, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.4.0.0\lib\net451\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Owin.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Owin.Security.4.0.0\lib\net451\Microsoft.Owin.Security.dll</HintPath>
+    </Reference>
     <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
@@ -104,6 +119,9 @@
     </Reference>
     <Reference Include="NPOI.OpenXmlFormats, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
       <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OpenXmlFormats.dll</HintPath>
+    </Reference>
+    <Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
+      <HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
     </Reference>
     <Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
       <HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.2\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
@@ -252,6 +270,7 @@
     <Compile Include="App_Start\BundleConfig.cs" />
     <Compile Include="App_Start\FilterConfig.cs" />
     <Compile Include="App_Start\RouteConfig.cs" />
+    <Compile Include="App_Start\Startup.cs" />
     <Compile Include="App_Start\SwaggerConfig.cs" />
     <Compile Include="App_Start\SwaggerControllerDescProvider.cs" />
     <Compile Include="App_Start\WebApiConfig.cs" />
@@ -283,6 +302,7 @@
     <Compile Include="Areas\HelpPage\SampleGeneration\SampleDirection.cs" />
     <Compile Include="Areas\HelpPage\SampleGeneration\TextSample.cs" />
     <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
+    <Compile Include="Hubs\ChatHub.cs" />
     <Compile Include="Controllers\AppDeviceManageController.cs" />
     <Compile Include="Controllers\BasicSettingController.cs" />
     <Compile Include="Controllers\DeviceManagerController.cs" />
@@ -386,6 +406,8 @@
     <Content Include="Global.asax" />
     <Content Include="Grid\grwebapp.js" />
     <Content Include="Grid\webapp-ws-tutorial.htm" />
+    <Content Include="Hubs\HubsMessage1.html" />
+    <Content Include="Hubs\HubsMessage.html" />
     <Content Include="Image\1.png" />
     <Content Include="Image\2.png" />
     <Content Include="Image\3.png" />
@@ -482,6 +504,8 @@
     <Content Include="Scripts\jquery-3.4.1.min.js" />
     <Content Include="Scripts\jquery-3.4.1.slim.js" />
     <Content Include="Scripts\jquery-3.4.1.slim.min.js" />
+    <Content Include="Scripts\jquery.signalR-2.2.2.js" />
+    <Content Include="Scripts\jquery.signalR-2.2.2.min.js" />
     <Content Include="Scripts\modernizr-2.8.3.js" />
     <Content Include="Scripts\swagger_lang.js" />
     <Content Include="Web.config" />
diff --git a/VueWebApi/Web.config b/VueWebApi/Web.config
index bc0b1a5..4cd68b7 100644
--- a/VueWebApi/Web.config
+++ b/VueWebApi/Web.config
@@ -126,6 +126,14 @@
 				<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
 				<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
 			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
 		</assemblyBinding>
 	</runtime>
 	<system.codedom>
diff --git a/VueWebApi/bin/Microsoft.AspNet.SignalR.Core.xml b/VueWebApi/bin/Microsoft.AspNet.SignalR.Core.xml
new file mode 100644
index 0000000..907cc4c
--- /dev/null
+++ b/VueWebApi/bin/Microsoft.AspNet.SignalR.Core.xml
@@ -0,0 +1,3300 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.AspNet.SignalR.Core</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager">
+            <summary>
+            Default <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager"/> class.
+            </summary>
+            <param name="resolver">The <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnectionContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnection(System.Type)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <param name="type">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``2">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IMemoryPool.AllocSegment(System.Int32)">
+            <summary>
+              Acquires a sub-segment of a larger memory allocation. Used for async sends of write-behind
+              buffers to reduce number of array segments pinned
+            </summary>
+            <param name = "minimumSize">The smallest length of the ArraySegment.Count that may be returned</param>
+            <returns>An array segment which is a sub-block of a larger allocation</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IMemoryPool.FreeSegment(System.ArraySegment{System.Byte})">
+            <summary>
+              Frees a sub-segment of a larger memory allocation produced by AllocSegment. The original ArraySegment
+              must be frees exactly once and must have the same offset and count that was returned by the Alloc.
+              If a segment is not freed it won't be re-used and has the same effect as a memory leak, so callers must be
+              implemented exactly correctly.
+            </summary>
+            <param name = "segment">The sub-block that was originally returned by a call to AllocSegment.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter">
+            <summary>
+            Implemented on anything that has the ability to write raw binary data
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager">
+            <summary>
+            Provides access to performance counters.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Initializes the performance counters.
+            </summary>
+            <param name="instanceName">The host instance name.</param>
+            <param name="hostShutdownToken">The CancellationToken representing the host shutdown.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+            <summary>
+            Loads a performance counter.
+            </summary>
+            <param name="categoryName">The category name.</param>
+            <param name="counterName">The counter name.</param>
+            <param name="instanceName">The instance name.</param>
+            <param name="isReadOnly">Whether the counter is read-only.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsConnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Connect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsReconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Reconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsDisconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Disconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentForeverFrame">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using ForeverFrame transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentLongPolling">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using LongPolling transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentServerSentEvents">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using ServerSentEvents transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentWebSockets">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using WebSockets transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrent">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by connections (server to client) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages sent by connections (client to server) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by subscribers since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by a subscribers per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by the scaleout message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages published to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages published to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersCurrent">
+            <summary>
+            Gets the performance counter representing the current number of subscribers to the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersTotal">
+            <summary>
+            Gets the performance counter representing the total number of subscribers to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersPerSec">
+            <summary>
+            Gets the performance counter representing the number of new subscribers to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusAllocatedWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers allocated to deliver messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusBusyWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers currently busy delivering messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusTopicsCurrent">
+            <summary>
+            Gets the performance counter representing representing the current number of topics in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllTotal">
+            <summary>
+            Gets the performance counter representing the total number of all errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllPerSec">
+            <summary>
+            Gets the performance counter representing the number of all errors processed per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub resolution errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub resolution errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub invocation errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub invocation errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportTotal">
+            <summary>
+            Gets the performance counter representing the total number of transport errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportPerSec">
+            <summary>
+            Gets the performance counter representing the number of transport errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountTotal">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountOpen">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the open state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountBuffering">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the buffering state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsTotal">
+            <summary>
+            Gets the performance counter representing the total number of scaleout errors since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsPerSec">
+            <summary>
+            Gets the performance counter representing the number of scaleout errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutSendQueueLength">
+            <summary>
+            Gets the performance counter representing the current scaleout send queue length.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager">
+            <summary>
+            Manages performance counters using Windows performance counters.
+            </summary>
+        </member>
+        <member name="F:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.CategoryName">
+            <summary>
+            The performance counter category name for SignalR counters.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+            <summary>
+            Creates a new instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsConnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Connect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsReconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Reconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsDisconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Disconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentForeverFrame">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the ForeverFrame transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentLongPolling">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the LongPolling transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentServerSentEvents">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the ServerSentEvents transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentWebSockets">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the WebSockets transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrent">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the toal number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages sent by connections (client to server) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by connections (server to client) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages sent by connections (client to server) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by subscribers since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by a subscribers per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by the scaleout message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages published to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages published to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersCurrent">
+            <summary>
+            Gets the performance counter representing the current number of subscribers to the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersTotal">
+            <summary>
+            Gets the performance counter representing the total number of subscribers to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersPerSec">
+            <summary>
+            Gets the performance counter representing the number of new subscribers to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusAllocatedWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers allocated to deliver messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusBusyWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers currently busy delivering messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusTopicsCurrent">
+            <summary>
+            Gets the performance counter representing representing the current number of topics in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllTotal">
+            <summary>
+            Gets the performance counter representing the total number of all errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllPerSec">
+            <summary>
+            Gets the performance counter representing the number of all errors processed per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub resolution errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub resolution errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub invocation errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub invocation errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportTotal">
+            <summary>
+            Gets the performance counter representing the total number of transport errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportPerSec">
+            <summary>
+            Gets the performance counter representing the number of transport errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountTotal">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountOpen">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the open state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountBuffering">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the buffering state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsTotal">
+            <summary>
+            Gets the performance counter representing the total number of scaleout errors since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsPerSec">
+            <summary>
+            Gets the performance counter representing the number of scaleout errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutSendQueueLength">
+            <summary>
+            Gets the performance counter representing the current scaleout send queue length.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Initializes the performance counters.
+            </summary>
+            <param name="instanceName">The host instance name.</param>
+            <param name="hostShutdownToken">The CancellationToken representing the host shutdown.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Disposer">
+            <summary>
+            Helper class to manage disposing a resource at an arbirtary time
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.SafeCancellationTokenSource">
+            <summary>
+            Thread safe cancellation token source. Allows the following:
+            - Cancel will no-op if the token is disposed.
+            - Dispose may be called after Cancel.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager">
+            <summary>
+            Provides access to hubs and persistent connections references.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``2">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetConnectionContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)">
+            <summary>
+            Minifies a string in a way that can be reversed by this instance of <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/>.
+            </summary>
+            <param name="value">The string to be minified</param>
+            <returns>A minified representation of the <paramref name="value"/> without the following characters:,|\</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)">
+            <summary>
+            Reverses a <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> call that was executed at least once previously on this instance of
+            <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/> without any subsequent calls to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)"/> sharing the
+            same argument as the <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> call that returned <paramref name="value"/>.
+            </summary>
+            <param name="value">
+            A minified string that was returned by a previous call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/>.
+            </param>
+            <returns>
+            The argument of all previous calls to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> that returned <paramref name="value"/>.
+            If every call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> on this instance of <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/> has never
+            returned <paramref name="value"/> or if the most recent call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> that did
+            return <paramref name="value"/> was followed by a call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)"/> sharing 
+            the same argument, <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)"/> may return null but must not throw.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)">
+            <summary>
+            A call to this function indicates that any future attempt to unminify strings that were previously minified
+            from <paramref name="value"/> may be met with a null return value. This provides an opportunity clean up
+            any internal data structures that reference <paramref name="value"/>.
+            </summary>
+            <param name="value">The string that may have previously have been minified.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.UrlDecoder">
+            <summary>
+            Helpers for decoding URI query components.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber">
+            <summary>
+            A singleton that subscribes to all ACKs sent over the
+            <see cref="T:Microsoft.AspNet.SignalR.Messaging.IMessageBus"/> and
+            triggers any corresponding ACKs on the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.KeepAliveTimeout(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The amount of time the client should wait without seeing a keep alive before trying to reconnect.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.HeartbeatInterval(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The interval between successively checking connection states.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.TopicTtl(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The amount of time a Topic should stay in memory after its last subscriber is removed.
+            </summary>
+            <param name="config"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager">
+            <summary>
+            Provides access to server configuration.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.TransportConnectTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time a client should allow to connect before falling
+            back to another transport or failing.
+            The default value is 5 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.ConnectionTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time to leave a connection open before timing out.
+            The default value is 110 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time to wait after a connection goes away before raising the disconnect event.
+            The default value is 30 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.KeepAlive">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time between send keep alive messages.
+            If enabled, this value must be at least two seconds. Set to null to disable.
+            The default value is 10 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DefaultMessageBufferSize">
+            <summary>
+            Gets or sets the number of messages to buffer for a specific signal.
+            The default value is 1000.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.MaxIncomingWebSocketMessageSize">
+            <summary>
+            Gets or sets the maximum size in bytes of messages sent from client to the server via WebSockets.
+            Set to null to disable this limit.
+            The default value is 65536 or 64 KB.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.LongPollDelay">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing tell the client to wait before restablishing a
+            long poll connection after data is sent from the server.
+            The default value is 0.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.MaxScaleoutMappingsPerStream">
+            <summary>
+            Gets or sets the maximum number of scaleout mappings per scaleout stream stored on the server.
+            The default value is 65535
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.Resolver">
+            <summary>
+            The dependency resolver to use for the hub connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.EnableJSONP">
+            <summary>
+            Gets of sets a boolean that determines if JSONP is enabled.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.IResponse">
+            <summary>
+            Represents a connection to the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.CancellationToken">
+            <summary>
+            Gets a cancellation token that represents the client's lifetime.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.StatusCode">
+            <summary>
+            Gets or sets the status code of the response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.ContentType">
+            <summary>
+            Gets or sets the content type of the response.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Write(System.ArraySegment{System.Byte})">
+            <summary>
+            Writes buffered data.
+            </summary>
+            <param name="data">The data to write to the buffer.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Flush">
+            <summary>
+            Flushes the buffered response to the client.
+            </summary>
+            <returns>A task that represents when the data has been flushed.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.IWebSocket">
+            <summary>
+            Represents a web socket.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnMessage">
+            <summary>
+            Invoked when data is sent over the websocket
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnClose">
+            <summary>
+            Invoked when the websocket closes
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnError">
+            <summary>
+            Invoked when there is an error
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IWebSocket.Send(System.ArraySegment{System.Byte})">
+            <summary>
+            Sends data over the websocket.
+            </summary>
+            <param name="message">The value to send.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that represents the send is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions">
+            <summary>
+            Extension methods for <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions.End(Microsoft.AspNet.SignalR.Hosting.IResponse,System.String)">
+            <summary>
+            Closes the connection to a client with optional data.
+            </summary>
+            <param name="response">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse"/>.</param>
+            <param name="data">The data to write to the connection.</param>
+            <returns>A task that represents when the connection is closed.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory">
+            <summary>
+            Responsible for creating <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> instances.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Creates a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory"/> class.
+            </summary>
+            <param name="resolver">The dependency resolver to use for when creating the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.CreateInstance(System.Type)">
+            <summary>
+            Creates an instance of the specified type using the dependency resolver or the type's default constructor.
+            </summary>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to create.</param>
+            <returns>An instance of a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>. </returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubBase">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Microsoft#AspNet#SignalR#Hubs#IHub#Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Context">
+            <summary>
+            Provides information about the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Groups">
+            <summary>
+            The group manager for this hub instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnDisconnected(System.Boolean)">
+            <summary>
+            Called when a connection disconnects from this hub gracefully or due to a timeout.
+            </summary>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnConnected">
+            <summary>
+            Called when the connection connects to this hub instance.
+            </summary>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnReconnected">
+            <summary>
+            Called when the connection reconnects to this hub instance.
+            </summary>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.AllExcept(System.String[])">
+            <summary>
+            Returns a dynamic representation of all clients except the calling client ones specified.
+            </summary>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of all clients except the calling client ones specified.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Client(System.String)">
+            <summary>
+            Returns a dynamic representation of the connection with the specified connectionid.
+            </summary>
+            <param name="connectionId">The connection id</param>
+            <returns>A dynamic representation of the specified client.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Clients(System.Collections.Generic.IList{System.String})">
+            <summary>
+            Returns a dynamic representation of the connections with the specified connectionids.
+            </summary>
+            <param name="connectionIds">The connection ids.</param>
+            <returns>A dynamic representation of the specified clients.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Group(System.String,System.String[])">
+            <summary>
+            Returns a dynamic representation of the specified group.
+            </summary>
+            <param name="groupName">The name of the group</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of the specified group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Groups(System.Collections.Generic.IList{System.String},System.String[])">
+            <summary>
+            Returns a dynamic representation of the specified groups.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of the specified groups.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext`1">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Error">
+            <summary>
+            The exception to be sent to the calling client.
+            This will be overridden by a generic Exception unless Error is a <see cref="T:Microsoft.AspNet.SignalR.HubException"/>
+            or <see cref="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors"/> is set to true.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Result">
+            <summary>
+            The value to return in lieu of throwing Error. Whenever Result is set, Error will be set to null.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext`1">
+            <summary>
+            Encapsulates all information about an individual SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext">
+            <summary>
+            Encapsulates all information about an individual SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,Microsoft.AspNet.SignalR.IConnection,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>.
+            </summary>
+            <param name="pipelineInvoker">The pipeline invoker.</param>
+            <param name="connection">The connection.</param>
+            <param name="hubName">The hub name.</param>
+            <param name="connectionId">The connection id.</param>
+            <param name="tracker">The connection hub state.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Others">
+            <summary>
+            All connected clients except the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller">
+            <summary>
+            Represents the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.CallerState">
+            <summary>
+            Represents the calling client's state. This should be used when the state is innaccessible
+            via the <see cref="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller"/> property (such as in VB.NET or in typed Hubs).
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroup(System.String)">
+            <summary>
+            Returns a dynamic representation of all clients in a group except the calling client.
+            </summary>
+            <param name="groupName">The name of the group</param>
+            <returns>A dynamic representation of all clients in a group except the calling client.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})">
+            <summary>
+            Returns a dynamic representation of all clients in the specified groups except the calling client.
+            </summary>
+            <param name="groupNames">The name of the groups</param>
+            <returns>A dynamic representation of all clients in a group except the calling client.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule">
+             <summary>
+             This module is added the the HubPipeline by default.
+             
+             Hub level attributes that implement <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/> such as <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute"/> are applied to determine
+             whether to allow potential clients to receive messages sent from that hub using a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubContext"/> or a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>
+             All applicable hub attributes must allow hub connection for the connection to be authorized.
+             
+             Hub and method level attributes that implement <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/> such as <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute"/> are applied
+             to determine whether to allow callers to invoke hub methods.
+             All applicable hub level AND method level attributes must allow hub method invocation for the invocation to be authorized.
+            
+             Optionally, this module may be instantiated with <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/> and <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/>
+             authorizers that will be applied globally to all hubs and hub methods.
+             </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation">
+            <summary>
+            A description of a client-side hub method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Hub">
+            <summary>
+            The name of the hub that the method being invoked belongs to.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Method">
+            <summary>
+            The name of the client-side hub method be invoked.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Args">
+            <summary>
+            The argument list the client-side hub method will be called with.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.State">
+            <summary>
+            A key-value store representing the hub state on the server that has changed since the last time the hub
+            state was sent to the client.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule">
+            <summary>
+            Common base class to simplify the implementation of IHubPipelineModules.
+            A module can intercept and customize various stages of hub processing such as connecting, reconnecting, disconnecting,
+            invoking server-side hub methods, invoking client-side hub methods, authorizing hub clients and rejoining hub groups.
+            A module can be activated by calling <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/>.
+            The combined modules added to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> are invoked via the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/>
+            interface.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+            <summary>
+            Wraps a function that invokes a server-side hub method. Even if a client has not been authorized to connect
+            to a hub, it will still be authorized to invoke server-side methods on that hub unless it is prevented in
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not executing the invoke parameter.
+            </summary>
+            <param name="invoke">A function that invokes a server-side hub method.</param>
+            <returns>A wrapped function that invokes a server-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnConnected method being invoked.
+            </summary>
+            <param name="connect">A function to be called when a client connects to a hub.</param>
+            <returns>A wrapped function to be called when a client connects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnReconnected method being invoked.
+            </summary>
+            <param name="reconnect">A function to be called when a client reconnects to a hub.</param>
+            <returns>A wrapped function to be called when a client reconnects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called  when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnDisconnected method being invoked.
+            </summary>
+            <param name="disconnect">
+            <para>A task-returning function to be called when a client disconnects from a hub.</para>
+            <para>This function takes two parameters:</para>
+            <para>1. The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> is being disconnected from.</para>
+            <para>2. A boolean, stopCalled, that is true if stop was called on the client and false if the client timed out.
+                     Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.</para>
+            </param>
+            <returns>A wrapped function to be called when a client disconnects from a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+            <summary>
+            Wraps a function to be called before a client subscribes to signals belonging to the hub described by the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>. By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if the client is authorized to subscribe to method invocations for the
+            described hub.
+            The function returns true if the client is authorized to subscribe to client-side hub method
+            invocations; false, otherwise.
+            </summary>
+            <param name="authorizeConnect">
+            A function that dictates whether or not the client is authorized to connect to the described Hub.
+            </param>
+            <returns>
+            A wrapped function that dictates whether or not the client is authorized to connect to the described Hub.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+            <summary>
+            Wraps a function that determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>
+            the client should be allowed to rejoin.
+            By default, clients will rejoin all the groups they were in prior to reconnecting.
+            </summary>
+            <param name="rejoiningGroups">A function that determines which groups the client should be allowed to rejoin.</param>
+            <returns>A wrapped function that determines which groups the client should be allowed to rejoin.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that invokes a client-side hub method.
+            </summary>
+            <param name="send">A function that invokes a client-side hub method.</param>
+            <returns>A wrapped function that invokes a client-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeAuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            This method is called before the AuthorizeConnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>
+            are executed. If this returns false, then those later-added modules will not run and the client will not be allowed
+            to subscribe to client-side invocations of methods belonging to the hub defined by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>.
+            </summary>
+            <param name="hubDescriptor">A description of the hub the client is trying to subscribe to.</param>
+            <param name="request">The connect request of the client trying to subscribe to the hub.</param>
+            <returns>true, if the client is authorized to connect to the hub, false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called before the connect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has connected to.</param>
+            <returns>
+            true, if the connect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called after the connect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has connected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called before the reconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has reconnected to.</param>
+            <returns>
+            true, if the reconnect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called after the reconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has reconnected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            This method is called before the outgoing components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the client-side hub method invocation(s) will not
+            be executed.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+            <returns>
+            true, if the outgoing components of later added modules and the client-side hub method invocation(s) should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            This method is called after the outgoing components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. This does not mean that all the clients have received the hub method invocation, but it does indicate indicate
+            a hub invocation message has successfully been published to a message bus.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            This method is called before the disconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+            <returns>
+            true, if the disconnect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            This method is called after the disconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This method is called before the incoming components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the server-side hub method invocation will not
+            be executed. Even if a client has not been authorized to connect to a hub, it will still be authorized to invoke
+            server-side methods on that hub unless it is prevented in <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not
+            executing the invoke parameter or prevented in <see cref="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)"/> by returning false.
+            </summary>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>
+            true, if the incoming components of later added modules and the server-side hub method invocation should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterIncoming(System.Object,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This method is called after the incoming components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>
+            and the server-side hub method have completed execution.
+            </summary>
+            <param name="result">The return value of the server-side hub method</param>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>The possibly new or updated return value of the server-side hub method</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnIncomingError(Microsoft.AspNet.SignalR.Hubs.ExceptionContext,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This is called when an uncaught exception is thrown by a server-side hub method or the incoming component of a
+            module added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>. Observing the exception using this method will not prevent
+            it from bubbling up to other modules.
+            </summary>
+            <param name="exceptionContext">
+            Represents the exception that was thrown during the server-side invocation.
+            It is possible to change the error or set a result using this context.
+            </param>
+            <param name="invokerContext">A description of the server-side hub method invocation.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection">
+            <summary>
+            Interface to be implemented by <see cref="T:System.Attribute"/>s that can authorize client to connect to a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Given a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext"/>, determine whether client is authorized to connect to <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <param name="hubDescriptor">Description of the hub client is attempting to connect to.</param>
+            <param name="request">The connection request from the client.</param>
+            <returns>true if the caller is authorized to connect to the hub; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation">
+            <summary>
+            Interface to be implemented by <see cref="T:System.Attribute"/>s that can authorize the invocation of <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> methods.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+            <summary>
+            Given a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/>, determine whether client is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method.
+            </summary>
+            <param name="hubIncomingInvokerContext">An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/> providing details regarding the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method invocation.</param>
+            <param name="appliesToMethod">Indicates whether the interface instance is an attribute applied directly to a method.</param>
+            <returns>true if the caller is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext">
+            <summary>
+            A description of a client-side hub method invocation originating from the server.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Connection">
+            <summary>
+            The <see cref="T:Microsoft.AspNet.SignalR.IConnection"/>, if any, corresponding to the client that invoked the server-side hub method
+            that is invoking the client-side hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Invocation">
+            <summary>
+            A description of the method call to be made on the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal">
+            <summary>
+            The signal (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that
+            receive the method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signals">
+            <summary>
+            The signals (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that
+            receive the method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.ExcludedSignals">
+            <summary>
+            The signals (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that should
+            not receive the method invocation regardless of the <see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal"/>. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker">
+            <summary>
+            Implementations of this interface are responsible for executing operation required to complete various stages
+            hub processing such as connecting, reconnecting, disconnecting, invoking server-side hub methods, invoking
+            client-side hub methods, authorizing hub clients and rejoining hub groups.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Invoke(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            Invokes a server-side hub method.
+            </summary>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>An asynchronous operation giving the return value of the server-side hub method invocation.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Send(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            Invokes a client-side hub method.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Connect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            To be called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnConnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client is connected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Reconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            To be called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnReconnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client is reconnected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Disconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            To be called when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnDisconnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.AuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            To be called before a client subscribes to signals belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>.
+            By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if
+            the client is authorized to subscribe to method invocations for the described hub.
+            </summary>
+            <param name="hubDescriptor">A description of the hub the client is attempting to connect to.</param>
+            <param name="request">
+            The connect request being made by the client which should include the client's
+            <see cref="T:System.Security.Principal.IPrincipal"/> User.
+            </param>
+            <returns>true, if the client is authorized to subscribe to client-side hub method invocations; false, otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.RejoiningGroups(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String})">
+            <summary>
+            This method determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/> the client should be
+            allowed to rejoin.
+            By default, clients that are reconnecting to the server will be removed from all groups they may have previously been a member of,
+            because untrusted clients may claim to be a member of groups they were never authorized to join.
+            </summary>
+            <param name="hubDescriptor">A description of the hub for which the client is attempting to rejoin groups.</param>
+            <param name="request">The reconnect request being made by the client that is attempting to rejoin groups.</param>
+            <param name="groups">
+            The list of groups belonging to the relevant hub that the client claims to have been a member of before the reconnect.
+            </param>
+            <returns>A list of groups the client is allowed to rejoin.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubResponse">
+            <summary>
+            The response returned from an incoming hub request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.State">
+            <summary>
+            The changes made the the round tripped state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Result">
+            <summary>
+            The result of the invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Id">
+            <summary>
+            The id of the operation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Progress">
+            <summary>
+            The progress update of the invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.IsHubException">
+            <summary>
+            Indicates whether the Error is a see <see cref="T:Microsoft.AspNet.SignalR.HubException"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Error">
+            <summary>
+            The exception that occurs as a result of invoking the hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.StackTrace">
+            <summary>
+            The stack trace of the exception that occurs as a result of invoking the hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.ErrorData">
+            <summary>
+            Extra error data contained in the <see cref="T:Microsoft.AspNet.SignalR.HubException"/>
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy">
+            <summary>
+            A server side proxy for the client side hub.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IClientProxy.Invoke(System.String,System.Object[])">
+            <summary>
+            Invokes a method on the connection(s) represented by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy"/> instance.
+            </summary>
+            <param name="method">name of the method to invoke</param>
+            <param name="args">argumetns to pass to the client</param>
+            <returns>A task that represents when the data has been sent to the client.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser">
+            <summary>
+            Handles parsing incoming requests through the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser.Parse(System.String,Newtonsoft.Json.JsonSerializer)">
+            <summary>
+            Parses the incoming hub payload into a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest"/>.
+            </summary>
+            <param name="data">The raw hub payload.</param>
+            <param name="serializer">The JsonSerializer used to parse the data.</param>
+            <returns>The resulting <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest"/>.</returns>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.Name">
+            <summary>
+            Name of Descriptor.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.NameSpecified">
+            <summary>
+            Flags whether the name was specified.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker">
+            <summary>
+            A change tracking dictionary.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext">
+            <summary>
+            A description of a server-side hub method invocation originating from a client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Hub">
+            <summary>
+            A hub instance that contains the invoked method as a member.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.MethodDescriptor">
+            <summary>
+            A description of the method being invoked by the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Args">
+            <summary>
+            The arguments to be passed to the invoked method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.StateTracker">
+            <summary>
+            A key-value store representing the hub state on the client at the time of the invocation.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline">
+            <summary>
+            A collection of modules that can intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing
+            hub clients and rejoining hub groups.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)">
+            <summary>
+            Adds an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule"/> to the hub pipeline. Modules added to the pipeline first will wrap
+            modules that are added to the pipeline later. All modules must be added to the pipeline before any methods
+            on the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/> are invoked.
+            </summary>
+            <param name="pipelineModule">
+            A module that may intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing
+            hub clients and rejoining hub groups.
+            </param>
+            <returns>
+            The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> itself with the newly added module allowing
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/> calls to be chained.
+            This method mutates the pipeline it is invoked on so it is not necessary to store its result.
+            </returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule">
+            <summary>
+            An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule"/> can intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing hub
+            clients and rejoining hub groups.
+            Modules can be be activated by calling <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/>.
+            The combined modules added to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> are invoked via the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/>
+            interface.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+            <summary>
+            Wraps a function that invokes a server-side hub method. Even if a client has not been authorized to connect
+            to a hub, it will still be authorized to invoke server-side methods on that hub unless it is prevented in
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not executing the invoke parameter.
+            </summary>
+            <param name="invoke">A function that invokes a server-side hub method.</param>
+            <returns>A wrapped function that invokes a server-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that invokes a client-side hub method.
+            </summary>
+            <param name="send">A function that invokes a client-side hub method.</param>
+            <returns>A wrapped function that invokes a client-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnConnected method being invoked.
+            </summary>
+            <param name="connect">A function to be called when a client connects to a hub.</param>
+            <returns>A wrapped function to be called when a client connects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnReconnected method being invoked.
+            </summary>
+            <param name="reconnect">A function to be called when a client reconnects to a hub.</param>
+            <returns>A wrapped function to be called when a client reconnects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called  when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnDisconnected method being invoked.
+            </summary>
+            <param name="disconnect">
+            <para>A task-returning function to be called when a client disconnects from a hub.</para>
+            <para>This function takes two parameters:</para>
+            <para>1. The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> is being disconnected from.</para>
+            <para>2. A boolean, stopCalled, that is true if stop was called on the client and false if the client timed out.
+                     Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.</para>
+            </param>
+            <returns>A wrapped function to be called when a client disconnects from a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+            <summary>
+            Wraps a function to be called before a client subscribes to signals belonging to the hub described by the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>. By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if the client is authorized to subscribe to method invocations for the
+            described hub.
+            The function returns true if the client is authorized to subscribe to client-side hub method
+            invocations; false, otherwise.
+            </summary>
+            <param name="authorizeConnect">
+            A function that dictates whether or not the client is authorized to connect to the described Hub.
+            </param>
+            <returns>
+            A wrapped function that dictates whether or not the client is authorized to connect to the described Hub.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+            <summary>
+            Wraps a function that determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>
+            the client should be allowed to rejoin.
+            By default, clients will rejoin all the groups they were in prior to reconnecting.
+            </summary>
+            <param name="rejoiningGroups">A function that determines which groups the client should be allowed to rejoin.</param>
+            <returns>A wrapped function that determines which groups the client should be allowed to rejoin.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveParameter(Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor,Microsoft.AspNet.SignalR.Json.IJsonValue)">
+            <summary>
+            Resolves a parameter value based on the provided object.
+            </summary>
+            <param name="descriptor">Parameter descriptor.</param>
+            <param name="value">Value to resolve the parameter value from.</param>
+            <returns>The parameter value.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Resolves method parameter values based on provided objects.
+            </summary>
+            <param name="method">Method descriptor.</param>
+            <param name="values">List of values to resolve parameter values from.</param>
+            <returns>Array of parameter values.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IParameterResolver">
+            <summary>
+            Describes a parameter resolver for resolving parameter-matching values based on provided information.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Resolves method parameter values based on provided objects.
+            </summary>
+            <param name="method">Method descriptor.</param>
+            <param name="values">List of values to resolve parameter values from.</param>
+            <returns>Array of parameter values.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor">
+            <summary>
+            Holds information about a single hub method parameter.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.Name">
+            <summary>
+            Parameter name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.ParameterType">
+            <summary>
+            Parameter type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.FetchMethodsFor(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Retrieves an existing dictionary of all available methods for a given hub from cache.
+            If cache entry does not exist - it is created automatically by BuildMethodCacheFor.
+            </summary>
+            <param name="hub"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.BuildMethodCacheFor(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Builds a dictionary of all possible methods on a given hub.
+            Single entry contains a collection of available overloads for a given method name (key).
+            This dictionary is being cached afterwards.
+            </summary>
+            <param name="hub">Hub to build cache for</param>
+            <returns>Dictionary of available methods</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Searches the specified <paramref name="hub">Hub</paramref> for the specified <paramref name="method"/>.
+            </summary>
+            <remarks>
+            In the case that there are multiple overloads of the specified <paramref name="method"/>, the <paramref name="parameters">parameter set</paramref> helps determine exactly which instance of the overload should be resolved. 
+            If there are multiple overloads found with the same number of matching parameters, none of the methods will be returned because it is not possible to determine which overload of the method was intended to be resolved.
+            </remarks>
+            <param name="hub">Hub to search for the specified <paramref name="method"/> on.</param>
+            <param name="method">The method name to search for.</param>
+            <param name="descriptor">If successful, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor"/> that was resolved.</param>
+            <param name="parameters">The set of parameters that will be used to help locate a specific overload of the specified <paramref name="method"/>.</param>
+            <returns>True if the method matching the name/parameter set is found on the hub, otherwise false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor">
+            <summary>
+            Holds information about a single hub.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.HubType">
+            <summary>
+            Hub type.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider">
+            <summary>
+            Describes a hub method provider that builds a collection of available methods on a given hub.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Retrieve all methods on a given hub.
+            </summary>
+            <param name="hub">Hub descriptor object.</param>
+            <returns>Available methods.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Tries to retrieve a method.
+            </summary>
+            <param name="hub">Hub descriptor object</param>
+            <param name="method">Name of the method.</param>
+            <param name="descriptor">Descriptor of the method, if found. Null otherwise.</param>
+            <param name="parameters">Method parameters to match.</param>
+            <returns>True, if a method has been found.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubManager">
+            <summary>
+            Describes a hub manager - main point in the whole hub and method lookup process.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHub(System.String)">
+            <summary>
+            Retrieves a single hub descriptor.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <returns>Hub descriptor, if found. Null, otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+            <summary>
+            Retrieves all available hubs matching the given predicate.
+            </summary>
+            <returns>List of hub descriptors.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHub(System.String)">
+            <summary>
+            Resolves a given hub name to a concrete object.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <returns>Hub implementation instance, if found. Null otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHubs">
+            <summary>
+            Resolves all available hubs to their concrete objects.
+            </summary>
+            <returns>List of hub instances.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Retrieves a method with a given name on a given hub.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <param name="method">Name of the method to find.</param>
+            <param name="parameters">Method parameters to match.</param>
+            <returns>Descriptor of the method, if found. Null otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+            <summary>
+            Gets all methods available to call on a given hub.
+            </summary>
+            <param name="hubName">Name of the hub,</param>
+            <param name="predicate">Optional predicate for filtering results.</param>
+            <returns>List of available methods.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor">
+            <summary>
+            Holds information about a single hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.ReturnType">
+            <summary>
+            The return type of this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Hub">
+            <summary>
+            Hub descriptor object, target to this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Parameters">
+            <summary>
+            Available method parameters.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Invoker">
+            <summary>
+            Method invocation delegate.
+            Takes a target hub and an array of invocation arguments as it's arguments.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Attributes">
+            <summary>
+            Attributes attached to this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Context">
+            <summary>
+            Gets a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext"/>. Which contains information about the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected">
+            <summary>
+            Called when a new connection is made to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected">
+            <summary>
+            Called when a connection reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> after a timeout.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)">
+            <summary>
+            Called when a connection disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> gracefully or due to a timeout.
+            </summary>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.ConnectionId">
+            <summary>
+            Gets the connection id of the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.RequestCookies">
+            <summary>
+            Gets the cookies for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Headers">
+            <summary>
+            Gets the headers for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.QueryString">
+            <summary>
+            Gets the querystring for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.User">
+            <summary>
+            Gets the <see cref="T:System.Security.Principal.IPrincipal"/> for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Request">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current HTTP request.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.#ctor">
+            <summary>
+            This constructor is only intended to enable mocking of the class. Use of this constructor 
+            for other purposes may result in unexpected behavior.   
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher">
+            <summary>
+            Handles all communication over the hubs persistent connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.#ctor(Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes an instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> class.
+            </summary>
+            <param name="configuration">Configuration settings determining whether to enable JS proxies and provide clients with detailed hub errors.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+            <summary>
+            Processes the hub's incoming method calls.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider">
+            <summary>
+            Describes hub descriptor provider, which provides information about available hubs.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.GetHubs">
+            <summary>
+            Retrieve all avaiable hubs.
+            </summary>
+            <returns>Collection of hub descriptors.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+            <summary>
+            Tries to retrieve hub with a given name.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <param name="descriptor">Retrieved descriptor object.</param>
+            <returns>True, if hub has been found</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hub`1">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hub`1.Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableJavaScriptProxies">
+            <summary>
+            Determines whether JavaScript proxies for the server-side hubs should be auto generated at {Path}/hubs or {Path}/js.
+            Defaults to true.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors">
+            <summary>
+            Determines whether detailed exceptions thrown in Hub methods get reported back the invoking client.
+            Defaults to false.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IHubContext">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext.Clients">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.ConnectionMessage">
+            <summary>
+            A message sent to one more connections.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signal">
+            <summary>
+            The signal to this message should be sent to. Connections subscribed to this signal
+            will receive the message payload.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signals">
+            <summary>
+            A list of signals this message should be delivered to. If this is used
+            the Signal cannot be used.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Value">
+            <summary>
+            The payload of the message.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.ExcludedSignals">
+            <summary>
+            Represents a list of signals that should be used to filter what connections
+            receive this message.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage"/> class.
+            </summary>
+            <param name="signal">The signal</param>
+            <param name="value">The payload of the message</param>
+            <param name="excludedSignals">The signals to exclude.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.GlobalHost">
+            <summary>
+            Provides access to default host information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver">
+            <summary>
+            Gets or sets the the default <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.Configuration">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.TraceManager">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.HubPipeline">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IRequest">
+            <summary>
+            Represents a SignalR request
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Url">
+            <summary>
+            Gets the url for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.LocalPath">
+            <summary>
+            The local path part of the url
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.QueryString">
+            <summary>
+            Gets the querystring for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Headers">
+            <summary>
+            Gets the headers for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Cookies">
+            <summary>
+            Gets the cookies for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.User">
+            <summary>
+            Gets security information for the current HTTP request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Environment">
+            <summary>
+            Gets the owin environment
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IRequest.ReadForm">
+            <summary>
+            Reads the form of the http request
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IUntrackedDisposable">
+            <summary>
+            This marker interface can be used in lieu of IDisposable in order to indicate to the dependency resolver that 
+            it should not retain/track references nor invoke Dispose on instances of the resolved type.
+            This is useful for transient types that are created by the dependency resolver, but are short-lived and will
+            be Disposed by some other means outside of the resolver.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.SipHashBasedDictionaryConverter">
+            <summary>
+            A converter for dictionaries that uses a SipHash comparer
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.IJsonValue">
+            <summary>
+            Represents a JSON value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.ConvertTo(System.Type)">
+            <summary>
+            Converts the parameter value to the specified <see cref="T:System.Type"/>.
+            </summary>
+            <param name="type">The <see cref="T:System.Type"/> to convert the parameter to.</param>
+            <returns>The converted parameter value.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.CanConvertTo(System.Type)">
+            <summary>
+            Determines if the parameter can be converted to the specified <see cref="T:System.Type"/>.
+            </summary>
+            <param name="type">The <see cref="T:System.Type"/> to check.</param>
+            <returns>True if the parameter can be converted to the specified <see cref="T:System.Type"/>, false otherwise.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.IJsonWritable">
+            <summary>
+            Implementations handle their own serialization to JSON.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonWritable.WriteJson(System.IO.TextWriter)">
+            <summary>
+            Serializes itself to JSON via a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> that receives the JSON serialized object.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JRawValue">
+            <summary>
+            An implementation of IJsonValue over JSON.NET
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions">
+            <summary>
+            Extensions for <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.String)">
+            <summary>
+            Deserializes the JSON to a .NET object.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <typeparam name="T">The <see cref="T:System.Type"/> of object being deserialized.</typeparam>
+            <param name="json">The JSON to deserialize</param>
+            <returns>The deserialized object from the JSON string.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.ArraySegment{System.Byte},System.Text.Encoding)">
+            <summary>
+            Deserializes the JSON to a .NET object.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <typeparam name="T">The <see cref="T:System.Type"/> of object being deserialized.</typeparam>
+            <param name="jsonBuffer">The JSON buffer to deserialize</param>
+            <param name="encoding">The encoding to use.</param>
+            <returns>The deserialized object from the JSON string.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Serialize(Newtonsoft.Json.JsonSerializer,System.Object,System.IO.TextWriter)">
+            <summary>
+            Serializes the specified object to a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="serializer">The JSON serializer</param>
+            <param name="value">The object to serialize</param>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to serialize the object to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Stringify(Newtonsoft.Json.JsonSerializer,System.Object)">
+            <summary>
+            Serializes the specified object to a JSON string.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <param name="value">The object to serailize.</param>
+            <returns>A JSON string representation of the object.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JsonUtility">
+            <summary>
+            Helper class for common JSON operations.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CamelCase(System.String)">
+            <summary>
+            Converts the specified name to camel case.
+            </summary>
+            <param name="name">The name to convert.</param>
+            <returns>A camel cased version of the specified name.</returns>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JsonMimeType">
+            <summary>
+            Gets a string that returns JSON mime type "application/json; charset=UTF-8".
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JavaScriptMimeType">
+            <summary>
+            Gets a string that returns JSONP mime type "application/javascript; charset=UTF-8".
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializerSettings">
+            <summary>
+            Creates a default <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> instance.
+            </summary>
+            <returns>The newly created <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializer">
+            <summary>
+            Creates a <see cref="T:Newtonsoft.Json.JsonSerializer"/> instance with the default setting. 
+            </summary>
+            <returns>The newly created <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker">
+            <summary>
+            This class is the main coordinator. 
+            It schedules work to be done for a particular subscription. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage">
+            <summary>
+            Represents a message to the scaleout backplane
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.Messages">
+            <summary>
+            The messages from SignalR
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ServerCreationTime">
+            <summary>
+            The time the message was created on the origin server
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus">
+            <summary>
+            Common base class for scaleout message bus implementations.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.StreamCount">
+            <summary>
+            The number of streams can't change for the lifetime of this instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Open(System.Int32)">
+            <summary>
+            Opens the specified queue for sending messages.
+            <param name="streamIndex">The index of the stream to open.</param>
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Close(System.Int32)">
+            <summary>
+            Closes the specified queue.
+            <param name="streamIndex">The index of the stream to close.</param>
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnError(System.Int32,System.Exception)">
+            <summary>
+            Closes the specified queue for sending messages making all sends fail asynchronously.
+            </summary>
+            <param name="streamIndex">The index of the stream to close.</param>
+            <param name="exception">The error that occurred.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+            <summary>
+            Sends messages to the backplane
+            </summary>
+            <param name="messages">The list of messages to send</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnReceived(System.Int32,System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)">
+            <summary>
+            Invoked when a payload is received from the backplane. There should only be one active call at any time.
+            </summary>
+            <param name="streamIndex">id of the stream.</param>
+            <param name="id">id of the payload within that stream.</param>
+            <param name="message">The scaleout message.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+            <summary>
+            
+            </summary>
+            <param name="message"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="subscriber"></param>
+            <param name="cursor"></param>
+            <param name="callback"></param>
+            <param name="maxMessages"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBus">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            
+            </summary>
+            <param name="resolver"></param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager,System.Int32)">
+            <summary>
+            
+            </summary>
+            <param name="stringMinifier"></param>
+            <param name="traceManager"></param>
+            <param name="performanceCounterManager"></param>
+            <param name="configurationManager"></param>
+            <param name="maxTopicsWithNoSubscriptions"></param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+            <summary>
+            Publishes a new message to the specified event on the bus.
+            </summary>
+            <param name="message">The message to publish.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="subscriber"></param>
+            <param name="cursor"></param>
+            <param name="callback"></param>
+            <param name="maxMessages"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateTopic(System.String)">
+            <summary>
+            Creates a topic for the specified key.
+            </summary>
+            <param name="key">The key to create the topic for.</param>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.Messaging.Topic"/> for the specified key.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageResult">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Messages">
+            <summary>
+            Gets an <see cref="T:IList{Message}"/> associated with the result.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult"/> struct.
+            </summary>
+            <param name="messages">The array of messages associated with this <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult"/>.</param>
+            <param name="totalCount">The amount of messages populated in the messages array.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration">
+            <summary>
+            Common settings for scale-out message bus implementations.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.QueueBehavior">
+            <summary>
+            Gets or sets a value that represents the queuing behavior for scale-out messages.
+            Defaults to <see cref="F:Microsoft.AspNet.SignalR.QueuingBehavior.InitialOnly">QueuingBehavior.InitialOnly</see>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.MaxQueueLength">
+            <summary>
+            The maximum length of the outgoing send queue. Messages being sent to the backplane are queued
+            up to this length. After the max length is reached, further sends will throw an <see cref="T:System.InvalidOperationException">InvalidOperationException</see>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Source">
+            <summary>
+            Which connection the message originated from
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Key">
+            <summary>
+            The signal for the message (connection id, group, etc)
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Value">
+            <summary>
+            The message payload
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.CommandId">
+            <summary>
+            The command id if this message is a command
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.WaitForAck">
+            <summary>
+            Determines if the caller should wait for acknowledgement for this message
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsAck">
+            <summary>
+            Determines if this message is itself an ACK
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Filter">
+            <summary>
+            A list of connection ids to filter out
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Encoding">
+            <summary>
+            The encoding of the message
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.MappingId">
+            <summary>
+            The payload id. Only used in scaleout scenarios
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.StreamIndex">
+            <summary>
+            The stream index this message came from. Only used the scaleout scenarios.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.AuthorizeAttribute">
+            <summary>
+            Apply to Hubs and Hub methods to authorize client connections to Hubs and authorize client invocations of Hub methods.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.RequireOutgoing">
+            <summary>
+            Set to false to apply authorization only to the invocations of any of the Hub's server-side methods.
+            This property only affects attributes applied to the Hub class.
+            This property cannot be read.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Roles">
+            <summary>
+            Gets or sets the user roles.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Users">
+            <summary>
+            Gets or sets the authorized users.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Determines whether client is authorized to connect to <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <param name="hubDescriptor">Description of the hub client is attempting to connect to.</param>
+            <param name="request">The (re)connect request from the client.</param>
+            <returns>true if the caller is authorized to connect to the hub; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+            <summary>
+            Determines whether client is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method.
+            </summary>
+            <param name="hubIncomingInvokerContext">An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/> providing details regarding the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method invocation.</param>
+            <param name="appliesToMethod">Indicates whether the interface instance is an attribute applied directly to a method.</param>
+            <returns>true if the caller is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.UserAuthorized(System.Security.Principal.IPrincipal)">
+            <summary>
+            When overridden, provides an entry point for custom authorization checks.
+            Called by <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)"/> and <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)"/>.
+            </summary>
+            <param name="user">The <see cref="T:System.Security.Principal.IPrincipal"/> for the client being authorize</param>
+            <returns>true if the user is authorized, otherwise, false</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.HubPipelineExtensions.RequireAuthentication(Microsoft.AspNet.SignalR.Hubs.IHubPipeline)">
+            <summary>
+            Requiring Authentication adds an <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> with <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/>
+            and <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/> authorizers that will be applied globally to all hubs and hub methods.
+            These authorizers require that the <see cref="T:System.Security.Principal.IPrincipal"/>'s <see cref="T:System.Security.Principal.IIdentity"/> 
+            IsAuthenticated for any clients that invoke server-side hub methods or receive client-side hub method invocations. 
+            </summary>
+            <param name="pipeline">The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> to which the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> will be added.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IHubContext`1">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext`1.Clients">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext`1.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IConnectionGroupManager">
+            <summary>
+            Manages groups for a connection and allows sending messages to the group.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.String,System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupName">The name of the group.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified groups.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.String,System.Object)">
+            <summary>
+            Sends a message to all connections subscribed to the specified signal. An example of signal may be a
+            specific connection id.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="connectionId">The connectionId to send to.</param>
+            <param name="value">The value to publish.</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.Collections.Generic.IList{System.String},System.Object)">
+            <summary>
+            Sends a message to all connections subscribed to the specified signal. An example of signal may be a
+            specific connection id.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="connectionIds">The connection ids to send to.</param>
+            <param name="value">The value to publish.</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Broadcast(Microsoft.AspNet.SignalR.IConnection,System.Object,System.String[])">
+            <summary>
+            Broadcasts a value to all connections, excluding the connection ids specified.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="value">The value to broadcast.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Connection">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnection" /> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager" /> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Owin.WebSocketConstants">
+            <summary>
+            Standard keys and values for use within the OWIN interfaces
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.DynamicComment_CallsMethodOnServerSideDeferredPromise">
+            <summary>
+              Looks up a localized string similar to             /// &lt;summary&gt;Calls the {0} method on the server-side {1} hub.&amp;#10;Returns a jQuery.Deferred() promise.&lt;/summary&gt;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.DynamicComment_ServerSideTypeIs">
+            <summary>
+              Looks up a localized string similar to             /// &lt;param name=\&quot;{0}\&quot; type=\&quot;{1}\&quot;&gt;Server side type is {2}&lt;/param&gt;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_AmbiguousMessage">
+            <summary>
+              Looks up a localized string similar to Ambiguous message. Unable to send to both &apos;{0}&apos; and &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ArgumentNullOrEmpty">
+            <summary>
+              Looks up a localized string similar to Argument cannot be null or empty.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_BufferSizeOutOfRange">
+            <summary>
+              Looks up a localized string similar to The buffer size &apos;{0}&apos; is out of range..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_CallerNotAuthorizedToInvokeMethodOn">
+            <summary>
+              Looks up a localized string similar to Caller is not authorized to invoke the {0} method on {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ConnectionIdIncorrectFormat">
+            <summary>
+              Looks up a localized string similar to The ConnectionId is in the incorrect format..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ConnectionNotInitialized">
+            <summary>
+              Looks up a localized string similar to The PersistentConnection is not initialized..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DisconnectTimeoutCannotBeConfiguredAfterKeepAlive">
+            <summary>
+              Looks up a localized string similar to DisconnectTimeout cannot be configured after the KeepAlive..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DisconnectTimeoutMustBeAtLeastSixSeconds">
+            <summary>
+              Looks up a localized string similar to DisconnectTimeout must be at least six seconds..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DoNotReadRequireOutgoing">
+            <summary>
+              Looks up a localized string similar to Do not read RequireOutgoing. Use protected _requireOutgoing instead..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicateHubNames">
+            <summary>
+              Looks up a localized string similar to Two Hubs must not share the same name. &apos;{0}&apos; and &apos;{1}&apos; both share the name &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicateHubNamesInConnectionData">
+            <summary>
+              Looks up a localized string similar to Duplicate Hub names found..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicatePayloadsForStream">
+            <summary>
+              Looks up a localized string similar to Duplicate payload id detected for stream &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ExceptionContextCanOnlyBeModifiedOnce">
+            <summary>
+              Looks up a localized string similar to The ExceptionContext has already been modified once and cannot be modified again..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubCouldNotBeResolved">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; Hub could not be resolved..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubInvocationFailed">
+            <summary>
+              Looks up a localized string similar to There was an error invoking Hub method &apos;{0}.{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubProgressOnlyReportableBeforeMethodReturns">
+            <summary>
+              Looks up a localized string similar to You cannot report progress on a hub method invocation that has already completed..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_InvalidCursorFormat">
+            <summary>
+              Looks up a localized string similar to Invalid cursor..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_InvalidForeverFrameId">
+            <summary>
+              Looks up a localized string similar to The supplied frameId is in the incorrect format..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_IsNotA">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; is not a {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_JavaScriptProxyDisabled">
+            <summary>
+              Looks up a localized string similar to SignalR: JavaScript Hub proxy generation has been disabled..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_KeepAliveMustBeGreaterThanTwoSeconds">
+            <summary>
+              Looks up a localized string similar to KeepAlive value must be greater than two seconds..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_KeepAliveMustBeNoMoreThanAThirdOfTheDisconnectTimeout">
+            <summary>
+              Looks up a localized string similar to KeepAlive value must be no more than a third of the DisconnectTimeout..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MaxScaleoutMappingsPerStreamMustBeNonNegative">
+            <summary>
+              Looks up a localized string similar to The value of the MaxScaleoutMappingsPerStream property must be greater or equal to zero..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodCouldNotBeResolved">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; method could not be resolved. No method found with that name..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodCouldNotBeResolvedCandidates">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; method could not be resolved. Potential candidates are: {1}.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodLevelOutgoingAuthorization">
+            <summary>
+              Looks up a localized string similar to Outgoing authorization can only be required for an entire Hub, not a specific method..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustNotTakeOutParameter">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; parameter of &apos;{1}.{2}&apos; must not be an out parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustNotTakeRefParameter">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; parameter of &apos;{1}.{2}&apos; must not be a ref parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustReturnVoidOrTask">
+            <summary>
+              Looks up a localized string similar to The return type of &apos;{0}.{1}&apos; must be void or Task..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MultipleActivatorsAreaRegisteredCallGetServices">
+            <summary>
+              Looks up a localized string similar to Multiple activators for type {0} are registered. Please call GetServices instead..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NoConfiguration">
+            <summary>
+              Looks up a localized string similar to A configuration object must be specified..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NoDependencyResolver">
+            <summary>
+              Looks up a localized string similar to A dependency resolver must be specified..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NotWebSocketRequest">
+            <summary>
+              Looks up a localized string similar to Not a valid web socket request..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ParseObjectFailed">
+            <summary>
+              Looks up a localized string similar to Unexpected end when reading object..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ProtocolErrorMissingConnectionToken">
+            <summary>
+              Looks up a localized string similar to Protocol error: Missing connection token..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ProtocolErrorUnknownTransport">
+            <summary>
+              Looks up a localized string similar to Protocol error: Unknown transport..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ScaleoutQueuingConfig">
+            <summary>
+              Looks up a localized string similar to Scaleout queuing is enabled but maximum queue size is 0.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StateExceededMaximumLength">
+            <summary>
+              Looks up a localized string similar to State has exceeded the maximum length of 4096 bytes..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StreamClosed">
+            <summary>
+              Looks up a localized string similar to The stream has been closed..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StreamNotOpen">
+            <summary>
+              Looks up a localized string similar to The stream is not open..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TaskQueueFull">
+            <summary>
+              Looks up a localized string similar to The queue is full..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustBeInterface">
+            <summary>
+              Looks up a localized string similar to The type T, &apos;{0}&apos;, passed to Hub&lt;T&gt; must be an interface..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustNotContainEvents">
+            <summary>
+              Looks up a localized string similar to The interface &apos;{0}&apos; must not contain any events..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustNotContainProperties">
+            <summary>
+              Looks up a localized string similar to The interface &apos;{0}&apos; must not contain any properties..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UnableToAddModulePiplineAlreadyInvoked">
+            <summary>
+              Looks up a localized string similar to Unable to add module. The HubPipeline has already been invoked..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UnrecognizedUserIdentity">
+            <summary>
+              Looks up a localized string similar to Unrecognized user identity.  The user identity cannot change during an active SignalR connection..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UsingHubInstanceNotCreatedUnsupported">
+            <summary>
+              Looks up a localized string similar to Using a Hub instance not created by the HubPipeline is unsupported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_WebSocketsNotSupported">
+            <summary>
+              Looks up a localized string similar to WebSockets is not supported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Forbidden_JSONPDisabled">
+            <summary>
+              Looks up a localized string similar to Forbidden: JSONP is disabled..
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IGroupManager">
+            <summary>
+            Manages groups for a connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Add(System.String,System.String)">
+            <summary>
+            Adds a connection to the specified group. 
+            </summary>
+            <param name="connectionId">The connection id to add to the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being added to the group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Remove(System.String,System.String)">
+            <summary>
+            Removes a connection from the specified group.
+            </summary>
+            <param name="connectionId">The connection id to remove from the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being removed from the group.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hub">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITrackingConnection">
+            <summary>
+            Represents a connection that can be tracked by an <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectionId">
+            <summary>
+            Gets the id of the connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.CancellationToken">
+            <summary>
+            Gets a cancellation token that represents the connection's lifetime.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectTask">
+            <summary>
+            Gets the task that completes when the task returned by PersistentConnection.OnConnected does.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsAlive">
+            <summary>
+            Gets a value that represents if the connection is alive.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsTimedOut">
+            <summary>
+            Gets a value that represents if the connection is timed out.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.SupportsKeepAlive">
+            <summary>
+            Gets a value that represents if the connection supprots keep alive.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.RequiresTimeout">
+            <summary>
+            Gets a value that represents if the connection should timeout after inactivity.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DisconnectThreshold">
+            <summary>
+            Gets a value indicating the amount of time to wait after the connection dies before firing the disconnecting the connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Url">
+            <summary>
+            Gets the uri of the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+            <summary>
+            Applies a new state to the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Disconnect">
+            <summary>
+            Causes the connection to disconnect.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Timeout">
+            <summary>
+            Causes the connection to timeout.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.KeepAlive">
+            <summary>
+            Sends a keep alive ping over the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IncrementConnectionsCount">
+            <summary>
+            Increments performance counter for current connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DecrementConnectionsCount">
+            <summary>
+            Decrements performance counter for current connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.End">
+            <summary>
+            Kills the connection.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransport">
+            <summary>
+            Represents a transport that communicates
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Received">
+            <summary>
+            Gets or sets a callback that is invoked when the transport receives data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Connected">
+            <summary>
+            Gets or sets a callback that is invoked when the initial connection connects to the transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Reconnected">
+            <summary>
+            Gets or sets a callback that is invoked when the transport reconnects.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Disconnected">
+            <summary>
+            Gets or sets a callback that is invoked when the transport disconnects.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.ConnectionId">
+            <summary>
+            Gets or sets the connection id for the transport.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.GetGroupsToken">
+            <summary>
+            Get groupsToken in request over the transport.
+            </summary>
+            <returns>groupsToken in request</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+            <summary>
+            Processes the specified <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection"/> for this transport.
+            </summary>
+            <param name="connection">The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection"/> to process.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the transport has finished processing the connection.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.Send(System.Object)">
+            <summary>
+            Sends data over the transport.
+            </summary>
+            <param name="value">The value to be sent.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the send is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat">
+            <summary>
+            Manages tracking the state of connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Adds a new connection to the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to be added.</param>
+            <returns>The connection it replaced, if any.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Marks an existing connection as active.
+            </summary>
+            <param name="connection">The connection to mark.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Removes a connection from the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to remove.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.GetConnections">
+            <summary>
+            Gets a list of connections being tracked.
+            </summary>
+            <returns>A list of connections.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportManager">
+            <summary>
+            Manages the transports for connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Gets the specified transport for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.
+            </summary>
+            <param name="hostContext">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.SupportsTransport(System.String)">
+            <summary>
+            Determines whether the specified transport is supported.
+            </summary>
+            <param name="transportName">The name of the transport to test.</param>
+            <returns>True if the transport is supported, otherwise False.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat">
+            <summary>
+            Default implementation of <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes and instance of the <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat"/> class.
+            </summary>
+            <param name="resolver">The <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Adds a new connection to the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to be added.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Removes a connection from the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to remove.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Marks an existing connection as active.
+            </summary>
+            <param name="connection">The connection to mark.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse">
+            <summary>
+            Represents a response to a connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor(System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{System.IO.TextWriter})">
+            <summary>
+            Creates a new instance of <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse"/>.
+            </summary>
+            <param name="exclude">A filter that determines whether messages should be written to the client.</param>
+            <param name="writeCursor">The cursor writer.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Messages">
+            <summary>
+            The list of messages to be sent to the receiving connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.TotalCount">
+            <summary>
+            The total count of the messages sent the receiving connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Initializing">
+            <summary>
+            True if the connection is in process of initializing
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Aborted">
+            <summary>
+            True if the connection was forcibly closed. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Reconnect">
+            <summary>
+            True if the client should try reconnecting.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.GroupsToken">
+            <summary>
+            Signed token representing the list of groups. Updates on change.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.LongPollDelay">
+            <summary>
+            The time the long polling client should wait before reestablishing a connection if no data is received.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Microsoft#AspNet#SignalR#Json#IJsonWritable#WriteJson(System.IO.TextWriter)">
+            <summary>
+            Serializes only the necessary components of the <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse"/> to JSON
+            using Json.NET's JsonTextWriter to improve performance.
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> that receives the JSON serialization.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.TransportManager">
+            <summary>
+            The default <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes a new instance of <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportManager"/> class.
+            </summary>
+            <param name="resolver">The default <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Register(System.String,System.Func{Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransport})">
+            <summary>
+            Adds a new transport to the list of supported transports.
+            </summary>
+            <param name="transportName">The specified transport.</param>
+            <param name="transportFactory">The factory method for the specified transport.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Remove(System.String)">
+            <summary>
+            Removes a transport from the list of supported transports.
+            </summary>
+            <param name="transportName">The specified transport.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Gets the specified transport for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.
+            </summary>
+            <param name="hostContext">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.SupportsTransport(System.String)">
+            <summary>
+            Determines whether the specified transport is supported.
+            </summary>
+            <param name="transportName">The name of the transport to test.</param>
+            <returns>True if the transport is supported, otherwise False.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.GroupManager">
+            <summary>
+            The default <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.#ctor(Microsoft.AspNet.SignalR.IConnection,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.GroupManager"/> class.
+            </summary>
+            <param name="connection">The <see cref="T:Microsoft.AspNet.SignalR.IConnection"/> this group resides on.</param>
+            <param name="groupPrefix">The prefix for this group. Either a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> name or <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> type name.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.String,System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupName">The name of the group.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Add(System.String,System.String)">
+            <summary>
+            Adds a connection to the specified group. 
+            </summary>
+            <param name="connectionId">The connection id to add to the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being added to the group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Remove(System.String,System.String)">
+            <summary>
+            Removes a connection from the specified group.
+            </summary>
+            <param name="connectionId">The connection id to remove from the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being removed from the group.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.PersistentConnection">
+            <summary>
+            Represents a connection between client and server.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Connection">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnection"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            OWIN entry point.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Handles all requests for <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>s.
+            </summary>
+            <param name="context">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> pipeline is complete.</returns>
+            <exception cref="T:System.InvalidOperationException">
+            Thrown if connection wasn't initialized.
+            Thrown if the transport wasn't specified.
+            Thrown if the connection id wasn't specified.
+            </exception>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.GetSignals(System.String,System.String)">
+            <summary>
+            Returns the signals used in the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <param name="userId">The user id for the current connection.</param>
+            <param name="connectionId">The id of the incoming connection.</param>
+            <returns>The signals used for this <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Called before every request and gives the user a authorize the user.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <returns>A boolean value that represents if the request is authorized.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+            <summary>
+            Called when a connection reconnects after a timeout to determine which groups should be rejoined.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="groups">The groups the calling connection claims to be part of.</param>
+            <param name="connectionId">The id of the reconnecting client.</param>
+            <returns>A collection of group names that should be joined on reconnect</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+            <summary>
+            Called when a new connection is made.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the connecting client.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the connect operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+            <summary>
+            Called when a connection reconnects after a timeout.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the re-connecting client.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the re-connect operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+            <summary>
+            Called when data is received from a connection.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the connection sending the data.</param>
+            <param name="data">The payload sent to the connection.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the receive operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String,System.Boolean)">
+            <summary>
+            Called when a connection disconnects gracefully or due to a timeout.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the disconnected connection.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can occur in scaleout when clients reconnect with another server.
+            </param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the disconnect operation is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IConnection">
+            <summary>
+            A communication channel for a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> and its connections.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IConnection.DefaultSignal">
+            <summary>
+            The main signal for this connection. This is the main signalr for a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+            <summary>
+            Sends a message to connections subscribed to the signal.
+            </summary>
+            <param name="message">The message to send.</param>
+            <returns>A task that returns when the message has be sent.</returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at "/signalr".
+            </summary>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at "/signalr".
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at the specified path.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map signalr hubs</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder)">
+            <summary>
+            Adds SignalR hubs to the app builder pipeline.
+            </summary>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Adds SignalR hubs to the app builder pipeline.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the persistent connection</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the persistent connection</param>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>
diff --git a/VueWebApi/bin/Microsoft.AspNet.SignalR.SystemWeb.xml b/VueWebApi/bin/Microsoft.AspNet.SignalR.SystemWeb.xml
new file mode 100644
index 0000000..6bb82b2
--- /dev/null
+++ b/VueWebApi/bin/Microsoft.AspNet.SignalR.SystemWeb.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.AspNet.SignalR.SystemWeb</name>
+    </assembly>
+    <members>
+        <member name="M:Microsoft.AspNet.SignalR.RequestExtensions.GetHttpContext(Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Returns the <see cref="T:System.Web.HttpContextBase"/> for this <see cref="T:Microsoft.AspNet.SignalR.IRequest"/>.
+            </summary>
+            <param name="request">The request</param>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="type">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="type">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route</returns>.
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection)">
+            <summary>
+            Initializes the default hub route (/signalr).
+            </summary>
+            <param name="routes">The route table.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes the default hub route (/signalr).
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.HubConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build"></param>
+            <returns>The registered route.</returns>
+        </member>
+    </members>
+</doc>
diff --git a/VueWebApi/bin/Microsoft.Owin.Host.SystemWeb.xml b/VueWebApi/bin/Microsoft.Owin.Host.SystemWeb.xml
new file mode 100644
index 0000000..f2c4c49
--- /dev/null
+++ b/VueWebApi/bin/Microsoft.Owin.Host.SystemWeb.xml
@@ -0,0 +1,639 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin.Host.SystemWeb</name>
+    </assembly>
+    <members>
+        <member name="T:Owin.Loader.DefaultLoader">
+            <summary>
+            Locates the startup class based on the following convention:
+            AssemblyName.Startup, with a method named Configuration
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}})">
+            <summary>
+            Allows for a fallback loader to be specified.
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object})">
+            <summary>
+            Allows for a fallback loader and a Dependency Injection activator to be specified.
+            </summary>
+            <param name="next"></param>
+            <param name="activator"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object},System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+            <param name="activator"></param>
+            <param name="referencedAssemblies"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Executes the loader, searching for the entry point by name.
+            </summary>
+            <param name="startupName">The name of the assembly and type entry point</param>
+            <param name="errorDetails"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.DotByDot(System.String)">
+            <summary>
+            
+            </summary>
+            <param name="text"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Owin.Loader.NullLoader">
+            <summary>
+            A default fallback loader that does nothing.
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.NullLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            A placeholder method that always returns null.
+            </summary>
+            <param name="startup"></param>
+            <param name="errors"></param>
+            <returns>null.</returns>
+        </member>
+        <member name="P:Owin.Loader.NullLoader.Instance">
+            <summary>
+            A singleton instance of the NullLoader type.
+            </summary>
+        </member>
+        <member name="T:SharedResourceNamespace.LoaderResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.AssemblyNotFound">
+            <summary>
+              Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the assembly &apos;{1}&apos; was not found..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.ClassNotFoundInAssembly">
+            <summary>
+              Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the class &apos;{1}&apos; was not found in assembly &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Exception_AttributeNameConflict">
+            <summary>
+              Looks up a localized string similar to The OwinStartup attribute discovered in assembly &apos;{0}&apos; referencing startup type &apos;{1}&apos; conflicts with the attribute in assembly &apos;{2}&apos; referencing startup type &apos;{3}&apos; because they have the same FriendlyName &apos;{4}&apos;. Remove or rename one of the attributes, or reference the desired type directly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Exception_StartupTypeConflict">
+            <summary>
+              Looks up a localized string similar to The discovered startup type &apos;{0}&apos; conflicts with the type &apos;{1}&apos;. Remove or rename one of the types, or reference the desired type directly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.FriendlyNameMismatch">
+            <summary>
+              Looks up a localized string similar to The OwinStartupAttribute.FriendlyName value &apos;{0}&apos; does not match the given value &apos;{1}&apos; in Assembly &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.MethodNotFoundInClass">
+            <summary>
+              Looks up a localized string similar to No &apos;{0}&apos; method was found in class &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.NoAssemblyWithStartupClass">
+            <summary>
+              Looks up a localized string similar to No assembly found containing a Startup or [AssemblyName].Startup class..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.NoOwinStartupAttribute">
+            <summary>
+              Looks up a localized string similar to No assembly found containing an OwinStartupAttribute..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyEmpty">
+            <summary>
+              Looks up a localized string similar to The OwinStartupAttribute.StartupType value is empty in Assembly &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyMissing">
+            <summary>
+              Looks up a localized string similar to The type &apos;{0}&apos; referenced from assembly &apos;{1}&apos; does not define a property &apos;StartupType&apos; of type &apos;Type&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.TypeOrMethodNotFound">
+            <summary>
+              Looks up a localized string similar to The given type or method &apos;{0}&apos; was not found. Try specifying the Assembly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.UnexpectedMethodSignature">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; method on class &apos;{1}&apos; does not have the expected signature &apos;void {0}(IAppBuilder)&apos;..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.#ctor">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Get the reassembled cookie. Non chunked cookies are returned normally.
+            Cookies with missing chunks just have their "chunks:XX" header returned.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns>The reassembled cookie, if any, or null.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
+            then it will be broken down into multiple cookies as follows:
+            Set-Cookie: CookieName=chunks:3; path=/
+            Set-Cookie: CookieNameC1=Segment1; path=/
+            Set-Cookie: CookieNameC2=Segment2; path=/
+            Set-Cookie: CookieNameC3=Segment3; path=/
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
+            the request, delete each chunk.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.Fallback">
+            <summary>
+            A fallback manager used if HttpContextBase can't be located.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ChunkSize">
+             <summary>
+             The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
+             cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all
+             common browsers.
+            
+             Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
+             </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ThrowForPartialCookies">
+            <summary>
+            Throw if not all chunks of a cookie are available on a request for re-assembly.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider">
+            <summary>
+            Used to provide the data protection services that are derived from the MachineKey API. It is the best choice of
+            data protection when you application is hosted by ASP.NET and all servers in the farm are running with the same Machine Key values.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:System.Web.HttpContextBaseExtensions">
+            <summary>
+            Provides extension methods for <see cref="T:System.Web.HttpContextBase"/>.
+            </summary>
+        </member>
+        <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpContextBase)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpRequestBase)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="request"></param>
+            <returns></returns>
+        </member>
+        <member name="T:System.Web.HttpContextExtensions">
+            <summary>
+            Provides extension methods for <see cref="T:System.Web.HttpContext"/>.
+            </summary>
+        </member>
+        <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpContext)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpRequest)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="request"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler">
+            <summary>
+            Processes requests from System.Web as OWIN requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.#ctor">
+            <summary>
+            Processes requests using the default OWIN application.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
+            <summary>
+            Initiates an asynchronous call to the HTTP handler.
+            </summary>
+            <param name="httpContext">
+            An System.Web.HttpContextBase object that provides references to intrinsic server
+            objects (for example, Request, Response, Session, and Server) used to service
+            HTTP requests.
+            </param>
+            <param name="callback">
+            The System.AsyncCallback to call when the asynchronous method call is complete.
+            If callback is null, the delegate is not called.
+            </param>
+            <param name="extraData">
+            Any extra data needed to process the request.
+            </param>
+            <returns>
+            An System.IAsyncResult that contains information about the status of the process.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(System.IAsyncResult)">
+            <summary>
+            Provides an asynchronous process End method when the process ends.
+            </summary>
+            <param name="result">
+            An System.IAsyncResult that contains information about the status of the process.
+            </param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.IsReusable">
+            <summary>
+            Gets a value indicating whether another request can use the System.Web.IHttpHandler instance.
+            </summary>
+            <returns>
+            true.
+            </returns>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler">
+            <summary>
+            Processes a route through an OWIN pipeline.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.#ctor(System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initialize an OwinRouteHandler
+            </summary>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
+            <summary>
+            Provides the object that processes the request.
+            </summary>
+            <returns>
+            An object that processes the request.
+            </returns>
+            <param name="requestContext">An object that encapsulates information about the request.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.PreApplicationStart">
+            <summary>
+            Registers the OWIN request processing module at application startup.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.PreApplicationStart.Initialize">
+            <summary>
+            Registers the OWIN request processing module.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_AppLoderFailure">
+            <summary>
+              Looks up a localized string similar to The following errors occurred while attempting to load the app..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CannotRegisterAfterHeadersSent">
+            <summary>
+              Looks up a localized string similar to Cannot register for &apos;OnSendingHeaders&apos; event after response headers have been sent..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CookieLimitTooSmall">
+            <summary>
+              Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_DuplicateKey">
+            <summary>
+              Looks up a localized string similar to The key &apos;{0}&apos; is already present in the dictionary..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToDisableAutoAppStartup">
+            <summary>
+              Looks up a localized string similar to To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of &quot;false&quot; in your web.config..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToSpecifyAppStartup">
+            <summary>
+              Looks up a localized string similar to To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_ImcompleteChunkedCookie">
+            <summary>
+              Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_UnsupportedPipelineStage">
+            <summary>
+              Looks up a localized string similar to The given stage &apos;{0}&apos; is not supported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.HttpContext_OwinEnvironmentNotFound">
+            <summary>
+              Looks up a localized string similar to No owin.Environment item was found in the context..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ClientCertException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown while trying to load the client certificate:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_EntryPointException">
+            <summary>
+              Looks up a localized string similar to The OWIN entry point threw an exception:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_OwinCallContextCallbackException">
+            <summary>
+              Looks up a localized string similar to The IAsyncResult callback for OwinCallHandler threw an exception:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RegisterModuleException">
+            <summary>
+              Looks up a localized string similar to Failed to register the OWIN module:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RequestDisconnectCallbackExceptions">
+            <summary>
+              Looks up a localized string similar to The application threw one or more exceptions when notified of a client disconnect:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownDetectionSetupException">
+            <summary>
+              Looks up a localized string similar to Shutdown detection setup failed:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownException">
+            <summary>
+              Looks up a localized string similar to One or more exceptions were thrown during app pool shutdown:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_TimerCallbackException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown from a timer callback:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown while processing the WebSocket:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportDetected">
+            <summary>
+              Looks up a localized string similar to Support for WebSockets has been detected..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportNotDetected">
+            <summary>
+              Looks up a localized string similar to No support for WebSockets has been detected..
+            </summary>
+        </member>
+        <member name="T:System.Web.Routing.RouteCollectionExtensions">
+            <summary>
+            Provides extension methods for registering OWIN applications as System.Web routes.
+            </summary>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String)">
+            <summary>
+            Registers a route for the default OWIN application.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the default OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,``0)">
+            <summary>
+            Registers a route for a specific OWIN application entry point.
+            </summary>
+            <typeparam name="TApp">The OWIN application entry point type.</typeparam>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="app">The OWIN application entry point.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Invokes the System.Action startup delegate to build the OWIN application
+            and then registers a route for it on the given path.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String)">
+            <summary>
+            Registers a route for the default OWIN application.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the default OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,System.String,``0)">
+            <summary>
+            Registers a route for a specific OWIN application entry point.
+            </summary>
+            <typeparam name="TApp">The OWIN application entry point type.</typeparam>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="app">The OWIN application entry point.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Invokes the System.Action startup delegate to build the OWIN application
+            and then registers a route for it on the given path.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager">
+            <summary>
+            An implementation of ICookieManager that uses the System.Web.HttpContextBase object model.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.#ctor">
+            <summary>
+            Creates a new instance of SystemWebCookieManager.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Reads the requested cookie from System.Web.HttpContextBase.Request.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends the requested cookie to System.Web.HttpContextBase.Response.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the requested cookie by appending an expired cookie to System.Web.HttpContextBase.Response.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.Fallback">
+            <summary>
+            A fallback manager used if HttpContextBase can't be located.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/VueWebApi/bin/Microsoft.Owin.Security.xml b/VueWebApi/bin/Microsoft.Owin.Security.xml
new file mode 100644
index 0000000..fb50684
--- /dev/null
+++ b/VueWebApi/bin/Microsoft.Owin.Security.xml
@@ -0,0 +1,494 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin.Security</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Owin.Security.AppBuilderSecurityExtensions">
+            <summary>
+            Provides extensions methods for app.Property values that are only needed by implementations of authentication middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(Owin.IAppBuilder)">
+            <summary>
+            Returns the previously set AuthenticationType that external sign in middleware should use when the
+            browser navigates back to their return url.
+            </summary>
+            <param name="app">App builder passed to the application startup code</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.SetDefaultSignInAsAuthenticationType(Owin.IAppBuilder,System.String)">
+            <summary>
+            Called by middleware to change the name of the AuthenticationType that external middleware should use
+            when the browser navigates back to their return url.
+            </summary>
+            <param name="app">App builder passed to the application startup code</param>
+            <param name="authenticationType">AuthenticationType that external middleware should sign in as.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationMode">
+            <summary>
+            Controls the behavior of authentication middleware
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.AuthenticationMode.Active">
+            <summary>
+            In Active mode the authentication middleware will alter the user identity as the request arrives, and
+            will also alter a plain 401 as the response leaves.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.AuthenticationMode.Passive">
+            <summary>
+            In Passive mode the authentication middleware will only provide user identity when asked, and will only
+            alter 401 responses where the authentication type named in the extra challenge data.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationOptions">
+            <summary>
+            Base Options for all authentication middleware
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationOptions.#ctor(System.String)">
+            <summary>
+            Initialize properties of AuthenticationOptions base class
+            </summary>
+            <param name="authenticationType">Assigned to the AuthenticationType property</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationType">
+            <summary>
+            The AuthenticationType in the options corresponds to the IIdentity AuthenticationType property. A different
+            value may be assigned in order to use the same authentication middleware type more than once in a pipeline.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationMode">
+            <summary>
+            If Active the authentication middleware alter the request user coming in and
+            alter 401 Unauthorized responses going out. If Passive the authentication middleware will only provide
+            identity and alter responses when explicitly indicated by the AuthenticationType.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.Description">
+            <summary>
+            Additional information about the authentication type which is made available to the application.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Constants">
+            <summary>
+            String constants used only by the Security assembly
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Constants.DefaultSignInAsAuthenticationType">
+            <summary>
+            Used by middleware extension methods to coordinate the default value Options property SignInAsAuthenticationType
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider">
+            <summary>
+            Factory used to create IDataProtection instances
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtector">
+            <summary>
+            Service used to protect and unprotect data
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Protect(System.Byte[])">
+            <summary>
+            Called to protect user data.
+            </summary>
+            <param name="userData">The original data that must be protected</param>
+            <returns>A different byte array that may be unprotected or altered only by software that has access to 
+            the an identical IDataProtection service.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Unprotect(System.Byte[])">
+            <summary>
+            Called to unprotect user data
+            </summary>
+            <param name="protectedData">The byte array returned by a call to Protect on an identical IDataProtection service.</param>
+            <returns>The byte array identical to the original userData passed to Protect.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1">
+            <summary>
+            Base class for the per-request work performed by most authentication middleware.
+            </summary>
+            <typeparam name="TOptions">Specifies which type for of AuthenticationOptions property</typeparam>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler">
+            <summary>
+            Base class for the per-request work performed by most authentication middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.TeardownAsync">
+            <summary>
+            Called once per request after Initialize and Invoke. 
+            </summary>
+            <returns>async completion</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InvokeAsync">
+            <summary>
+            Called once by common code after initialization. If an authentication middleware responds directly to
+            specifically known paths it must override this virtual, compare the request path to it's known paths, 
+            provide any response information as appropriate, and true to stop further processing.
+            </summary>
+            <returns>Returning false will cause the common code to call the next middleware in line. Returning true will
+            cause the common code to begin the async completion journey without calling the rest of the middleware
+            pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync">
+            <summary>
+            Causes the authentication logic in AuthenticateCore to be performed for the current request 
+            at most once and returns the results. Calling Authenticate more than once will always return 
+            the original value. 
+            
+            This method should always be called instead of calling AuthenticateCore directly.
+            </summary>
+            <returns>The ticket data provided by the authentication logic</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateCoreAsync">
+            <summary>
+            The core authentication logic which must be provided by the handler. Will be invoked at most
+            once per request. Do not call directly, call the wrapping Authenticate method instead.
+            </summary>
+            <returns>The ticket data provided by the authentication logic</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseAsync">
+            <summary>
+            Causes the ApplyResponseCore to be invoked at most once per request. This method will be
+            invoked either earlier, when the response headers are sent as a result of a response write or flush,
+            or later, as the last step when the original async call to the middleware is returning.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseCoreAsync">
+            <summary>
+            Core method that may be overridden by handler. The default behavior is to call two common response 
+            activities, one that deals with sign-in/sign-out concerns, and a second to deal with 401 challenges.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseGrantAsync">
+            <summary>
+            Override this method to dela with sign-in/sign-out concerns, if an authentication scheme in question
+            deals with grant/revoke as part of it's request flow. (like setting/deleting cookies)
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseChallengeAsync">
+            <summary>
+            Override this method to deal with 401 challenge concerns, if an authentication scheme in question
+            deals an authentication interaction as part of it's request flow. (like adding a response header, or
+            changing the 401 result to 302 of a login page or external sign-in location.)
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.Initialize(`0,Microsoft.Owin.IOwinContext)">
+            <summary>
+            Initialize is called once per request to contextualize this instance with appropriate state.
+            </summary>
+            <param name="options">The original options passed by the application control behavior</param>
+            <param name="context">The utility object to observe the current request and response</param>
+            <returns>async completion</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationTicket">
+            <summary>
+            Contains user identity information as well as additional authentication state.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationTicket.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationTicket"/> class
+            </summary>
+            <param name="identity"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Identity">
+            <summary>
+            Gets the authenticated user identity.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Properties">
+            <summary>
+            Additional state values for the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.ICertificateValidator">
+            <summary>
+            Interface for providing pinned certificate validation, which checks HTTPS 
+            communication against a known good list of certificates to protect against 
+            compromised or rogue CAs issuing certificates for hosts without the 
+            knowledge of the host owner.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.ICertificateValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateThumbprintValidator">
+            <summary>
+            Provides pinned certificate validation based on the certificate thumbprint.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateThumbprintValidator"/> class.
+            </summary>
+            <param name="validThumbprints">A set of thumbprints which are valid for an HTTPS request.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Validates that the certificate thumbprints in the signing chain match at least one whitelisted thumbprint.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Provider.BaseContext`1">
+            <summary>
+            Base class used for certain event contexts
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandleResponse">
+            <summary>
+            Discontinue all processing for this request and return to the client.
+            The caller is responsible for generating the full response.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.SkipToNextMiddleware">
+            <summary>
+            Discontinue processing the request in the current middleware and pass control to the next one.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Continue">
+            <summary>
+            Continue with normal processing.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped">
+            <summary>
+            Discontinue processing the request in the current middleware and pass control to the next one.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.HandledResponse">
+            <summary>
+            Discontinue all processing for this request.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandleResponse">
+            <summary>
+            Discontinue all processing for this request and return to the client.
+            The caller is responsible for generating the full response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket">
+            <summary>
+            Gets or set the <see cref="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.ProtocolMessage">
+            <summary>
+            Gets or sets the Protocol message
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider">
+            <summary>
+            Used to provide the data protection services that are derived from the Data Protection API. It is the best choice of
+            data protection when you application is not hosted by ASP.NET and all processes are running as the same domain identity. 
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor">
+            <summary>
+            Initializes a new DpapiDataProtectionProvider with a random application
+            name. This is only useful to protect data for the duration of the
+            current application execution.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor(System.String)">
+            <summary>
+            Initializes a new DpapiDataProtectionProvider which uses the given
+            appName as part of the protection algorithm
+            </summary>
+            <param name="appName">A user provided value needed to round-trip secured
+            data. The default value comes from the IAppBuilder.Properties["owin.AppName"] 
+            when self-hosted.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.SecurityHelper">
+            <summary>
+            Helper code used when implementing authentication middleware
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.#ctor(Microsoft.Owin.IOwinContext)">
+            <summary>
+            Helper code used when implementing authentication middleware
+            </summary>
+            <param name="context"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.AddUserIdentity(System.Security.Principal.IIdentity)">
+            <summary>
+            Add an additional ClaimsIdentity to the ClaimsPrincipal in the "server.User" environment key
+            </summary>
+            <param name="identity"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+            <summary>
+            Find response challenge details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <param name="authenticationMode">The authentication mode the middleware is running under</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignIn(System.String)">
+            <summary>
+            Find response sign-in details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignOut(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+            <summary>
+            Find response sign-out details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <param name="authenticationMode">The authentication mode the middleware is running under</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Provider.EndpointContext`1">
+            <summary>
+            Base class used for certain event contexts
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)">
+            <summary>
+            Creates an instance of this context
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.RequestCompleted">
+            <summary>
+            Prevents the request from being processed further by other components. 
+            IsRequestCompleted becomes true after calling.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Provider.EndpointContext`1.IsRequestCompleted">
+            <summary>
+            True if the request should not be processed further by other components.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_AuthenticationTokenDoesNotProvideSyncMethods">
+            <summary>
+              Looks up a localized string similar to The AuthenticationTokenProvider&apos;s required synchronous events have not been registered..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_DefaultDpapiRequiresAppNameKey">
+            <summary>
+              Looks up a localized string similar to The default data protection provider may only be used when the IAppBuilder.Properties contains an appropriate &apos;host.AppName&apos; key..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_MissingDefaultSignInAsAuthenticationType">
+            <summary>
+              Looks up a localized string similar to A default value for SignInAsAuthenticationType was not found in IAppBuilder Properties. This can happen if your authentication middleware are added in the wrong order, or if one is missing..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_UnhookAuthenticationStateType">
+            <summary>
+              Looks up a localized string similar to The state passed to UnhookAuthentication may only be the return value from HookAuthentication..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator">
+            <summary>
+            Provides pinned certificate validation based on the subject key identifier of the certificate.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator"/> class.
+            </summary>
+            <param name="validSubjectKeyIdentifiers">A set of subject key identifiers which are valid for an HTTPS request.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm">
+            <summary>
+            The algorithm used to generate the subject public key information blob hashes.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator">
+            <summary>
+            Implements a cert pinning validator passed on 
+            http://datatracker.ietf.org/doc/draft-ietf-websec-key-pinning/?include_text=1
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.#ctor(System.Collections.Generic.IEnumerable{System.String},Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator"/> class.
+            </summary>
+            <param name="validBase64EncodedSubjectPublicKeyInfoHashes">A collection of valid base64 encoded hashes of the certificate public key information blob.</param>
+            <param name="algorithm">The algorithm used to generate the hashes.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Validates at least one SPKI hash is known.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="M:Microsoft.Win32.NativeMethods.CryptEncodeObject(System.UInt32,System.IntPtr,Microsoft.Win32.NativeMethods.CERT_PUBLIC_KEY_INFO@,System.Byte[],System.UInt32@)">
+            <summary>
+            Encodes a structure of the type indicated by the value of the lpszStructType parameter.
+            </summary>
+            <param name="dwCertEncodingType">Type of encoding used.</param>
+            <param name="lpszStructType">The high-order word is zero, the low-order word specifies the integer identifier for the type of the specified structure so
+            we can use the constants in http://msdn.microsoft.com/en-us/library/windows/desktop/aa378145%28v=vs.85%29.aspx</param>
+            <param name="pvStructInfo">A pointer to the structure to be encoded.</param>
+            <param name="pbEncoded">A pointer to a buffer to receive the encoded structure. This parameter can be NULL to retrieve the size of this information for memory allocation purposes.</param>
+            <param name="pcbEncoded">A pointer to a DWORD variable that contains the size, in bytes, of the buffer pointed to by the pbEncoded parameter.</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>
diff --git a/VueWebApi/bin/Microsoft.Owin.xml b/VueWebApi/bin/Microsoft.Owin.xml
new file mode 100644
index 0000000..15c340b
--- /dev/null
+++ b/VueWebApi/bin/Microsoft.Owin.xml
@@ -0,0 +1,3289 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin</name>
+    </assembly>
+    <members>
+        <member name="T:Owin.AppBuilderUseExtensions">
+            <summary>
+            Extension methods for <see cref="T:Owin.IAppBuilder"/>.
+            </summary>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Use``1(Owin.IAppBuilder,System.Object[])">
+            <summary>
+            Inserts a middleware into the OWIN pipeline.
+            </summary>
+            <typeparam name="T">The middleware type</typeparam>
+            <param name="app"></param>
+            <param name="args">Any additional arguments for the middleware constructor</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Run(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+            <summary>
+            Inserts into the OWIN pipeline a middleware which does not have a next middleware reference.
+            </summary>
+            <param name="app"></param>
+            <param name="handler">An app that handles all requests</param>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Use(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+            <summary>
+            Inserts a middleware into the OWIN pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="handler">An app that handles the request or calls the given next Func</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Extensions.UseHandlerMiddleware">
+            <summary>
+            Represents a middleware for executing in-line function middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.
+            </summary>
+            <param name="next">The pointer to next middleware.</param>
+            <param name="handler">A function that handles all requests.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.
+            </summary>
+            <param name="next">The pointer to next middleware.</param>
+            <param name="handler">A function that handles the request or calls the given next function.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Invokes the handler for processing the request.
+            </summary>
+            <param name="environment">The OWIN context.</param>
+            <returns>The <see cref="T:System.Threading.Tasks.Task" /> object that represents the request operation.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.FormCollection">
+            <summary>
+            Contains the parsed form values.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.ReadableStringCollection">
+            <summary>
+            Accessors for query, forms, etc.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IReadableStringCollection">
+            <summary>
+            Accessors for headers, query, forms, etc.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IReadableStringCollection.Get(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.IReadableStringCollection.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection in their original format.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.IReadableStringCollection.Item(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="store"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.Get(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection in their original format.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.ReadableStringCollection.Item(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.IFormCollection">
+            <summary>
+            Contains the parsed form values.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.FormCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.FormCollection" /> class.
+            </summary>
+            <param name="store">The store for the form.</param>
+        </member>
+        <member name="T:Microsoft.Owin.HeaderDictionary">
+            <summary>
+            Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IHeaderDictionary">
+            <summary>
+            Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.GetCommaSeparatedValues(System.String)">
+            <summary>
+            Get the associated values from the collection separated into individual values.
+            Quoted values will not be split, and the quotes will be removed.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated values from the collection separated into individual values, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.Append(System.String,System.String)">
+            <summary>
+            Add a new value. Appends to the header if already present
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.AppendValues(System.String,System.String[])">
+            <summary>
+            Add new values. Each item remains a separate array entry.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values with any existing values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.Set(System.String,System.String)">
+            <summary>
+            Sets a specific header value.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.SetValues(System.String,System.String[])">
+            <summary>
+            Sets the specified header values without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="P:Microsoft.Owin.IHeaderDictionary.Item(System.String)">
+            <summary>
+            Get or sets the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.HeaderDictionary" /> class.
+            </summary>
+            <param name="store">The underlying data store.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through a collection.
+            </summary>
+            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through a collection.
+            </summary>
+            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Get(System.String)">
+            <summary>
+            Get the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection without modification, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetCommaSeparatedValues(System.String)">
+            <summary>
+            Get the associated values from the collection separated into individual values.
+            Quoted values will not be split, and the quotes will be removed.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated values from the collection separated into individual values, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Append(System.String,System.String)">
+            <summary>
+            Add a new value. Appends to the header if already present
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.AppendValues(System.String,System.String[])">
+            <summary>
+            Add new values. Each item remains a separate array entry.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values with any existing values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Set(System.String,System.String)">
+            <summary>
+            Sets a specific header value.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.SetValues(System.String,System.String[])">
+            <summary>
+            Sets the specified header values without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.String,System.String[])">
+            <summary>
+            Adds the given header and values to the collection.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.ContainsKey(System.String)">
+            <summary>
+            Determines whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key.
+            </summary>
+            <param name="key">The key.</param>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.String)">
+            <summary>
+            Removes the given header from the collection.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>true if the specified object was removed from the collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.TryGetValue(System.String,System.String[]@)">
+            <summary>
+            Retrieves a value from the dictionary.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The value.</param>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains the key; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Adds a new list of items to the collection.
+            </summary>
+            <param name="item">The item to add.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Clear">
+            <summary>
+            Clears the entire list of objects.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Returns a value indicating whether the specified object occurs within this collection.
+            </summary>
+            <param name="item">The item.</param>
+            <returns>true if the specified object occurs within this collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String[]}[],System.Int32)">
+            <summary>
+            Copies the <see cref="T:Microsoft.Owin.HeaderDictionary" /> elements to a one-dimensional Array instance at the specified index.
+            </summary>
+            <param name="array">The one-dimensional Array that is the destination of the specified objects copied from the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</param>
+            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Removes the given item from the the collection.
+            </summary>
+            <param name="item">The item.</param>
+            <returns>true if the specified object was removed from the collection; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Keys">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />;.
+            </summary>
+            <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Values">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Count">
+            <summary>
+            Gets the number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />;.
+            </summary>
+            <returns>The number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.IsReadOnly">
+            <summary>
+            Gets a value that indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode.
+            </summary>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Item(System.String)">
+            <summary>
+            Get or sets the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.System#Collections#Generic#IDictionary{System#String@System#String[]}#Item(System.String)">
+            <summary>
+            Throws KeyNotFoundException if the key is not present.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.HostString">
+            <summary>
+            Represents the host portion of a Uri can be used to construct Uri's properly formatted and encoded for use in
+            HTTP headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.#ctor(System.String)">
+            <summary>
+            Creates a new HostString without modification. The value should be Unicode rather than punycode, and may have a port.
+            IPv4 and IPv6 addresses are also allowed, and also may have ports.
+            </summary>
+            <param name="value"></param>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.ToString">
+            <summary>
+            Returns the value as normalized by ToUriComponent().
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.ToUriComponent">
+            <summary>
+            Returns the value properly formatted and encoded for use in a URI in a HTTP header.
+            Any Unicode is converted to punycode. IPv6 addresses will have brackets added if they are missing.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.String)">
+            <summary>
+            Creates a new HostString from the given uri component.
+            Any punycode will be converted to Unicode.
+            </summary>
+            <param name="uriComponent"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.Uri)">
+            <summary>
+            Creates a new HostString from the host and port of the give Uri instance.
+            Punycode will be converted to Unicode.
+            </summary>
+            <param name="uri"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.Equals(Microsoft.Owin.HostString)">
+            <summary>
+            Compares the equality of the Value property, ignoring case.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.Equals(System.Object)">
+            <summary>
+            Compares against the given object only if it is a HostString.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.GetHashCode">
+            <summary>
+            Gets a hash code for the value.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.op_Equality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+            <summary>
+            Compares the two instances for equality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.op_Inequality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+            <summary>
+            Compares the two instances for inequality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.HostString.Value">
+            <summary>
+            Returns the original value from the constructor.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.CookieManager">
+            <summary>
+            An implementation of ICookieManager that writes directly to IOwinContext.Response.Cookies.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ICookieManager">
+            <summary>
+            An abstraction for reading request cookies and writing response cookies.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Read a cookie with the given name from the request.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Append a cookie to the response.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Append a delete cookie to the response.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Read a cookie with the given name from the request.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by appending an expired cookie.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ChunkingCookieManager">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.#ctor">
+            <summary>
+            Creates a new instance of ChunkingCookieManager.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Get the reassembled cookie. Non chunked cookies are returned normally.
+            Cookies with missing chunks just have their "chunks:XX" header returned.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns>The reassembled cookie, if any, or null.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
+            then it will be broken down into multiple cookies as follows:
+            Set-Cookie: CookieName=chunks:3; path=/
+            Set-Cookie: CookieNameC1=Segment1; path=/
+            Set-Cookie: CookieNameC2=Segment2; path=/
+            Set-Cookie: CookieNameC3=Segment3; path=/
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
+            the request, delete each chunk.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ChunkingCookieManager.ChunkSize">
+             <summary>
+             The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
+             cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all
+             common browsers.
+            
+             Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
+             </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ChunkingCookieManager.ThrowForPartialCookies">
+            <summary>
+            Throw if not all chunks of a cookie are available on a request for re-assembly.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinContext">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinContext.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinContext.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Request">
+            <summary>
+            Gets a wrapper exposing request specific properties.
+            </summary>
+            <returns>A wrapper exposing request specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Response">
+            <summary>
+            Gets a wrapper exposing response specific properties.
+            </summary>
+            <returns>A wrapper exposing response specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Authentication">
+            <summary>
+            Gets the Authentication middleware functionality available on the current request.
+            </summary>
+            <returns>The authentication middleware functionality available on the current request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.TraceOutput">
+            <summary>
+            Gets or sets the host.TraceOutput environment value.
+            </summary>
+            <returns>The host.TraceOutput TextWriter.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinRequest">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.ReadFormAsync">
+            <summary>
+            Asynchronously reads and parses the request body as a form.
+            </summary>
+            <returns>The parsed form data.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Method">
+            <summary>
+            Gets or set the HTTP method.
+            </summary>
+            <returns>The HTTP method.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Scheme">
+            <summary>
+            Gets or set the HTTP request scheme from owin.RequestScheme.
+            </summary>
+            <returns>The HTTP request scheme from owin.RequestScheme.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.IsSecure">
+            <summary>
+            Returns true if the owin.RequestScheme is https.
+            </summary>
+            <returns>true if this request is using https; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Host">
+            <summary>
+            Gets or set the Host header. May include the port.
+            </summary>
+            <return>The Host header.</return>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.PathBase">
+            <summary>
+            Gets or set the owin.RequestPathBase.
+            </summary>
+            <returns>The owin.RequestPathBase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Path">
+            <summary>
+            Gets or set the request path from owin.RequestPath.
+            </summary>
+            <returns>The request path from owin.RequestPath.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.QueryString">
+            <summary>
+            Gets or set the query string from owin.RequestQueryString.
+            </summary>
+            <returns>The query string from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Query">
+            <summary>
+            Gets the query value collection parsed from owin.RequestQueryString.
+            </summary>
+            <returns>The query value collection parsed from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Uri">
+            <summary>
+            Gets the uniform resource identifier (URI) associated with the request.
+            </summary>
+            <returns>The uniform resource identifier (URI) associated with the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Protocol">
+            <summary>
+            Gets or set the owin.RequestProtocol.
+            </summary>
+            <returns>The owin.RequestProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Headers">
+            <summary>
+            Gets the request headers.
+            </summary>
+            <returns>The request headers.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Cookies">
+            <summary>
+            Gets the collection of Cookies for this request.
+            </summary>
+            <returns>The collection of Cookies for this request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.CacheControl">
+            <summary>
+            Gets or sets the Cache-Control header.
+            </summary>
+            <returns>The Cache-Control header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.MediaType">
+            <summary>
+            Gets or sets the Media-Type header.
+            </summary>
+            <returns>The Media-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Accept">
+            <summary>
+            Gets or set the Accept header.
+            </summary>
+            <returns>The Accept header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Body">
+            <summary>
+            Gets or set the owin.RequestBody Stream.
+            </summary>
+            <returns>The owin.RequestBody Stream.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.CallCancelled">
+            <summary>
+            Gets or sets the cancellation token for the request.
+            </summary>
+            <returns>The cancellation token for the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.LocalIpAddress">
+            <summary>
+            Gets or set the server.LocalIpAddress.
+            </summary>
+            <returns>The server.LocalIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.LocalPort">
+            <summary>
+            Gets or set the server.LocalPort.
+            </summary>
+            <returns>The server.LocalPort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.RemoteIpAddress">
+            <summary>
+            Gets or set the server.RemoteIpAddress.
+            </summary>
+            <returns>The server.RemoteIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.RemotePort">
+            <summary>
+            Gets or set the server.RemotePort.
+            </summary>
+            <returns>The server.RemotePort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.User">
+            <summary>
+            Gets or set the server.User.
+            </summary>
+            <returns>The server.User.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinResponse">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+            <summary>
+            Registers for an event that fires when the response headers are sent.
+            </summary>
+            <param name="callback">The callback method.</param>
+            <param name="state">The callback state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Redirect(System.String)">
+            <summary>
+            Sets a 302 response status code and the Location header.
+            </summary>
+            <param name="location">The location where to redirect the client.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.String)">
+            <summary>
+            Writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[])">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[])">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.StatusCode">
+            <summary>
+            Gets or sets the optional owin.ResponseStatusCode.
+            </summary>
+            <returns>The optional owin.ResponseStatusCode, or 200 if not set.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ReasonPhrase">
+            <summary>
+            Gets or sets the the optional owin.ResponseReasonPhrase.
+            </summary>
+            <returns>The the optional owin.ResponseReasonPhrase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Protocol">
+            <summary>
+            Gets or sets the owin.ResponseProtocol.
+            </summary>
+            <returns>The owin.ResponseProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Headers">
+            <summary>
+            Gets the response header collection.
+            </summary>
+            <returns>The response header collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Cookies">
+            <summary>
+            Gets a collection used to manipulate the Set-Cookie header.
+            </summary>
+            <returns>A collection used to manipulate the Set-Cookie header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ContentLength">
+            <summary>
+            Gets or sets the Content-Length header.
+            </summary>
+            <returns>The Content-Length header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Expires">
+            <summary>
+            Gets or sets the Expires header.
+            </summary>
+            <returns>The Expires header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ETag">
+            <summary>
+            Gets or sets the E-Tag header.
+            </summary>
+            <returns>The E-Tag header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Body">
+            <summary>
+            Gets or sets the owin.ResponseBody Stream.
+            </summary>
+            <returns>The owin.ResponseBody Stream.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.OwinStartupAttribute">
+            <summary>
+            Used to mark which class in an assembly should be used for automatic startup.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="startupType">The startup class</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="friendlyName">A non-default configuration, e.g. staging.</param>
+            <param name="startupType">The startup class</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="startupType">The startup class</param>
+            <param name="methodName">Specifies which method to call</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="friendlyName">A non-default configuration, e.g. staging.</param>
+            <param name="startupType">The startup class</param>
+            <param name="methodName">Specifies which method to call</param>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.FriendlyName">
+            <summary>
+            A non-default configuration if any. e.g. Staging.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.StartupType">
+            <summary>
+            The startup class
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.MethodName">
+            <summary>
+            The name of the configuration method
+            </summary>
+        </member>
+        <member name="T:Owin.PipelineStage">
+            <summary>
+            An ordered list of known Asp.Net integrated pipeline stages. More details on the ASP.NET integrated pipeline can be found at http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.Authenticate">
+            <summary>
+            Corresponds to the AuthenticateRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAuthenticate">
+            <summary>
+            Corresponds to the PostAuthenticateRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.Authorize">
+            <summary>
+            Corresponds to the AuthorizeRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAuthorize">
+            <summary>
+            Corresponds to the PostAuthorizeRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.ResolveCache">
+            <summary>
+            Corresponds to the ResolveRequestCache stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostResolveCache">
+            <summary>
+            Corresponds to the PostResolveRequestCache stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.MapHandler">
+            <summary>
+            Corresponds to the MapRequestHandler stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostMapHandler">
+            <summary>
+            Corresponds to the PostMapRequestHandler stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.AcquireState">
+            <summary>
+            Corresponds to the AcquireRequestState stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAcquireState">
+            <summary>
+            Corresponds to the PostAcquireRequestState stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PreHandlerExecute">
+            <summary>
+            Corresponds to the PreRequestHandlerExecute stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="T:Owin.MapExtensions">
+            <summary>
+            Extension methods for the MapMiddleware
+            </summary>
+        </member>
+        <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of
+            continuing to the next component in the pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="pathMatch">The path to match</param>
+            <param name="configuration">The branch to take for positive path matches</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,Microsoft.Owin.PathString,System.Action{Owin.IAppBuilder})">
+            <summary>
+            If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of
+            continuing to the next component in the pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="pathMatch">The path to match</param>
+            <param name="configuration">The branch to take for positive path matches</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapMiddleware">
+            <summary>
+            Used to create path based branches in your application pipeline.
+            The owin.RequestPathBase is not included in the evaluation, only owin.RequestPath.
+            Matching paths have the matching piece removed from owin.RequestPath and added to the owin.RequestPathBase.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},Microsoft.Owin.Mapping.MapOptions)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Mapping.MapMiddleware"/> class
+            </summary>
+            <param name="next">The normal pipeline taken for a negative match</param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapOptions">
+            <summary>
+            Options for the Map middleware
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapOptions.PathMatch">
+            <summary>
+            The path to match
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapOptions.Branch">
+            <summary>
+            The branch taken for a positive match
+            </summary>
+        </member>
+        <member name="T:Owin.MapWhenExtensions">
+            <summary>
+            Extension methods for the MapWhenMiddleware
+            </summary>
+        </member>
+        <member name="M:Owin.MapWhenExtensions.MapWhen(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Boolean},System.Action{Owin.IAppBuilder})">
+            <summary>
+            Branches the request pipeline based on the result of the given predicate.
+            </summary>
+            <param name="app"></param>
+            <param name="predicate">Invoked with the request environment to determine if the branch should be taken</param>
+            <param name="configuration">Configures a branch to take</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.MapWhenExtensions.MapWhenAsync(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task{System.Boolean}},System.Action{Owin.IAppBuilder})">
+            <summary>
+            Branches the request pipeline based on the async result of the given predicate.
+            </summary>
+            <param name="app"></param>
+            <param name="predicate">Invoked asynchronously with the request environment to determine if the branch should be taken</param>
+            <param name="configuration">Configures a branch to take</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapWhenMiddleware">
+            <summary>
+            Determines if the request should take a specific branch of the pipeline by passing the environment
+            to a user defined callback.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},Microsoft.Owin.Mapping.MapWhenOptions)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Mapping.MapWhenMiddleware"/> class
+            </summary>
+            <param name="next">The normal application pipeline</param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapWhenOptions">
+            <summary>
+            Options for the MapWhen middleware
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Predicate">
+            <summary>
+            The user callback that determines if the branch should be taken
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.PredicateAsync">
+            <summary>
+            The async user callback that determines if the branch should be taken
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Branch">
+            <summary>
+            The branch taken for a positive match
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.OwinContext">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Create a new wrapper.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Request">
+            <summary>
+            Gets a wrapper exposing request specific properties.
+            </summary>
+            <returns>A wrapper exposing request specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Response">
+            <summary>
+            Gets a wrapper exposing response specific properties.
+            </summary>
+            <returns>A wrapper exposing response specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Authentication">
+            <summary>
+            Gets the Authentication middleware functionality available on the current request.
+            </summary>
+            <returns>The authentication middleware functionality available on the current request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.TraceOutput">
+            <summary>
+            Gets or sets the host.TraceOutput environment value.
+            </summary>
+            <returns>The host.TraceOutput TextWriter.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.PathString">
+            <summary>
+            Provides correct escaping for Path and PathBase values when needed to reconstruct a request or redirect URI string
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.PathString.Empty">
+            <summary>
+            Represents the empty path. This field is read-only.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.#ctor(System.String)">
+            <summary>
+            Initialize the path string with a given value. This value must be in un-escaped format. Use
+            PathString.FromUriComponent(value) if you have a path value which is in an escaped format.
+            </summary>
+            <param name="value">The unescaped path to be assigned to the Value property.</param>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.ToString">
+            <summary>
+            Provides the path string escaped in a way which is correct for combining into the URI representation. 
+            </summary>
+            <returns>The escaped path value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.ToUriComponent">
+            <summary>
+            Provides the path string escaped in a way which is correct for combining into the URI representation.
+            </summary>
+            <returns>The escaped path value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.String)">
+            <summary>
+            Returns an PathString given the path as it is escaped in the URI format. The string MUST NOT contain any
+            value that is not a path.
+            </summary>
+            <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+            <returns>The resulting PathString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.Uri)">
+            <summary>
+            Returns an PathString given the path as from a Uri object. Relative Uri objects are not supported.
+            </summary>
+            <param name="uri">The Uri object</param>
+            <returns>The resulting PathString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString)">
+            <summary>
+            Checks if this instance starts with or exactly matches the other instance. Only full segments are matched.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString,Microsoft.Owin.PathString@)">
+            <summary>
+            Checks if this instance starts with or exactly matches the other instance. Only full segments are matched.
+            </summary>
+            <param name="other"></param>
+            <param name="remaining">Any remaining segments from this instance not included in the other instance.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.PathString)">
+            <summary>
+            Adds two PathString instances into a combined PathString value. 
+            </summary>
+            <returns>The combined PathString value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.QueryString)">
+            <summary>
+            Combines a PathString and QueryString into the joined URI formatted string value. 
+            </summary>
+            <returns>The joined URI formatted string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString)">
+            <summary>
+            Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.
+            </summary>
+            <param name="other">The second PathString for comparison.</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString,System.StringComparison)">
+            <summary>
+            Compares this PathString value to another value using a specific StringComparison type
+            </summary>
+            <param name="other">The second PathString for comparison</param>
+            <param name="comparisonType">The StringComparison type to use</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(System.Object)">
+            <summary>
+            Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.
+            </summary>
+            <param name="obj">The second PathString for comparison.</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.GetHashCode">
+            <summary>
+            Returns the hash code for the PathString value. The hash code is provided by the OrdinalIgnoreCase implementation.
+            </summary>
+            <returns>The hash code</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Equality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Equals
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Inequality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Equals
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>True if both PathString values are not equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Add
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>The PathString combination of both values</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.QueryString)">
+            <summary>
+            Operator call through to Add
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>The PathString combination of both values</returns>
+        </member>
+        <member name="P:Microsoft.Owin.PathString.Value">
+            <summary>
+            The unescaped path value
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.PathString.HasValue">
+            <summary>
+            True if the path is not empty
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.QueryString">
+            <summary>
+            Provides correct handling for QueryString value when needed to reconstruct a request or redirect URI string
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.QueryString.Empty">
+            <summary>
+            Represents the empty query string. This field is read-only.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.#ctor(System.String)">
+            <summary>
+            Initialize the query string with a given value. This value must be in escaped and delimited format without
+            a leading '?' character. 
+            </summary>
+            <param name="value">The query string to be assigned to the Value property.</param>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.#ctor(System.String,System.String)">
+            <summary>
+            Initialize a query string with a single given parameter name and value. The value is 
+            </summary>
+            <param name="name">The unencoded parameter name</param>
+            <param name="value">The unencoded parameter value</param>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.ToString">
+            <summary>
+            Provides the query string escaped in a way which is correct for combining into the URI representation. 
+            A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially
+            dangerous are escaped.
+            </summary>
+            <returns>The query string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.ToUriComponent">
+            <summary>
+            Provides the query string escaped in a way which is correct for combining into the URI representation. 
+            A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially
+            dangerous are escaped.
+            </summary>
+            <returns>The query string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.String)">
+            <summary>
+            Returns an QueryString given the query as it is escaped in the URI format. The string MUST NOT contain any
+            value that is not a query.
+            </summary>
+            <param name="uriComponent">The escaped query as it appears in the URI format.</param>
+            <returns>The resulting QueryString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.Uri)">
+            <summary>
+            Returns an QueryString given the query as from a Uri object. Relative Uri objects are not supported.
+            </summary>
+            <param name="uri">The Uri object</param>
+            <returns>The resulting QueryString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.Equals(Microsoft.Owin.QueryString)">
+            <summary>
+            Indicates whether the current instance is equal to the other instance.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.Equals(System.Object)">
+            <summary>
+            Indicates whether the current instance is equal to the other instance.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.op_Equality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+            <summary>
+            Compares the two instances for equality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.op_Inequality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+            <summary>
+            Compares the two instances for inequality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.QueryString.Value">
+            <summary>
+            The escaped query string without the leading '?' character
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.QueryString.HasValue">
+            <summary>
+            True if the query string is not empty
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.RequestCookieCollection">
+            <summary>
+            A wrapper for the request Cookie header
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="store"></param>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.RequestCookieCollection.Item(System.String)">
+            <summary>
+            Returns null rather than throwing KeyNotFoundException
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_ConversionTakesOneParameter">
+            <summary>
+              Looks up a localized string similar to Conversion delegate must take one parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_CookieLimitTooSmall">
+            <summary>
+              Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_ImcompleteChunkedCookie">
+            <summary>
+              Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_MiddlewareNotSupported">
+            <summary>
+              Looks up a localized string similar to The type &apos;{0}&apos; does not match any known middleware pattern..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_MissingOnSendingHeaders">
+            <summary>
+              Looks up a localized string similar to The OWIN key &apos;server.OnSendingHeaders&apos; is not available for this request..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_NoConstructorFound">
+            <summary>
+              Looks up a localized string similar to The class &apos;{0}&apos; does not have a constructor taking {1} arguments..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_NoConversionExists">
+            <summary>
+              Looks up a localized string similar to No conversion available between {0} and {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathMustNotEndWithSlash">
+            <summary>
+              Looks up a localized string similar to The path must not end with a &apos;/&apos;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathMustStartWithSlash">
+            <summary>
+              Looks up a localized string similar to The path must start with a &apos;/&apos; followed by one or more characters..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathRequired">
+            <summary>
+              Looks up a localized string similar to The path is required.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_QueryStringMustStartWithDelimiter">
+            <summary>
+              Looks up a localized string similar to The query string must start with a &apos;?&apos; unless null or empty..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.AppBuilder">
+            <summary>
+            A standard implementation of IAppBuilder 
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor">
+            <summary>
+            Initializes a new instance of the the type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor(System.Collections.Generic.IDictionary{System.Tuple{System.Type,System.Type},System.Delegate},System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            
+            </summary>
+            <param name="conversions"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.Use(System.Object,System.Object[])">
+            <summary>
+            Adds a middleware node to the OWIN function pipeline. The middleware are
+            invoked in the order they are added: the first middleware passed to Use will
+            be the outermost function, and the last middleware passed to Use will be the
+            innermost.
+            </summary>
+            <param name="middleware">
+            The middleware parameter determines which behavior is being chained into the
+            pipeline. 
+            
+            If the middleware given to Use is a Delegate, then it will be invoked with the "next app" in 
+            the chain as the first parameter. If the delegate takes more than the single argument, 
+            then the additional values must be provided to Use in the args array.
+            
+            If the middleware given to Use is a Type, then the public constructor will be 
+            invoked with the "next app" in the chain as the first parameter. The resulting object
+            must have a public Invoke method. If the object has constructors which take more than
+            the single "next app" argument, then additional values may be provided in the args array.
+            </param>
+            <param name="args">
+            Any additional args passed to Use will be passed as additional values, following the "next app"
+            parameter, when the OWIN call pipeline is build.
+            
+            They are passed as additional parameters if the middleware parameter is a Delegate, or as additional
+            constructor arguments if the middle parameter is a Type.
+            </param>
+            <returns>
+            The IAppBuilder itself is returned. This enables you to chain your use statements together.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.New">
+            <summary>
+            The New method creates a new instance of an IAppBuilder. This is needed to create
+            a tree structure in your processing, rather than a linear pipeline. The new instance share the
+            same Properties, but will be created with a new, empty middleware list.
+            
+            To create a tangent pipeline you would first call New, followed by several calls to Use on 
+            the new builder, ending with a call to Build on the new builder. The return value from Build
+            will be the entry-point to your tangent pipeline. This entry-point may now be added to the
+            main pipeline as an argument to a switching middleware, which will either call the tangent
+            pipeline or the "next app", based on something in the request.
+            
+            That said - all of that work is typically hidden by a middleware like Map, which will do that
+            for you.
+            </summary>
+            <returns>The new instance of the IAppBuilder implementation</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.Build(System.Type)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. This is typically done by the hosting component which created the app builder,
+            and does not need to be called by the startup method if the IAppBuilder is passed in.
+            </summary>
+            <param name="returnType">
+            The Type argument indicates which calling convention should be returned, and
+            is typically typeof(<typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/>) for the OWIN
+            calling convention.
+            </param>
+            <returns>
+            Returns an instance of the pipeline's entry point. This object may be safely cast to the
+            type which was provided
+            </returns>
+        </member>
+        <member name="P:Microsoft.Owin.Builder.AppBuilder.Properties">
+            <summary>
+            Contains arbitrary properties which may added, examined, and modified by
+            components during the startup sequence. 
+            </summary>
+            <returns>Returns <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.NotFound">
+            <summary>
+            Simple object used by AppBuilder as seed OWIN callable if the
+            builder.Properties["builder.DefaultApp"] is not set
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ISystemClock">
+            <summary>
+            Abstracts the system clock to facilitate testing.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ISystemClock.UtcNow">
+            <summary>
+            Retrieves the current system time in UTC.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.SystemClock">
+            <summary>
+            Provides access to the normal system clock.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.SystemClock.UtcNow">
+            <summary>
+            Retrieves the current system time in UTC.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.WebUtilities">
+            <summary>
+            Response generation utilities.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String)">
+            <summary>
+            Append the given query to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="queryString">The query string to append, if any.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String,System.String)">
+            <summary>
+            Append the given query key and value to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="name">The name of the query key.</param>
+            <param name="value">The query value.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Append the given query keys and values to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="queryString">A collection of name value query pairs to append.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.ResponseCookieCollection">
+            <summary>
+            A wrapper for the response Set-Cookie header
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.#ctor(Microsoft.Owin.IHeaderDictionary)">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="headers"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String)">
+            <summary>
+            Add a new cookie and value
+            </summary>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Add a new cookie
+            </summary>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String)">
+            <summary>
+            Sets an expired cookie
+            </summary>
+            <param name="key"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Sets an expired cookie
+            </summary>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticateResult">
+            <summary>
+            Acts as the return value from calls to the IAuthenticationManager's AuthenticeAsync methods.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticateResult.#ctor(System.Security.Principal.IIdentity,Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Security.AuthenticationDescription)">
+            <summary>
+            Create an instance of the result object
+            </summary>
+            <param name="identity">Assigned to Identity. May be null.</param>
+            <param name="properties">Assigned to Properties. Contains extra information carried along with the identity.</param>
+            <param name="description">Assigned to Description. Contains information describing the authentication provider.</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Identity">
+            <summary>
+            Contains the claims that were authenticated by the given AuthenticationType. If the authentication
+            type was not successful the Identity property will be null.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Properties">
+            <summary>
+            Contains extra values that were provided with the original SignIn call.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Description">
+            <summary>
+            Contains description properties for the middleware authentication type in general. Does not
+            vary per request.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationDescription">
+            <summary>
+            Contains information describing an authentication provider.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationDescription"/> class
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationDescription"/> class
+            </summary>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Properties">
+            <summary>
+            Contains metadata about the authentication provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.AuthenticationType">
+            <summary>
+            Gets or sets the name used to reference the authentication middleware instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Caption">
+            <summary>
+            Gets or sets the display name for the authentication provider.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions">
+            <summary>
+            Extension methods used to indicate at which stage in the integrated pipeline prior middleware should run.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,System.String)">
+            <summary>
+            Call after other middleware to specify when they should run in the integrated pipeline.
+            </summary>
+            <param name="app">The IAppBuilder.</param>
+            <param name="stageName">The name of the integrated pipeline in which to run.</param>
+            <returns>The original IAppBuilder for chaining.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,Owin.PipelineStage)">
+            <summary>
+            Call after other middleware to specify when they should run in the integrated pipeline.
+            </summary>
+            <param name="app">The IAppBuilder.</param>
+            <param name="stage">The stage of the integrated pipeline in which to run.</param>
+            <returns>The original IAppBuilder for chaining.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.AppBuilderLoggerExtensions">
+            <summary>
+            Logging extension methods for IAppBuilder.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.SetLoggerFactory(Owin.IAppBuilder,Microsoft.Owin.Logging.ILoggerFactory)">
+            <summary>
+            Sets the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="loggerFactory"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.GetLoggerFactory(Owin.IAppBuilder)">
+            <summary>
+            Retrieves the server.LoggerFactory from the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.String)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.Type)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="component"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger``1(Owin.IAppBuilder)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <typeparam name="TType"></typeparam>
+            <param name="app"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.ILoggerFactory">
+            <summary>
+            Used to create logger instances of the given name.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.ILoggerFactory.Create(System.String)">
+            <summary>
+            Creates a new ILogger instance of the given name.
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.ILogger">
+            <summary>
+            A generic interface for logging.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.ILogger.WriteCore(System.Diagnostics.TraceEventType,System.Int32,System.Object,System.Exception,System.Func{System.Object,System.Exception,System.String})">
+            <summary>
+            Aggregates most logging patterns to a single method.  This must be compatible with the Func representation in the OWIN environment.
+            
+            To check IsEnabled call WriteCore with only TraceEventType and check the return value, no event will be written.
+            </summary>
+            <param name="eventType"></param>
+            <param name="eventId"></param>
+            <param name="state"></param>
+            <param name="exception"></param>
+            <param name="formatter"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.Address">
+            <summary>
+            Contains the parts of an address.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.String,System.String,System.String,System.String)">
+            <summary>
+            Initializes a new <see cref="T:Microsoft.Owin.BuilderProperties.Address"/> with the given parts.
+            </summary>
+            <param name="scheme">The scheme.</param>
+            <param name="host">The host.</param>
+            <param name="port">The port.</param>
+            <param name="path">The path.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Create">
+            <summary>
+            Creates a new <see cref="T:Microsoft.Owin.BuilderProperties.Address"/>
+            </summary>
+            <returns>A new <see cref="T:Microsoft.Owin.BuilderProperties.Address" /></returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether the specified object is equal to the current object.
+            </summary>
+            <param name="other">The other object.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(System.Object)">
+            <summary>
+            Determines whether the specified object is equal to the current object.
+            </summary>
+            <param name="obj">The other object.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Equality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if left and right represent the same address; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Inequality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are not equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if left and right do not represent the same address; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Get``1(System.String)">
+            <summary>
+            Gets a specified key and value from the underlying dictionary.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Set(System.String,System.Object)">
+            <summary>
+            Sets a specified key and value in the underlying dictionary.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Dictionary">
+            <summary>
+            Gets the internal dictionary for this collection.
+            </summary>
+            <returns>The internal dictionary for this collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Scheme">
+            <summary>
+            The uri scheme.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Host">
+            <summary>
+            The uri host.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Port">
+            <summary>
+            The uri port.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Path">
+            <summary>
+            The uri path.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.AddressCollection">
+            <summary>
+            Wraps the host.Addresses list.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.#ctor(System.Collections.Generic.IList{System.Collections.Generic.IDictionary{System.String,System.Object}})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> class.
+            </summary>
+            <param name="list">The address list to set to the collection.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Add(Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Adds the specified address to the collection.
+            </summary>
+            <param name="address">The address to add to the collection.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Gets the enumerator that iterates through the collection.
+            </summary>
+            <returns>The enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetEnumerator">
+            <summary>
+            Gets the enumerator that iterates through the collection.
+            </summary>
+            <returns>The enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Create">
+            <summary>
+            Creates a new empty instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" />.
+            </summary>
+            <returns>A new empty instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" />.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the current collection is equal to the specified collection.
+            </summary>
+            <param name="other">The other collection to compare to the current collection.</param>
+            <returns>true if current collection is equal to the specified collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(System.Object)">
+            <summary>
+            Determines whether the current collection is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare to the current collection.</param>
+            <returns>true if current collection is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetHashCode">
+            <summary>
+            Gets the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Equality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the first collection is equal to the second collection.
+            </summary>
+            <param name="left">The first collection to compare.</param>
+            <param name="right">The second collection to compare.</param>
+            <returns>true if both collections are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Inequality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the first collection is not equal to the second collection.
+            </summary>
+            <param name="left">The first collection to compare.</param>
+            <param name="right">The second collection to compare.</param>
+            <returns>true if both collections are not equal; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.List">
+            <summary>
+            Gets the underlying address list.
+            </summary>
+            <returns>The underlying address list.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Count">
+            <summary>
+            Gets the number of elements in the collection.
+            </summary>
+            <returns>The number of elements in the collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Item(System.Int32)">
+            <summary>
+            Gets the item with the specified index from the collection.
+            </summary>
+            <param name="index">The index.</param>
+            <returns>The item with the specified index.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.AppProperties">
+            <summary>
+            A wrapper for the <see cref="P:Microsoft.Owin.Builder.AppBuilder.Properties" /> IDictionary.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> class.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the current AppProperties is equal to the specified AppProperties.
+            </summary>
+            <param name="other">The other AppProperties to compare with the current instance.</param>
+            <returns>true if the current AppProperties is equal to the specified AppProperties; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(System.Object)">
+            <summary>
+            Determines whether the current AppProperties is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare with the current instance.</param>
+            <returns>true if the current AppProperties is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Equality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the first AppPProperties is equal to the second AppProperties.
+            </summary>
+            <param name="left">The first AppPropeties to compare.</param>
+            <param name="right">The second AppPropeties to compare.</param>
+            <returns>true if both AppProperties are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Inequality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the first AppPProperties is not equal to the second AppProperties.
+            </summary>
+            <param name="left">The first AppPropeties to compare.</param>
+            <param name="right">The second AppPropeties to compare.</param>
+            <returns>true if both AppProperties are not equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Get``1(System.String)">
+            <summary>
+            Gets the value from the dictionary with the specified key.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Set(System.String,System.Object)">
+            <summary>
+            Sets the value with the specified key.
+            </summary>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OwinVersion">
+            <summary>
+            Gets or sets the string value for 鈥渙win.Version鈥�.
+            </summary>
+            <returns>The string value for 鈥渙win.Version鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.DefaultApp">
+            <summary>
+            Gets or sets the function delegate for 鈥渂uilder.DefaultApp鈥�.
+            </summary>
+            <returns>The function delegate for 鈥渂uilder.DefaultApp鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AddSignatureConversionDelegate">
+            <summary>
+            Gets or sets the action delegate for 鈥渂uilder.AddSignatureConversion鈥�.
+            </summary>
+            <returns>The action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AppName">
+            <summary>
+            Gets or sets the string value for 鈥渉ost.AppName鈥�.
+            </summary>
+            <returns>The string value for 鈥渉ost.AppName鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.TraceOutput">
+            <summary>
+            Gets or sets the text writer for 鈥渉ost.TraceOutput鈥�.
+            </summary>
+            <returns>The text writer for 鈥渉ost.TraceOutput鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OnAppDisposing">
+            <summary>
+            Gets or sets the cancellation token for 鈥渉ost.OnAppDisposing鈥�.
+            </summary>
+            <returns>The cancellation token for 鈥渉ost.OnAppDisposing鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Addresses">
+            <summary>
+            Gets or sets the address collection for 鈥渉ost.Addresses鈥�.
+            </summary>
+            <returns>The address collection for 鈥渉ost.Addresses鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Capabilities">
+            <summary>
+            Gets or sets the list of 鈥渟erver.Capabilities鈥�.
+            </summary>
+            <returns>The list of 鈥渟erver.Capabilities鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Dictionary">
+            <summary>
+            Gets the underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.
+            </summary>
+            <returns>The underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.Capabilities">
+            <summary>
+            Represents the capabilities for the builder properties.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Create">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.
+            </summary>
+            <returns>A new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether the current Capabilities instance is equal to the specified Capabilities.
+            </summary>
+            <param name="other">The other Capabilities to compare with the current instance.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(System.Object)">
+            <summary>
+            Determines whether the current Capabilities is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare with the current instance.</param>
+            <returns>true if the current Capabilities is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Equality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Inequality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are not equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are not equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Get``1(System.String)">
+            <summary>
+            Gets the value from the dictionary with the specified key.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Set(System.String,System.Object)">
+            <summary>
+            Sets the given key and value in the underlying dictionary.
+            </summary>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.Dictionary">
+            <summary>
+            The underling IDictionary
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.SendFileVersion">
+            <summary>
+            Gets or sets the string value for "sendfile.Version"
+            </summary>
+            <returns>the string value for "sendfile.Version"</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.WebSocketVersion">
+            <summary>
+            Gets or sets the websocket version.
+            </summary>
+            <returns>The websocket version.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.CookieOptions">
+            <summary>
+            Options used to create a new cookie.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.CookieOptions.#ctor">
+            <summary>
+            Creates a default cookie with a path of '/'.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Domain">
+            <summary>
+            Gets or sets the domain to associate the cookie with.
+            </summary>
+            <returns>The domain to associate the cookie with.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Path">
+            <summary>
+            Gets or sets the cookie path.
+            </summary>
+            <returns>The cookie path.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Expires">
+            <summary>
+            Gets or sets the expiration date and time for the cookie.
+            </summary>
+            <returns>The expiration date and time for the cookie.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Secure">
+            <summary>
+            Gets or sets a value that indicates whether to transmit the cookie using Secure Sockets Layer (SSL)鈥攖hat is, over HTTPS only.
+            </summary>
+            <returns>true to transmit the cookie only over an SSL connection (HTTPS); otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.HttpOnly">
+            <summary>
+            Gets or sets a value that indicates whether a cookie is accessible by client-side script.
+            </summary>
+            <returns>true if a cookie is accessible by client-side script; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.LoggerFactory">
+            <summary>
+            Provides a default ILoggerFactory.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Logging.LoggerFactory.Default">
+            <summary>
+            Provides a default ILoggerFactory based on System.Diagnostics.TraceSorce.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.AppBuilderExtensions">
+            <summary>
+            Extension methods for IAppBuilder.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build(Owin.IAppBuilder)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. May be called to build pipeline branches.
+            </summary>
+            <param name="builder"></param>
+            <returns>The request processing entry point for this section of the pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build``1(Owin.IAppBuilder)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. May be called to build pipeline branches.
+            </summary>
+            <typeparam name="TApp">The application signature.</typeparam>
+            <param name="builder"></param>
+            <returns>The request processing entry point for this section of the pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion(Owin.IAppBuilder,System.Delegate)">
+            <summary>
+            Adds converters for adapting between disparate application signatures.
+            </summary>
+            <param name="builder"></param>
+            <param name="conversion"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion``2(Owin.IAppBuilder,System.Func{``0,``1})">
+            <summary>
+            Adds converters for adapting between disparate application signatures.
+            </summary>
+            <typeparam name="T1"></typeparam>
+            <typeparam name="T2"></typeparam>
+            <param name="builder"></param>
+            <param name="conversion"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Helpers.WebHelpers">
+            <summary>
+            Provides helper methods for processing requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Helpers.WebHelpers.ParseForm(System.String)">
+            <summary>
+            Parses an HTTP form body.
+            </summary>
+            <param name="text">The HTTP form body to parse.</param>
+            <returns>The <see cref="T:Microsoft.Owin.IFormCollection" /> object containing the parsed HTTP form body.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.AppFuncTransition">
+            <summary>
+            Converts between an OwinMiddlware and an <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.OwinMiddleware">
+            <summary>
+            An abstract base class for a standard middleware pattern.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinMiddleware.#ctor(Microsoft.Owin.OwinMiddleware)">
+            <summary>
+            Instantiates the middleware with an optional pointer to the next component.
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinMiddleware.Next">
+            <summary>
+            The optional next component.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.AppFuncTransition.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task})">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.AppFuncTransition.Invoke(Microsoft.Owin.IOwinContext)">
+            <summary>
+            
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition">
+            <summary>
+            Transitions between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition.#ctor(Microsoft.Owin.OwinMiddleware)">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.SignatureConversions">
+            <summary>
+            Adds adapters between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(Owin.IAppBuilder)">
+            <summary>
+            Adds adapters between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+            <param name="app"></param>
+        </member>
+        <member name="T:Microsoft.Owin.OwinRequest">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Create a new environment wrapper exposing request properties.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.ReadFormAsync">
+            <summary>
+            Asynchronously reads and parses the request body as a form.
+            </summary>
+            <returns>The parsed form data.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Method">
+            <summary>
+            Gets or set the HTTP method.
+            </summary>
+            <returns>The HTTP method.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Scheme">
+            <summary>
+            Gets or set the HTTP request scheme from owin.RequestScheme.
+            </summary>
+            <returns>The HTTP request scheme from owin.RequestScheme.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.IsSecure">
+            <summary>
+            Returns true if the owin.RequestScheme is https.
+            </summary>
+            <returns>true if this request is using https; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Host">
+            <summary>
+            Gets or set the Host header. May include the port.
+            </summary>
+            <return>The Host header.</return>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.PathBase">
+            <summary>
+            Gets or set the owin.RequestPathBase.
+            </summary>
+            <returns>The owin.RequestPathBase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Path">
+            <summary>
+            Gets or set the request path from owin.RequestPath.
+            </summary>
+            <returns>The request path from owin.RequestPath.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.QueryString">
+            <summary>
+            Gets or set the query string from owin.RequestQueryString.
+            </summary>
+            <returns>The query string from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Query">
+            <summary>
+            Gets the query value collection parsed from owin.RequestQueryString.
+            </summary>
+            <returns>The query value collection parsed from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Uri">
+            <summary>
+            Gets the uniform resource identifier (URI) associated with the request.
+            </summary>
+            <returns>The uniform resource identifier (URI) associated with the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Protocol">
+            <summary>
+            Gets or set the owin.RequestProtocol.
+            </summary>
+            <returns>The owin.RequestProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Headers">
+            <summary>
+            Gets the request headers.
+            </summary>
+            <returns>The request headers.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Cookies">
+            <summary>
+            Gets the collection of Cookies for this request.
+            </summary>
+            <returns>The collection of Cookies for this request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.CacheControl">
+            <summary>
+            Gets or sets the Cache-Control header.
+            </summary>
+            <returns>The Cache-Control header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.MediaType">
+            <summary>
+            Gets or sets the Media-Type header.
+            </summary>
+            <returns>The Media-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Accept">
+            <summary>
+            Gets or set the Accept header.
+            </summary>
+            <returns>The Accept header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Body">
+            <summary>
+            Gets or set the owin.RequestBody Stream.
+            </summary>
+            <returns>The owin.RequestBody Stream.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.CallCancelled">
+            <summary>
+            Gets or sets the cancellation token for the request.
+            </summary>
+            <returns>The cancellation token for the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.LocalIpAddress">
+            <summary>
+            Gets or set the server.LocalIpAddress.
+            </summary>
+            <returns>The server.LocalIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.LocalPort">
+            <summary>
+            Gets or set the server.LocalPort.
+            </summary>
+            <returns>The server.LocalPort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.RemoteIpAddress">
+            <summary>
+            Gets or set the server.RemoteIpAddress.
+            </summary>
+            <returns>The server.RemoteIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.RemotePort">
+            <summary>
+            Gets or set the server.RemotePort.
+            </summary>
+            <returns>The server.RemotePort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.User">
+            <summary>
+            Gets or set the server.User.
+            </summary>
+            <returns>The server.User.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.OwinResponse">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Creates a new environment wrapper exposing response properties.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+            <summary>
+            Registers for an event that fires when the response headers are sent.
+            </summary>
+            <param name="callback">The callback method.</param>
+            <param name="state">The callback state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Redirect(System.String)">
+            <summary>
+            Sets a 302 response status code and the Location header.
+            </summary>
+            <param name="location">The location where to redirect the client.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.String)">
+            <summary>
+            Writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[])">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[])">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.StatusCode">
+            <summary>
+            Gets or sets the optional owin.ResponseStatusCode.
+            </summary>
+            <returns>The optional owin.ResponseStatusCode, or 200 if not set.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ReasonPhrase">
+            <summary>
+            Gets or sets the the optional owin.ResponseReasonPhrase.
+            </summary>
+            <returns>The the optional owin.ResponseReasonPhrase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Protocol">
+            <summary>
+            Gets or sets the owin.ResponseProtocol.
+            </summary>
+            <returns>The owin.ResponseProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Headers">
+            <summary>
+            Gets the response header collection.
+            </summary>
+            <returns>The response header collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Cookies">
+            <summary>
+            Gets a collection used to manipulate the Set-Cookie header.
+            </summary>
+            <returns>A collection used to manipulate the Set-Cookie header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ContentLength">
+            <summary>
+            Gets or sets the Content-Length header.
+            </summary>
+            <returns>The Content-Length header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Expires">
+            <summary>
+            Gets or sets the Expires header.
+            </summary>
+            <returns>The Expires header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ETag">
+            <summary>
+            Gets or sets the E-Tag header.
+            </summary>
+            <returns>The E-Tag header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Body">
+            <summary>
+            Gets or sets the owin.ResponseBody Stream.
+            </summary>
+            <returns>The owin.ResponseBody Stream.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.IAuthenticationManager">
+            <summary>
+            Used to interact with authentication middleware that have been chained in the pipeline
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes">
+            <summary>
+            Lists all of the description data provided by authentication middleware that have been chained
+            </summary>
+            <returns>The authentication descriptions</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes(System.Func{Microsoft.Owin.Security.AuthenticationDescription,System.Boolean})">
+            <summary>
+            Lists the description data of all of the authentication middleware which are true for a given predicate
+            </summary>
+            <param name="predicate">A function provided by the caller which returns true for descriptions that should be in the returned list</param>
+            <returns>The authentication descriptions</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String)">
+            <summary>
+            Call back through the middleware to ask for a specific form of authentication to be performed
+            on the current request
+            </summary>
+            <param name="authenticationType">Identifies which middleware should respond to the request
+            for authentication. This value is compared to the middleware's Options.AuthenticationType property.</param>
+            <returns>Returns an object with the results of the authentication. The AuthenticationResult.Identity
+            may be null if authentication failed. Even if the Identity property is null, there may still be 
+            AuthenticationResult.properties and AuthenticationResult.Description information returned.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String[])">
+            <summary>
+            Called to perform any number of authentication mechanisms on the current request.
+            </summary>
+            <param name="authenticationTypes">Identifies one or more middleware which should attempt to respond</param>
+            <returns>Returns the AuthenticationResult information from the middleware which responded. The 
+            order is determined by the order the middleware are in the pipeline. Latest added is first in the list.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+            <summary>
+            Add information into the response environment that will cause the authentication middleware to challenge
+            the caller to authenticate. This also changes the status code of the response to 401. The nature of that 
+            challenge varies greatly, and ranges from adding a response header or changing the 401 status code to 
+            a 302 redirect.
+            </summary>
+            <param name="properties">Additional arbitrary values which may be used by particular authentication types.</param>
+            <param name="authenticationTypes">Identify which middleware should perform their alterations on the
+            response. If the authenticationTypes is null or empty, that means the 
+            AuthenticationMode.Active middleware should perform their alterations on the response.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(System.String[])">
+            <summary>
+            Add information into the response environment that will cause the authentication middleware to challenge
+            the caller to authenticate. This also changes the status code of the response to 401. The nature of that 
+            challenge varies greatly, and ranges from adding a response header or changing the 401 status code to 
+            a 302 redirect.
+            </summary>
+            <param name="authenticationTypes">Identify which middleware should perform their alterations on the
+            response. If the authenticationTypes is null or empty, that means the 
+            AuthenticationMode.Active middleware should perform their alterations on the response.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties,System.Security.Claims.ClaimsIdentity[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary.
+            Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2
+            access code or token response.
+            </summary>
+            <param name="properties">Contains additional properties the middleware are expected to persist along with
+            the claims. These values will be returned as the AuthenticateResult.properties collection when AuthenticateAsync
+            is called on subsequent requests.</param>
+            <param name="identities">Determines which claims are granted to the signed in user. The 
+            ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType 
+            value to determine which claims are granted by which middleware. The recommended use is to have a single
+            ClaimsIdentity which has the AuthenticationType matching a specific middleware.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(System.Security.Claims.ClaimsIdentity[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary.
+            Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2
+            access code or token response.
+            </summary>
+            <param name="identities">Determines which claims are granted to the signed in user. The 
+            ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType 
+            value to determine which claims are granted by which middleware. The recommended use is to have a single
+            ClaimsIdentity which has the AuthenticationType matching a specific middleware.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to revoke any claims identity associated the the caller. The exact method varies.
+            </summary>
+            <param name="properties">Additional arbitrary values which may be used by particular authentication types.</param>
+            <param name="authenticationTypes">Identifies which middleware should perform the work to sign out.
+            Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear
+            cookies and redirect to an external single-sign out url.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(System.String[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to revoke any claims identity associated the the caller. The exact method varies.
+            </summary>
+            <param name="authenticationTypes">Identifies which middleware should perform the work to sign out.
+            Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear
+            cookies and redirect to an external single-sign out url.</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.User">
+            <summary>
+            Returns the current user for the request
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationManager.Authenticate(System.String[],System.Action{System.Security.Principal.IIdentity,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Object},System.Object},System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="callback"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut environment value as a strong type.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationProperties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> class
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> class
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.Dictionary">
+            <summary>
+            State values about the authentication session.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IsPersistent">
+            <summary>
+            Gets or sets whether the authentication session is persisted across multiple requests.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.RedirectUri">
+            <summary>
+            Gets or sets the full path or absolute URI to be used as an http redirect response value. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IssuedUtc">
+            <summary>
+            Gets or sets the time at which the authentication ticket was issued.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.ExpiresUtc">
+            <summary>
+            Gets or sets the time at which the authentication ticket expires.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.AllowRefresh">
+            <summary>
+            Gets or sets if refreshing the authentication session should be allowed.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseChallenge.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseChallenge"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.AuthenticationTypes">
+            <summary>
+            List of the authentication types that should send a challenge in the response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseGrant"/> class.
+            </summary>
+            <param name="identity"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsPrincipal,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseGrant"/> class.
+            </summary>
+            <param name="principal"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Identity">
+            <summary>
+            The identity associated with the user sign in.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Principal">
+            <summary>
+            The security principal associated with the user sign in.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut and security.SignOutProperties environment values as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.AuthenticationTypes">
+            <summary>
+            List of the authentication types that should be revoked on sign out.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory">
+            <summary>
+            Provides an ILoggerFactory based on System.Diagnostics.TraceSource.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory"/> class. 
+            </summary>
+            <summary>
+            Creates a factory named "Microsoft.Owin".
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory"/> class.
+            </summary>
+            <param name="rootSourceSwitch"></param>
+            <param name="rootTraceListener"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.Create(System.String)">
+            <summary>
+            Creates a new DiagnosticsLogger for the given component name.
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.LoggerExtensions">
+            <summary>
+            ILogger extension methods for common scenarios.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.IsEnabled(Microsoft.Owin.Logging.ILogger,System.Diagnostics.TraceEventType)">
+            <summary>
+            Checks if the given TraceEventType is enabled.
+            </summary>
+            <param name="logger"></param>
+            <param name="eventType"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteVerbose(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes a verbose log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="data"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteInformation(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes an informational log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.String[])">
+            <summary>
+            Writes a warning log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes a warning log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes an error log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes an error log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes a critical log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes a critical log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+    </members>
+</doc>
diff --git a/VueWebApi/bin/VueWebApi.dll.config b/VueWebApi/bin/VueWebApi.dll.config
index bc0b1a5..4cd68b7 100644
--- a/VueWebApi/bin/VueWebApi.dll.config
+++ b/VueWebApi/bin/VueWebApi.dll.config
@@ -126,6 +126,14 @@
 				<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
 				<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
 			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
 		</assemblyBinding>
 	</runtime>
 	<system.codedom>
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 13a81b5..6e332bb 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index 01b4d26..78a62ed 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -4,13 +4,6 @@
         <name>VueWebApi</name>
     </assembly>
     <members>
-        <member name="M:VueWebApi.SwaggerConfig.GetXmlCommentsPath(System.String)">
-            <summary>
-            XML璺緞鎷兼帴
-            </summary>
-            <param name="name"></param>
-            <returns></returns>
-        </member>
         <member name="T:VueWebApi.App_Start.SwaggerControllerDescProvider">
             <summary>
             swagger鏄剧ず鎺у埗鍣ㄧ殑鎻忚堪
@@ -28,6 +21,13 @@
             浠嶢PI鏂囨。涓鍙栨帶鍒跺櫒鎻忚堪
             </summary>
             <returns>鎵�鏈夋帶鍒跺櫒鎻忚堪</returns>
+        </member>
+        <member name="M:VueWebApi.SwaggerConfig.GetXmlCommentsPath(System.String)">
+            <summary>
+            XML璺緞鎷兼帴
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
         </member>
         <member name="M:VueWebApi.Areas.HelpPage.ApiDescriptionExtensions.GetFriendlyId(System.Web.Http.Description.ApiDescription)">
             <summary>
@@ -506,6 +506,31 @@
             </summary>
             <param name="documentPath">The physical path to XML document.</param>
         </member>
+        <member name="F:VueWebApi.Hubs.ChatHub.userList">
+            <summary>
+            闈欐�佺敤鎴峰垪琛�
+            </summary>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub._connections">
+            <summary>
+            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
+            </summary>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
+            <summary>
+            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
+            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
+            </summary>
+            <param name="name1">鍙戣捣鑰�</param>
+            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
+            <param name="cont">娑堟伅鍐呭</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟
+            </summary>
+            <param name="name"></param>
+        </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
             鏃ュ父鐐规,鎵弿宸ヤ綅/璁惧浜岀淮鐮�
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index e28dd03..7004af0 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html
new file mode 100644
index 0000000..5bccdbd
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html
@@ -0,0 +1,77 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("寮犱笁");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+
+            //鍚庣SendLogin璋冪敤鍚庯紝浜х敓鐨刲oginUser鍥炶皟
+            work.client.loginUser = function (userlist) {
+                reloadUser(userlist);
+            };
+
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+                //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
+                $('#send').click(function () {
+                    var friend = $('#username').val();
+                    var cont = $('#cont').val();
+                    //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
+                    work.server.sendByGroup(username, friend, cont);
+                });
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        var reloadUser = function () {
+            $("#username").empty();
+            for (i = 0; i < 5; i++) {
+                $("#username").append("<option value=" + i + ">" +i + "</option>");
+            }
+        }
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
new file mode 100644
index 0000000..4b675b1
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
@@ -0,0 +1,62 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("1");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        //var reloadUser = function () {
+        //    $("#username").empty();
+        //    for (i = 0; i < 5; i++) {
+        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
+        //    }
+        //}
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.js b/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.js
new file mode 100644
index 0000000..9859301
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.js
@@ -0,0 +1,2958 @@
+/* jquery.signalR.core.js */
+/*global window:false */
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+
+/// <reference path="Scripts/jquery-1.6.4.js" />
+/// <reference path="jquery.signalR.version.js" />
+(function ($, window, undefined) {
+
+    var resources = {
+        nojQuery: "jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",
+        noTransportOnInit: "No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",
+        errorOnNegotiate: "Error during negotiation request.",
+        stoppedWhileLoading: "The connection was stopped during page load.",
+        stoppedWhileNegotiating: "The connection was stopped during the negotiate request.",
+        errorParsingNegotiateResponse: "Error parsing negotiate response.",
+        errorDuringStartRequest: "Error during start request. Stopping the connection.",
+        stoppedDuringStartRequest: "The connection was stopped during the start request.",
+        errorParsingStartResponse: "Error parsing start response: '{0}'. Stopping the connection.",
+        invalidStartResponse: "Invalid start response: '{0}'. Stopping the connection.",
+        protocolIncompatible: "You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",
+        sendFailed: "Send failed.",
+        parseFailed: "Failed at parsing response: {0}",
+        longPollFailed: "Long polling request failed.",
+        eventSourceFailedToConnect: "EventSource failed to connect.",
+        eventSourceError: "Error raised by EventSource",
+        webSocketClosed: "WebSocket closed.",
+        pingServerFailedInvalidResponse: "Invalid ping response when pinging server: '{0}'.",
+        pingServerFailed: "Failed to ping server.",
+        pingServerFailedStatusCode: "Failed to ping server.  Server responded with status code {0}, stopping the connection.",
+        pingServerFailedParse: "Failed to parse ping server response, stopping the connection.",
+        noConnectionTransport: "Connection is in an invalid state, there is no transport active.",
+        webSocketsInvalidState: "The Web Socket transport is in an invalid state, transitioning into reconnecting.",
+        reconnectTimeout: "Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",
+        reconnectWindowTimeout: "The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."
+    };
+
+    if (typeof ($) !== "function") {
+        // no jQuery!
+        throw new Error(resources.nojQuery);
+    }
+
+    var signalR,
+        _connection,
+        _pageLoaded = (window.document.readyState === "complete"),
+        _pageWindow = $(window),
+        _negotiateAbortText = "__Negotiate Aborted__",
+        events = {
+            onStart: "onStart",
+            onStarting: "onStarting",
+            onReceived: "onReceived",
+            onError: "onError",
+            onConnectionSlow: "onConnectionSlow",
+            onReconnecting: "onReconnecting",
+            onReconnect: "onReconnect",
+            onStateChanged: "onStateChanged",
+            onDisconnect: "onDisconnect"
+        },
+        ajaxDefaults = {
+            processData: true,
+            timeout: null,
+            async: true,
+            global: false,
+            cache: false
+        },
+        log = function (msg, logging) {
+            if (logging === false) {
+                return;
+            }
+            var m;
+            if (typeof (window.console) === "undefined") {
+                return;
+            }
+            m = "[" + new Date().toTimeString() + "] SignalR: " + msg;
+            if (window.console.debug) {
+                window.console.debug(m);
+            } else if (window.console.log) {
+                window.console.log(m);
+            }
+        },
+
+        changeState = function (connection, expectedState, newState) {
+            if (expectedState === connection.state) {
+                connection.state = newState;
+
+                $(connection).triggerHandler(events.onStateChanged, [{ oldState: expectedState, newState: newState }]);
+                return true;
+            }
+
+            return false;
+        },
+
+        isDisconnecting = function (connection) {
+            return connection.state === signalR.connectionState.disconnected;
+        },
+
+        supportsKeepAlive = function (connection) {
+            return connection._.keepAliveData.activated &&
+                   connection.transport.supportsKeepAlive(connection);
+        },
+
+        configureStopReconnectingTimeout = function (connection) {
+            var stopReconnectingTimeout,
+                onReconnectTimeout;
+
+            // Check if this connection has already been configured to stop reconnecting after a specified timeout.
+            // Without this check if a connection is stopped then started events will be bound multiple times.
+            if (!connection._.configuredStopReconnectingTimeout) {
+                onReconnectTimeout = function (connection) {
+                    var message = signalR._.format(signalR.resources.reconnectTimeout, connection.disconnectTimeout);
+                    connection.log(message);
+                    $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                    connection.stop(/* async */ false, /* notifyServer */ false);
+                };
+
+                connection.reconnecting(function () {
+                    var connection = this;
+
+                    // Guard against state changing in a previous user defined even handler
+                    if (connection.state === signalR.connectionState.reconnecting) {
+                        stopReconnectingTimeout = window.setTimeout(function () { onReconnectTimeout(connection); }, connection.disconnectTimeout);
+                    }
+                });
+
+                connection.stateChanged(function (data) {
+                    if (data.oldState === signalR.connectionState.reconnecting) {
+                        // Clear the pending reconnect timeout check
+                        window.clearTimeout(stopReconnectingTimeout);
+                    }
+                });
+
+                connection._.configuredStopReconnectingTimeout = true;
+            }
+        };
+
+    signalR = function (url, qs, logging) {
+        /// <summary>Creates a new SignalR connection for the given url</summary>
+        /// <param name="url" type="String">The URL of the long polling endpoint</param>
+        /// <param name="qs" type="Object">
+        ///     [Optional] Custom querystring parameters to add to the connection URL.
+        ///     If an object, every non-function member will be added to the querystring.
+        ///     If a string, it's added to the QS as specified.
+        /// </param>
+        /// <param name="logging" type="Boolean">
+        ///     [Optional] A flag indicating whether connection logging is enabled to the browser
+        ///     console/log. Defaults to false.
+        /// </param>
+
+        return new signalR.fn.init(url, qs, logging);
+    };
+
+    signalR._ = {
+        defaultContentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+        ieVersion: (function () {
+            var version,
+                matches;
+
+            if (window.navigator.appName === 'Microsoft Internet Explorer') {
+                // Check if the user agent has the pattern "MSIE (one or more numbers).(one or more numbers)";
+                matches = /MSIE ([0-9]+\.[0-9]+)/.exec(window.navigator.userAgent);
+
+                if (matches) {
+                    version = window.parseFloat(matches[1]);
+                }
+            }
+
+            // undefined value means not IE
+            return version;
+        })(),
+
+        error: function (message, source, context) {
+            var e = new Error(message);
+            e.source = source;
+
+            if (typeof context !== "undefined") {
+                e.context = context;
+            }
+
+            return e;
+        },
+
+        transportError: function (message, transport, source, context) {
+            var e = this.error(message, source, context);
+            e.transport = transport ? transport.name : undefined;
+            return e;
+        },
+
+        format: function () {
+            /// <summary>Usage: format("Hi {0}, you are {1}!", "Foo", 100) </summary>
+            var s = arguments[0];
+            for (var i = 0; i < arguments.length - 1; i++) {
+                s = s.replace("{" + i + "}", arguments[i + 1]);
+            }
+            return s;
+        },
+
+        firefoxMajorVersion: function (userAgent) {
+            // Firefox user agents: http://useragentstring.com/pages/Firefox/
+            var matches = userAgent.match(/Firefox\/(\d+)/);
+            if (!matches || !matches.length || matches.length < 2) {
+                return 0;
+            }
+            return parseInt(matches[1], 10 /* radix */);
+        },
+
+        configurePingInterval: function (connection) {
+            var config = connection._.config,
+                onFail = function (error) {
+                    $(connection).triggerHandler(events.onError, [error]);
+                };
+
+            if (config && !connection._.pingIntervalId && config.pingInterval) {
+                connection._.pingIntervalId = window.setInterval(function () {
+                    signalR.transports._logic.pingServer(connection).fail(onFail);
+                }, config.pingInterval);
+            }
+        }
+    };
+
+    signalR.events = events;
+
+    signalR.resources = resources;
+
+    signalR.ajaxDefaults = ajaxDefaults;
+
+    signalR.changeState = changeState;
+
+    signalR.isDisconnecting = isDisconnecting;
+
+    signalR.connectionState = {
+        connecting: 0,
+        connected: 1,
+        reconnecting: 2,
+        disconnected: 4
+    };
+
+    signalR.hub = {
+        start: function () {
+            // This will get replaced with the real hub connection start method when hubs is referenced correctly
+            throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.");
+        }
+    };
+
+    // .on() was added in version 1.7.0, .load() was removed in version 3.0.0 so we fallback to .load() if .on() does
+    // not exist to not break existing applications
+    if (typeof _pageWindow.on == "function") {
+        _pageWindow.on("load", function () { _pageLoaded = true; });
+    }
+    else {
+        _pageWindow.load(function () { _pageLoaded = true; });
+    }
+
+    function validateTransport(requestedTransport, connection) {
+        /// <summary>Validates the requested transport by cross checking it with the pre-defined signalR.transports</summary>
+        /// <param name="requestedTransport" type="Object">The designated transports that the user has specified.</param>
+        /// <param name="connection" type="signalR">The connection that will be using the requested transports.  Used for logging purposes.</param>
+        /// <returns type="Object" />
+
+        if ($.isArray(requestedTransport)) {
+            // Go through transport array and remove an "invalid" tranports
+            for (var i = requestedTransport.length - 1; i >= 0; i--) {
+                var transport = requestedTransport[i];
+                if ($.type(transport) !== "string" || !signalR.transports[transport]) {
+                    connection.log("Invalid transport: " + transport + ", removing it from the transports list.");
+                    requestedTransport.splice(i, 1);
+                }
+            }
+
+            // Verify we still have transports left, if we dont then we have invalid transports
+            if (requestedTransport.length === 0) {
+                connection.log("No transports remain within the specified transport array.");
+                requestedTransport = null;
+            }
+        } else if (!signalR.transports[requestedTransport] && requestedTransport !== "auto") {
+            connection.log("Invalid transport: " + requestedTransport.toString() + ".");
+            requestedTransport = null;
+        } else if (requestedTransport === "auto" && signalR._.ieVersion <= 8) {
+            // If we're doing an auto transport and we're IE8 then force longPolling, #1764
+            return ["longPolling"];
+
+        }
+
+        return requestedTransport;
+    }
+
+    function getDefaultPort(protocol) {
+        if (protocol === "http:") {
+            return 80;
+        } else if (protocol === "https:") {
+            return 443;
+        }
+    }
+
+    function addDefaultPort(protocol, url) {
+        // Remove ports  from url.  We have to check if there's a / or end of line
+        // following the port in order to avoid removing ports such as 8080.
+        if (url.match(/:\d+$/)) {
+            return url;
+        } else {
+            return url + ":" + getDefaultPort(protocol);
+        }
+    }
+
+    function ConnectingMessageBuffer(connection, drainCallback) {
+        var that = this,
+            buffer = [];
+
+        that.tryBuffer = function (message) {
+            if (connection.state === $.signalR.connectionState.connecting) {
+                buffer.push(message);
+
+                return true;
+            }
+
+            return false;
+        };
+
+        that.drain = function () {
+            // Ensure that the connection is connected when we drain (do not want to drain while a connection is not active)
+            if (connection.state === $.signalR.connectionState.connected) {
+                while (buffer.length > 0) {
+                    drainCallback(buffer.shift());
+                }
+            }
+        };
+
+        that.clear = function () {
+            buffer = [];
+        };
+    }
+
+    signalR.fn = signalR.prototype = {
+        init: function (url, qs, logging) {
+            var $connection = $(this);
+
+            this.url = url;
+            this.qs = qs;
+            this.lastError = null;
+            this._ = {
+                keepAliveData: {},
+                connectingMessageBuffer: new ConnectingMessageBuffer(this, function (message) {
+                    $connection.triggerHandler(events.onReceived, [message]);
+                }),
+                lastMessageAt: new Date().getTime(),
+                lastActiveAt: new Date().getTime(),
+                beatInterval: 5000, // Default value, will only be overridden if keep alive is enabled,
+                beatHandle: null,
+                totalTransportConnectTimeout: 0 // This will be the sum of the TransportConnectTimeout sent in response to negotiate and connection.transportConnectTimeout
+            };
+            if (typeof (logging) === "boolean") {
+                this.logging = logging;
+            }
+        },
+
+        _parseResponse: function (response) {
+            var that = this;
+
+            if (!response) {
+                return response;
+            } else if (typeof response === "string") {
+                return that.json.parse(response);
+            } else {
+                return response;
+            }
+        },
+
+        _originalJson: window.JSON,
+
+        json: window.JSON,
+
+        isCrossDomain: function (url, against) {
+            /// <summary>Checks if url is cross domain</summary>
+            /// <param name="url" type="String">The base URL</param>
+            /// <param name="against" type="Object">
+            ///     An optional argument to compare the URL against, if not specified it will be set to window.location.
+            ///     If specified it must contain a protocol and a host property.
+            /// </param>
+            var link;
+
+            url = $.trim(url);
+
+            against = against || window.location;
+
+            if (url.indexOf("http") !== 0) {
+                return false;
+            }
+
+            // Create an anchor tag.
+            link = window.document.createElement("a");
+            link.href = url;
+
+            // When checking for cross domain we have to special case port 80 because the window.location will remove the
+            return link.protocol + addDefaultPort(link.protocol, link.host) !== against.protocol + addDefaultPort(against.protocol, against.host);
+        },
+
+        ajaxDataType: "text",
+
+        contentType: "application/json; charset=UTF-8",
+
+        logging: false,
+
+        state: signalR.connectionState.disconnected,
+
+        clientProtocol: "1.5",
+
+        reconnectDelay: 2000,
+
+        transportConnectTimeout: 0,
+
+        disconnectTimeout: 30000, // This should be set by the server in response to the negotiate request (30s default)
+
+        reconnectWindow: 30000, // This should be set by the server in response to the negotiate request
+
+        keepAliveWarnAt: 2 / 3, // Warn user of slow connection if we breach the X% mark of the keep alive timeout
+
+        start: function (options, callback) {
+            /// <summary>Starts the connection</summary>
+            /// <param name="options" type="Object">Options map</param>
+            /// <param name="callback" type="Function">A callback function to execute when the connection has started</param>
+            var connection = this,
+                config = {
+                    pingInterval: 300000,
+                    waitForPageLoad: true,
+                    transport: "auto",
+                    jsonp: false
+                },
+                initialize,
+                deferred = connection._deferral || $.Deferred(), // Check to see if there is a pre-existing deferral that's being built on, if so we want to keep using it
+                parser = window.document.createElement("a");
+
+            connection.lastError = null;
+
+            // Persist the deferral so that if start is called multiple times the same deferral is used.
+            connection._deferral = deferred;
+
+            if (!connection.json) {
+                // no JSON!
+                throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");
+            }
+
+            if ($.type(options) === "function") {
+                // Support calling with single callback parameter
+                callback = options;
+            } else if ($.type(options) === "object") {
+                $.extend(config, options);
+                if ($.type(config.callback) === "function") {
+                    callback = config.callback;
+                }
+            }
+
+            config.transport = validateTransport(config.transport, connection);
+
+            // If the transport is invalid throw an error and abort start
+            if (!config.transport) {
+                throw new Error("SignalR: Invalid transport(s) specified, aborting start.");
+            }
+
+            connection._.config = config;
+
+            // Check to see if start is being called prior to page load
+            // If waitForPageLoad is true we then want to re-direct function call to the window load event
+            if (!_pageLoaded && config.waitForPageLoad === true) {
+                connection._.deferredStartHandler = function () {
+                    connection.start(options, callback);
+                };
+                _pageWindow.bind("load", connection._.deferredStartHandler);
+
+                return deferred.promise();
+            }
+
+            // If we're already connecting just return the same deferral as the original connection start
+            if (connection.state === signalR.connectionState.connecting) {
+                return deferred.promise();
+            } else if (changeState(connection,
+                            signalR.connectionState.disconnected,
+                            signalR.connectionState.connecting) === false) {
+                // We're not connecting so try and transition into connecting.
+                // If we fail to transition then we're either in connected or reconnecting.
+
+                deferred.resolve(connection);
+                return deferred.promise();
+            }
+
+            configureStopReconnectingTimeout(connection);
+
+            // Resolve the full url
+            parser.href = connection.url;
+            if (!parser.protocol || parser.protocol === ":") {
+                connection.protocol = window.document.location.protocol;
+                connection.host = parser.host || window.document.location.host;
+            } else {
+                connection.protocol = parser.protocol;
+                connection.host = parser.host;
+            }
+
+            connection.baseUrl = connection.protocol + "//" + connection.host;
+
+            // Set the websocket protocol
+            connection.wsProtocol = connection.protocol === "https:" ? "wss://" : "ws://";
+
+            // If jsonp with no/auto transport is specified, then set the transport to long polling
+            // since that is the only transport for which jsonp really makes sense.
+            // Some developers might actually choose to specify jsonp for same origin requests
+            // as demonstrated by Issue #623.
+            if (config.transport === "auto" && config.jsonp === true) {
+                config.transport = "longPolling";
+            }
+
+            // If the url is protocol relative, prepend the current windows protocol to the url.
+            if (connection.url.indexOf("//") === 0) {
+                connection.url = window.location.protocol + connection.url;
+                connection.log("Protocol relative URL detected, normalizing it to '" + connection.url + "'.");
+            }
+
+            if (this.isCrossDomain(connection.url)) {
+                connection.log("Auto detected cross domain url.");
+
+                if (config.transport === "auto") {
+                    // TODO: Support XDM with foreverFrame
+                    config.transport = ["webSockets", "serverSentEvents", "longPolling"];
+                }
+
+                if (typeof (config.withCredentials) === "undefined") {
+                    config.withCredentials = true;
+                }
+
+                // Determine if jsonp is the only choice for negotiation, ajaxSend and ajaxAbort.
+                // i.e. if the browser doesn't supports CORS
+                // If it is, ignore any preference to the contrary, and switch to jsonp.
+                if (!config.jsonp) {
+                    config.jsonp = !$.support.cors;
+
+                    if (config.jsonp) {
+                        connection.log("Using jsonp because this browser doesn't support CORS.");
+                    }
+                }
+
+                connection.contentType = signalR._.defaultContentType;
+            }
+
+            connection.withCredentials = config.withCredentials;
+
+            connection.ajaxDataType = config.jsonp ? "jsonp" : "text";
+
+            $(connection).bind(events.onStart, function (e, data) {
+                if ($.type(callback) === "function") {
+                    callback.call(connection);
+                }
+                deferred.resolve(connection);
+            });
+
+            connection._.initHandler = signalR.transports._logic.initHandler(connection);
+
+            initialize = function (transports, index) {
+                var noTransportError = signalR._.error(resources.noTransportOnInit);
+
+                index = index || 0;
+                if (index >= transports.length) {
+                    if (index === 0) {
+                        connection.log("No transports supported by the server were selected.");
+                    } else if (index === 1) {
+                        connection.log("No fallback transports were selected.");
+                    } else {
+                        connection.log("Fallback transports exhausted.");
+                    }
+
+                    // No transport initialized successfully
+                    $(connection).triggerHandler(events.onError, [noTransportError]);
+                    deferred.reject(noTransportError);
+                    // Stop the connection if it has connected and move it into the disconnected state
+                    connection.stop();
+                    return;
+                }
+
+                // The connection was aborted
+                if (connection.state === signalR.connectionState.disconnected) {
+                    return;
+                }
+
+                var transportName = transports[index],
+                    transport = signalR.transports[transportName],
+                    onFallback = function () {
+                        initialize(transports, index + 1);
+                    };
+
+                connection.transport = transport;
+
+                try {
+                    connection._.initHandler.start(transport, function () { // success
+                        // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials
+                        var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11,
+                            asyncAbort = !!connection.withCredentials && isFirefox11OrGreater;
+
+                        connection.log("The start request succeeded. Transitioning to the connected state.");
+
+                        if (supportsKeepAlive(connection)) {
+                            signalR.transports._logic.monitorKeepAlive(connection);
+                        }
+
+                        signalR.transports._logic.startHeartbeat(connection);
+
+                        // Used to ensure low activity clients maintain their authentication.
+                        // Must be configured once a transport has been decided to perform valid ping requests.
+                        signalR._.configurePingInterval(connection);
+
+                        if (!changeState(connection,
+                                            signalR.connectionState.connecting,
+                                            signalR.connectionState.connected)) {
+                            connection.log("WARNING! The connection was not in the connecting state.");
+                        }
+
+                        // Drain any incoming buffered messages (messages that came in prior to connect)
+                        connection._.connectingMessageBuffer.drain();
+
+                        $(connection).triggerHandler(events.onStart);
+
+                        // wire the stop handler for when the user leaves the page
+                        _pageWindow.bind("unload", function () {
+                            connection.log("Window unloading, stopping the connection.");
+
+                            connection.stop(asyncAbort);
+                        });
+
+                        if (isFirefox11OrGreater) {
+                            // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close.
+                            // #2400
+                            _pageWindow.bind("beforeunload", function () {
+                                // If connection.stop() runs runs in beforeunload and fails, it will also fail
+                                // in unload unless connection.stop() runs after a timeout.
+                                window.setTimeout(function () {
+                                    connection.stop(asyncAbort);
+                                }, 0);
+                            });
+                        }
+                    }, onFallback);
+                }
+                catch (error) {
+                    connection.log(transport.name + " transport threw '" + error.message + "' when attempting to start.");
+                    onFallback();
+                }
+            };
+
+            var url = connection.url + "/negotiate",
+                onFailed = function (error, connection) {
+                    var err = signalR._.error(resources.errorOnNegotiate, error, connection._.negotiateRequest);
+
+                    $(connection).triggerHandler(events.onError, err);
+                    deferred.reject(err);
+                    // Stop the connection if negotiate failed
+                    connection.stop();
+                };
+
+            $(connection).triggerHandler(events.onStarting);
+
+            url = signalR.transports._logic.prepareQueryString(connection, url);
+
+            connection.log("Negotiating with '" + url + "'.");
+
+            // Save the ajax negotiate request object so we can abort it if stop is called while the request is in flight.
+            connection._.negotiateRequest = signalR.transports._logic.ajax(connection, {
+                url: url,
+                error: function (error, statusText) {
+                    // We don't want to cause any errors if we're aborting our own negotiate request.
+                    if (statusText !== _negotiateAbortText) {
+                        onFailed(error, connection);
+                    } else {
+                        // This rejection will noop if the deferred has already been resolved or rejected.
+                        deferred.reject(signalR._.error(resources.stoppedWhileNegotiating, null /* error */, connection._.negotiateRequest));
+                    }
+                },
+                success: function (result) {
+                    var res,
+                        keepAliveData,
+                        protocolError,
+                        transports = [],
+                        supportedTransports = [];
+
+                    try {
+                        res = connection._parseResponse(result);
+                    } catch (error) {
+                        onFailed(signalR._.error(resources.errorParsingNegotiateResponse, error), connection);
+                        return;
+                    }
+
+                    keepAliveData = connection._.keepAliveData;
+                    connection.appRelativeUrl = res.Url;
+                    connection.id = res.ConnectionId;
+                    connection.token = res.ConnectionToken;
+                    connection.webSocketServerUrl = res.WebSocketServerUrl;
+
+                    // The long poll timeout is the ConnectionTimeout plus 10 seconds
+                    connection._.pollTimeout = res.ConnectionTimeout * 1000 + 10000; // in ms
+
+                    // Once the server has labeled the PersistentConnection as Disconnected, we should stop attempting to reconnect
+                    // after res.DisconnectTimeout seconds.
+                    connection.disconnectTimeout = res.DisconnectTimeout * 1000; // in ms
+
+                    // Add the TransportConnectTimeout from the response to the transportConnectTimeout from the client to calculate the total timeout
+                    connection._.totalTransportConnectTimeout = connection.transportConnectTimeout + res.TransportConnectTimeout * 1000;
+
+                    // If we have a keep alive
+                    if (res.KeepAliveTimeout) {
+                        // Register the keep alive data as activated
+                        keepAliveData.activated = true;
+
+                        // Timeout to designate when to force the connection into reconnecting converted to milliseconds
+                        keepAliveData.timeout = res.KeepAliveTimeout * 1000;
+
+                        // Timeout to designate when to warn the developer that the connection may be dead or is not responding.
+                        keepAliveData.timeoutWarning = keepAliveData.timeout * connection.keepAliveWarnAt;
+
+                        // Instantiate the frequency in which we check the keep alive.  It must be short in order to not miss/pick up any changes
+                        connection._.beatInterval = (keepAliveData.timeout - keepAliveData.timeoutWarning) / 3;
+                    } else {
+                        keepAliveData.activated = false;
+                    }
+
+                    connection.reconnectWindow = connection.disconnectTimeout + (keepAliveData.timeout || 0);
+
+                    if (!res.ProtocolVersion || res.ProtocolVersion !== connection.clientProtocol) {
+                        protocolError = signalR._.error(signalR._.format(resources.protocolIncompatible, connection.clientProtocol, res.ProtocolVersion));
+                        $(connection).triggerHandler(events.onError, [protocolError]);
+                        deferred.reject(protocolError);
+
+                        return;
+                    }
+
+                    $.each(signalR.transports, function (key) {
+                        if ((key.indexOf("_") === 0) || (key === "webSockets" && !res.TryWebSockets)) {
+                            return true;
+                        }
+                        supportedTransports.push(key);
+                    });
+
+                    if ($.isArray(config.transport)) {
+                        $.each(config.transport, function (_, transport) {
+                            if ($.inArray(transport, supportedTransports) >= 0) {
+                                transports.push(transport);
+                            }
+                        });
+                    } else if (config.transport === "auto") {
+                        transports = supportedTransports;
+                    } else if ($.inArray(config.transport, supportedTransports) >= 0) {
+                        transports.push(config.transport);
+                    }
+
+                    initialize(transports);
+                }
+            });
+
+            return deferred.promise();
+        },
+
+        starting: function (callback) {
+            /// <summary>Adds a callback that will be invoked before anything is sent over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute before the connection is fully instantiated.</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStarting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        send: function (data) {
+            /// <summary>Sends data over the connection</summary>
+            /// <param name="data" type="String">The data to send over the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");
+            }
+
+            if (connection.state === signalR.connectionState.connecting) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");
+            }
+
+            connection.transport.send(connection, data);
+            // REVIEW: Should we return deferred here?
+            return connection;
+        },
+
+        received: function (callback) {
+            /// <summary>Adds a callback that will be invoked after anything is received over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when any data is received on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReceived, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        stateChanged: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the connection state changes</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection state changes</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStateChanged, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        error: function (callback) {
+            /// <summary>Adds a callback that will be invoked after an error occurs with the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when an error occurs on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onError, function (e, errorData, sendData) {
+                connection.lastError = errorData;
+                // In practice 'errorData' is the SignalR built error object.
+                // In practice 'sendData' is undefined for all error events except those triggered by
+                // 'ajaxSend' and 'webSockets.send'.'sendData' is the original send payload.
+                callback.call(connection, errorData, sendData);
+            });
+            return connection;
+        },
+
+        disconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client disconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is broken</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onDisconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        connectionSlow: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client detects a slow connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is slow</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onConnectionSlow, function (e, data) {
+                callback.call(connection);
+            });
+
+            return connection;
+        },
+
+        reconnecting: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport begins reconnecting</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection enters a reconnecting state</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnecting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        reconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport reconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is restored</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        stop: function (async, notifyServer) {
+            /// <summary>Stops listening</summary>
+            /// <param name="async" type="Boolean">Whether or not to asynchronously abort the connection</param>
+            /// <param name="notifyServer" type="Boolean">Whether we want to notify the server that we are aborting the connection</param>
+            /// <returns type="signalR" />
+            var connection = this,
+                // Save deferral because this is always cleaned up
+                deferral = connection._deferral;
+
+            // Verify that we've bound a load event.
+            if (connection._.deferredStartHandler) {
+                // Unbind the event.
+                _pageWindow.unbind("load", connection._.deferredStartHandler);
+            }
+
+            // Always clean up private non-timeout based state.
+            delete connection._.config;
+            delete connection._.deferredStartHandler;
+
+            // This needs to be checked despite the connection state because a connection start can be deferred until page load.
+            // If we've deferred the start due to a page load we need to unbind the "onLoad" -> start event.
+            if (!_pageLoaded && (!connection._.config || connection._.config.waitForPageLoad === true)) {
+                connection.log("Stopping connection prior to negotiate.");
+
+                // If we have a deferral we should reject it
+                if (deferral) {
+                    deferral.reject(signalR._.error(resources.stoppedWhileLoading));
+                }
+
+                // Short-circuit because the start has not been fully started.
+                return;
+            }
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                return;
+            }
+
+            connection.log("Stopping connection.");
+
+            // Clear this no matter what
+            window.clearTimeout(connection._.beatHandle);
+            window.clearInterval(connection._.pingIntervalId);
+
+            if (connection.transport) {
+                connection.transport.stop(connection);
+
+                if (notifyServer !== false) {
+                    connection.transport.abort(connection, async);
+                }
+
+                if (supportsKeepAlive(connection)) {
+                    signalR.transports._logic.stopMonitoringKeepAlive(connection);
+                }
+
+                connection.transport = null;
+            }
+
+            if (connection._.negotiateRequest) {
+                // If the negotiation request has already completed this will noop.
+                connection._.negotiateRequest.abort(_negotiateAbortText);
+                delete connection._.negotiateRequest;
+            }
+
+            // Ensure that initHandler.stop() is called before connection._deferral is deleted
+            if (connection._.initHandler) {
+                connection._.initHandler.stop();
+            }
+
+            delete connection._deferral;
+            delete connection.messageId;
+            delete connection.groupsToken;
+            delete connection.id;
+            delete connection._.pingIntervalId;
+            delete connection._.lastMessageAt;
+            delete connection._.lastActiveAt;
+
+            // Clear out our message buffer
+            connection._.connectingMessageBuffer.clear();
+            
+            // Clean up this event
+            $(connection).unbind(events.onStart);
+
+            // Trigger the disconnect event
+            changeState(connection, connection.state, signalR.connectionState.disconnected);
+            $(connection).triggerHandler(events.onDisconnect);
+
+            return connection;
+        },
+
+        log: function (msg) {
+            log(msg, this.logging);
+        }
+    };
+
+    signalR.fn.init.prototype = signalR.fn;
+
+    signalR.noConflict = function () {
+        /// <summary>Reinstates the original value of $.connection and returns the signalR object for manual assignment</summary>
+        /// <returns type="signalR" />
+        if ($.connection === signalR) {
+            $.connection = _connection;
+        }
+        return signalR;
+    };
+
+    if ($.connection) {
+        _connection = $.connection;
+    }
+
+    $.connection = $.signalR = signalR;
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.common.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        startAbortText = "__Start Aborted__",
+        transportLogic;
+
+    signalR.transports = {};
+
+    function beat(connection) {
+        if (connection._.keepAliveData.monitoring) {
+            checkIfAlive(connection);
+        }
+
+        // Ensure that we successfully marked active before continuing the heartbeat.
+        if (transportLogic.markActive(connection)) {
+            connection._.beatHandle = window.setTimeout(function () {
+                beat(connection);
+            }, connection._.beatInterval);
+        }
+    }
+
+    function checkIfAlive(connection) {
+        var keepAliveData = connection._.keepAliveData,
+            timeElapsed;
+
+        // Only check if we're connected
+        if (connection.state === signalR.connectionState.connected) {
+            timeElapsed = new Date().getTime() - connection._.lastMessageAt;
+
+            // Check if the keep alive has completely timed out
+            if (timeElapsed >= keepAliveData.timeout) {
+                connection.log("Keep alive timed out.  Notifying transport that connection has been lost.");
+
+                // Notify transport that the connection has been lost
+                connection.transport.lostConnection(connection);
+            } else if (timeElapsed >= keepAliveData.timeoutWarning) {
+                // This is to assure that the user only gets a single warning
+                if (!keepAliveData.userNotified) {
+                    connection.log("Keep alive has been missed, connection may be dead/slow.");
+                    $(connection).triggerHandler(events.onConnectionSlow);
+                    keepAliveData.userNotified = true;
+                }
+            } else {
+                keepAliveData.userNotified = false;
+            }
+        }
+    }
+
+    function getAjaxUrl(connection, path) {
+        var url = connection.url + path;
+
+        if (connection.transport) {
+            url += "?transport=" + connection.transport.name;
+        }
+
+        return transportLogic.prepareQueryString(connection, url);
+    }
+
+    function InitHandler(connection) {
+        this.connection = connection;
+
+        this.startRequested = false;
+        this.startCompleted = false;
+        this.connectionStopped = false;
+    }
+
+    InitHandler.prototype = {
+        start: function (transport, onSuccess, onFallback) {
+            var that = this,
+                connection = that.connection,
+                failCalled = false;
+
+            if (that.startRequested || that.connectionStopped) {
+                connection.log("WARNING! " + transport.name + " transport cannot be started. Initialization ongoing or completed.");
+                return;
+            }
+
+            connection.log(transport.name + " transport starting.");
+
+            transport.start(connection, function () {
+                if (!failCalled) {
+                    that.initReceived(transport, onSuccess);
+                }
+            }, function (error) {
+                // Don't allow the same transport to cause onFallback to be called twice
+                if (!failCalled) {
+                    failCalled = true;
+                    that.transportFailed(transport, error, onFallback);
+                }
+
+                // Returns true if the transport should stop;
+                // false if it should attempt to reconnect
+                return !that.startCompleted || that.connectionStopped;
+            });
+
+            that.transportTimeoutHandle = window.setTimeout(function () {
+                if (!failCalled) {
+                    failCalled = true;
+                    connection.log(transport.name + " transport timed out when trying to connect.");
+                    that.transportFailed(transport, undefined, onFallback);
+                }
+            }, connection._.totalTransportConnectTimeout);
+        },
+
+        stop: function () {
+            this.connectionStopped = true;
+            window.clearTimeout(this.transportTimeoutHandle);
+            signalR.transports._logic.tryAbortStartRequest(this.connection);
+        },
+
+        initReceived: function (transport, onSuccess) {
+            var that = this,
+                connection = that.connection;
+
+            if (that.startRequested) {
+                connection.log("WARNING! The client received multiple init messages.");
+                return;
+            }
+
+            if (that.connectionStopped) {
+                return;
+            }
+
+            that.startRequested = true;
+            window.clearTimeout(that.transportTimeoutHandle);
+
+            connection.log(transport.name + " transport connected. Initiating start request.");
+            signalR.transports._logic.ajaxStart(connection, function () {
+                that.startCompleted = true;
+                onSuccess();
+            });
+        },
+
+        transportFailed: function (transport, error, onFallback) {
+            var connection = this.connection,
+                deferred = connection._deferral,
+                wrappedError;
+
+            if (this.connectionStopped) {
+                return;
+            }
+
+            window.clearTimeout(this.transportTimeoutHandle);
+
+            if (!this.startRequested) {
+                transport.stop(connection);
+
+                connection.log(transport.name + " transport failed to connect. Attempting to fall back.");
+                onFallback();
+            } else if (!this.startCompleted) {
+                // Do not attempt to fall back if a start request is ongoing during a transport failure.
+                // Instead, trigger an error and stop the connection.
+                wrappedError = signalR._.error(signalR.resources.errorDuringStartRequest, error);
+
+                connection.log(transport.name + " transport failed during the start request. Stopping the connection.");
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                if (deferred) {
+                    deferred.reject(wrappedError);
+                }
+
+                connection.stop();
+            } else {
+                // The start request has completed, but the connection has not stopped.
+                // No need to do anything here. The transport should attempt its normal reconnect logic.
+            }
+        }
+    };
+
+    transportLogic = signalR.transports._logic = {
+        ajax: function (connection, options) {
+            return $.ajax(
+                $.extend(/*deep copy*/ true, {}, $.signalR.ajaxDefaults, {
+                    type: "GET",
+                    data: {},
+                    xhrFields: { withCredentials: connection.withCredentials },
+                    contentType: connection.contentType,
+                    dataType: connection.ajaxDataType
+                }, options));
+        },
+
+        pingServer: function (connection) {
+            /// <summary>Pings the server</summary>
+            /// <param name="connection" type="signalr">Connection associated with the server ping</param>
+            /// <returns type="signalR" />
+            var url,
+                xhr,
+                deferral = $.Deferred();
+
+            if (connection.transport) {
+                url = connection.url + "/ping";
+
+                url = transportLogic.addQs(url, connection.qs);
+
+                xhr = transportLogic.ajax(connection, {
+                    url: url,
+                    success: function (result) {
+                        var data;
+
+                        try {
+                            data = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailedParse,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                            return;
+                        }
+
+                        if (data.Response === "pong") {
+                            deferral.resolve();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedInvalidResponse, result),
+                                    connection.transport,
+                                    null /* error */,
+                                    xhr
+                                )
+                            );
+                        }
+                    },
+                    error: function (error) {
+                        if (error.status === 401 || error.status === 403) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedStatusCode, error.status),
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailed,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                        }
+                    }
+                });
+            }
+            else {
+                deferral.reject(
+                    signalR._.transportError(
+                        signalR.resources.noConnectionTransport,
+                        connection.transport
+                    )
+                );
+            }
+
+            return deferral.promise();
+        },
+
+        prepareQueryString: function (connection, url) {
+            var preparedUrl;
+
+            // Use addQs to start since it handles the ?/& prefix for us
+            preparedUrl = transportLogic.addQs(url, "clientProtocol=" + connection.clientProtocol);
+
+            // Add the user-specified query string params if any
+            preparedUrl = transportLogic.addQs(preparedUrl, connection.qs);
+
+            if (connection.token) {
+                preparedUrl += "&connectionToken=" + window.encodeURIComponent(connection.token);
+            }
+
+            if (connection.data) {
+                preparedUrl += "&connectionData=" + window.encodeURIComponent(connection.data);
+            }
+
+            return preparedUrl;
+        },
+
+        addQs: function (url, qs) {
+            var appender = url.indexOf("?") !== -1 ? "&" : "?",
+                firstChar;
+
+            if (!qs) {
+                return url;
+            }
+
+            if (typeof (qs) === "object") {
+                return url + appender + $.param(qs);
+            }
+
+            if (typeof (qs) === "string") {
+                firstChar = qs.charAt(0);
+
+                if (firstChar === "?" || firstChar === "&") {
+                    appender = "";
+                }
+
+                return url + appender + qs;
+            }
+
+            throw new Error("Query string property must be either a string or object.");
+        },
+
+        // BUG #2953: The url needs to be same otherwise it will cause a memory leak
+        getUrl: function (connection, transport, reconnecting, poll, ajaxPost) {
+            /// <summary>Gets the url for making a GET based connect request</summary>
+            var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,
+                url = baseUrl + connection.appRelativeUrl,
+                qs = "transport=" + transport;
+
+            if (!ajaxPost && connection.groupsToken) {
+                qs += "&groupsToken=" + window.encodeURIComponent(connection.groupsToken);
+            }
+
+            if (!reconnecting) {
+                url += "/connect";
+            } else {
+                if (poll) {
+                    // longPolling transport specific
+                    url += "/poll";
+                } else {
+                    url += "/reconnect";
+                }
+
+                if (!ajaxPost && connection.messageId) {
+                    qs += "&messageId=" + window.encodeURIComponent(connection.messageId);
+                }
+            }
+            url += "?" + qs;
+            url = transportLogic.prepareQueryString(connection, url);
+
+            if (!ajaxPost) {
+                url += "&tid=" + Math.floor(Math.random() * 11);
+            }
+
+            return url;
+        },
+
+        maximizePersistentResponse: function (minPersistentResponse) {
+            return {
+                MessageId: minPersistentResponse.C,
+                Messages: minPersistentResponse.M,
+                Initialized: typeof (minPersistentResponse.S) !== "undefined" ? true : false,
+                ShouldReconnect: typeof (minPersistentResponse.T) !== "undefined" ? true : false,
+                LongPollDelay: minPersistentResponse.L,
+                GroupsToken: minPersistentResponse.G
+            };
+        },
+
+        updateGroups: function (connection, groupsToken) {
+            if (groupsToken) {
+                connection.groupsToken = groupsToken;
+            }
+        },
+
+        stringifySend: function (connection, message) {
+            if (typeof (message) === "string" || typeof (message) === "undefined" || message === null) {
+                return message;
+            }
+            return connection.json.stringify(message);
+        },
+
+        ajaxSend: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data),
+                url = getAjaxUrl(connection, "/send"),
+                xhr,
+                onFail = function (error, connection) {
+                    $(connection).triggerHandler(events.onError, [signalR._.transportError(signalR.resources.sendFailed, connection.transport, error, xhr), data]);
+                };
+
+
+            xhr = transportLogic.ajax(connection, {
+                url: url,
+                type: connection.ajaxDataType === "jsonp" ? "GET" : "POST",
+                contentType: signalR._.defaultContentType,
+                data: {
+                    data: payload
+                },
+                success: function (result) {
+                    var res;
+
+                    if (result) {
+                        try {
+                            res = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            onFail(error, connection);
+                            connection.stop();
+                            return;
+                        }
+
+                        transportLogic.triggerReceived(connection, res);
+                    }
+                },
+                error: function (error, textStatus) {
+                    if (textStatus === "abort" || textStatus === "parsererror") {
+                        // The parsererror happens for sends that don't return any data, and hence
+                        // don't write the jsonp callback to the response. This is harder to fix on the server
+                        // so just hack around it on the client for now.
+                        return;
+                    }
+
+                    onFail(error, connection);
+                }
+            });
+
+            return xhr;
+        },
+
+        ajaxAbort: function (connection, async) {
+            if (typeof (connection.transport) === "undefined") {
+                return;
+            }
+
+            // Async by default unless explicitly overidden
+            async = typeof async === "undefined" ? true : async;
+
+            var url = getAjaxUrl(connection, "/abort");
+
+            transportLogic.ajax(connection, {
+                url: url,
+                async: async,
+                timeout: 1000,
+                type: "POST"
+            });
+
+            connection.log("Fired ajax abort async = " + async + ".");
+        },
+
+        ajaxStart: function (connection, onSuccess) {
+            var rejectDeferred = function (error) {
+                    var deferred = connection._deferral;
+                    if (deferred) {
+                        deferred.reject(error);
+                    }
+                },
+                triggerStartError = function (error) {
+                    connection.log("The start request failed. Stopping the connection.");
+                    $(connection).triggerHandler(events.onError, [error]);
+                    rejectDeferred(error);
+                    connection.stop();
+                };
+
+            connection._.startRequest = transportLogic.ajax(connection, {
+                url: getAjaxUrl(connection, "/start"),
+                success: function (result, statusText, xhr) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(result);
+                    } catch (error) {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.errorParsingStartResponse, result),
+                            error, xhr));
+                        return;
+                    }
+
+                    if (data.Response === "started") {
+                        onSuccess();
+                    } else {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.invalidStartResponse, result),
+                            null /* error */, xhr));
+                    }
+                },
+                error: function (xhr, statusText, error) {
+                    if (statusText !== startAbortText) {
+                        triggerStartError(signalR._.error(
+                            signalR.resources.errorDuringStartRequest,
+                            error, xhr));
+                    } else {
+                        // Stop has been called, no need to trigger the error handler
+                        // or stop the connection again with onStartError
+                        connection.log("The start request aborted because connection.stop() was called.");
+                        rejectDeferred(signalR._.error(
+                            signalR.resources.stoppedDuringStartRequest,
+                            null /* error */, xhr));
+                    }
+                }
+            });
+        },
+
+        tryAbortStartRequest: function (connection) {
+            if (connection._.startRequest) {
+                // If the start request has already completed this will noop.
+                connection._.startRequest.abort(startAbortText);
+                delete connection._.startRequest;
+            }
+        },
+
+        tryInitialize: function (connection, persistentResponse, onInitialized) {
+            if (persistentResponse.Initialized && onInitialized) {
+                onInitialized();
+            } else if (persistentResponse.Initialized) {
+                connection.log("WARNING! The client received an init message after reconnecting.");
+            }
+
+        },
+
+        triggerReceived: function (connection, data) {
+            if (!connection._.connectingMessageBuffer.tryBuffer(data)) {
+                $(connection).triggerHandler(events.onReceived, [data]);
+            }
+        },
+
+        processMessages: function (connection, minData, onInitialized) {
+            var data;
+
+            // Update the last message time stamp
+            transportLogic.markLastMessage(connection);
+
+            if (minData) {
+                data = transportLogic.maximizePersistentResponse(minData);
+
+                transportLogic.updateGroups(connection, data.GroupsToken);
+
+                if (data.MessageId) {
+                    connection.messageId = data.MessageId;
+                }
+
+                if (data.Messages) {
+                    $.each(data.Messages, function (index, message) {
+                        transportLogic.triggerReceived(connection, message);
+                    });
+
+                    transportLogic.tryInitialize(connection, data, onInitialized);
+                }
+            }
+        },
+
+        monitorKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // If we haven't initiated the keep alive timeouts then we need to
+            if (!keepAliveData.monitoring) {
+                keepAliveData.monitoring = true;
+
+                transportLogic.markLastMessage(connection);
+
+                // Save the function so we can unbind it on stop
+                connection._.keepAliveData.reconnectKeepAliveUpdate = function () {
+                    // Mark a new message so that keep alive doesn't time out connections
+                    transportLogic.markLastMessage(connection);
+                };
+
+                // Update Keep alive on reconnect
+                $(connection).bind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                connection.log("Now monitoring keep alive with a warning timeout of " + keepAliveData.timeoutWarning + ", keep alive timeout of " + keepAliveData.timeout + " and disconnecting timeout of " + connection.disconnectTimeout);
+            } else {
+                connection.log("Tried to monitor keep alive but it's already being monitored.");
+            }
+        },
+
+        stopMonitoringKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // Only attempt to stop the keep alive monitoring if its being monitored
+            if (keepAliveData.monitoring) {
+                // Stop monitoring
+                keepAliveData.monitoring = false;
+
+                // Remove the updateKeepAlive function from the reconnect event
+                $(connection).unbind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                // Clear all the keep alive data
+                connection._.keepAliveData = {};
+                connection.log("Stopping the monitoring of the keep alive.");
+            }
+        },
+
+        startHeartbeat: function (connection) {
+            connection._.lastActiveAt = new Date().getTime();
+            beat(connection);
+        },
+
+        markLastMessage: function (connection) {
+            connection._.lastMessageAt = new Date().getTime();
+        },
+
+        markActive: function (connection) {
+            if (transportLogic.verifyLastActive(connection)) {
+                connection._.lastActiveAt = new Date().getTime();
+                return true;
+            }
+
+            return false;
+        },
+
+        isConnectedOrReconnecting: function (connection) {
+            return connection.state === signalR.connectionState.connected ||
+                   connection.state === signalR.connectionState.reconnecting;
+        },
+
+        ensureReconnectingState: function (connection) {
+            if (changeState(connection,
+                        signalR.connectionState.connected,
+                        signalR.connectionState.reconnecting) === true) {
+                $(connection).triggerHandler(events.onReconnecting);
+            }
+            return connection.state === signalR.connectionState.reconnecting;
+        },
+
+        clearReconnectTimeout: function (connection) {
+            if (connection && connection._.reconnectTimeout) {
+                window.clearTimeout(connection._.reconnectTimeout);
+                delete connection._.reconnectTimeout;
+            }
+        },
+
+        verifyLastActive: function (connection) {
+            if (new Date().getTime() - connection._.lastActiveAt >= connection.reconnectWindow) {
+                var message = signalR._.format(signalR.resources.reconnectWindowTimeout, new Date(connection._.lastActiveAt), connection.reconnectWindow);
+                connection.log(message);
+                $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                connection.stop(/* async */ false, /* notifyServer */ false);
+                return false;
+            }
+
+            return true;
+        },
+
+        reconnect: function (connection, transportName) {
+            var transport = signalR.transports[transportName];
+
+            // We should only set a reconnectTimeout if we are currently connected
+            // and a reconnectTimeout isn't already set.
+            if (transportLogic.isConnectedOrReconnecting(connection) && !connection._.reconnectTimeout) {
+                // Need to verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+                if (!transportLogic.verifyLastActive(connection)) {
+                    return;
+                }
+
+                connection._.reconnectTimeout = window.setTimeout(function () {
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    transport.stop(connection);
+
+                    if (transportLogic.ensureReconnectingState(connection)) {
+                        connection.log(transportName + " reconnecting.");
+                        transport.start(connection);
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        handleParseFailure: function (connection, result, error, onFailed, context) {
+            var wrappedError = signalR._.transportError(
+                signalR._.format(signalR.resources.parseFailed, result),
+                connection.transport,
+                error,
+                context);
+
+            // If we're in the initialization phase trigger onFailed, otherwise stop the connection.
+            if (onFailed && onFailed(wrappedError)) {
+                connection.log("Failed to parse server response while attempting to connect.");
+            } else {
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                connection.stop();
+            }
+        },
+
+        initHandler: function (connection) {
+            return new InitHandler(connection);
+        },
+
+        foreverFrame: {
+            count: 0,
+            connections: {}
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.webSockets.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.webSockets = {
+        name: "webSockets",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        send: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data);
+
+            try {
+                connection.socket.send(payload);
+            } catch (ex) {
+                $(connection).triggerHandler(events.onError,
+                    [signalR._.transportError(
+                        signalR.resources.webSocketsInvalidState,
+                        connection.transport,
+                        ex,
+                        connection.socket
+                    ),
+                    data]);
+            }
+        },
+
+        start: function (connection, onSuccess, onFailed) {
+            var url,
+                opened = false,
+                that = this,
+                reconnecting = !onSuccess,
+                $connection = $(connection);
+
+            if (!window.WebSocket) {
+                onFailed();
+                return;
+            }
+
+            if (!connection.socket) {
+                if (connection.webSocketServerUrl) {
+                    url = connection.webSocketServerUrl;
+                } else {
+                    url = connection.wsProtocol + connection.host;
+                }
+
+                url += transportLogic.getUrl(connection, this.name, reconnecting);
+
+                connection.log("Connecting to websocket endpoint '" + url + "'.");
+                connection.socket = new window.WebSocket(url);
+
+                connection.socket.onopen = function () {
+                    opened = true;
+                    connection.log("Websocket opened.");
+
+                    transportLogic.clearReconnectTimeout(connection);
+
+                    if (changeState(connection,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                };
+
+                connection.socket.onclose = function (event) {
+                    var error;
+
+                    // Only handle a socket close if the close is from the current socket.
+                    // Sometimes on disconnect the server will push down an onclose event
+                    // to an expired socket.
+
+                    if (this === connection.socket) {
+                        if (opened && typeof event.wasClean !== "undefined" && event.wasClean === false) {
+                            // Ideally this would use the websocket.onerror handler (rather than checking wasClean in onclose) but
+                            // I found in some circumstances Chrome won't call onerror. This implementation seems to work on all browsers.
+                            error = signalR._.transportError(
+                                signalR.resources.webSocketClosed,
+                                connection.transport,
+                                event);
+
+                            connection.log("Unclean disconnect from websocket: " + (event.reason || "[no reason given]."));
+                        } else {
+                            connection.log("Websocket closed.");
+                        }
+
+                        if (!onFailed || !onFailed(error)) {
+                            if (error) {
+                                $(connection).triggerHandler(events.onError, [error]);
+                            }
+
+                            that.reconnect(connection);
+                        }
+                    }
+                };
+
+                connection.socket.onmessage = function (event) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(event.data);
+                    }
+                    catch (error) {
+                        transportLogic.handleParseFailure(connection, event.data, error, onFailed, event);
+                        return;
+                    }
+
+                    if (data) {
+                        // data.M is PersistentResponse.Messages
+                        if ($.isEmptyObject(data) || data.M) {
+                            transportLogic.processMessages(connection, data, onSuccess);
+                        } else {
+                            // For websockets we need to trigger onReceived
+                            // for callbacks to outgoing hub calls.
+                            transportLogic.triggerReceived(connection, data);
+                        }
+                    }
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection.socket) {
+                connection.log("Closing the Websocket.");
+                connection.socket.close();
+                connection.socket = null;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.serverSentEvents.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        clearReconnectAttemptTimeout = function (connection) {
+            window.clearTimeout(connection._.reconnectAttemptTimeoutHandle);
+            delete connection._.reconnectAttemptTimeoutHandle;
+        };
+
+    signalR.transports.serverSentEvents = {
+        name: "serverSentEvents",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        timeOut: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                opened = false,
+                $connection = $(connection),
+                reconnecting = !onSuccess,
+                url;
+
+            if (connection.eventSource) {
+                connection.log("The connection already has an event source. Stopping it.");
+                connection.stop();
+            }
+
+            if (!window.EventSource) {
+                if (onFailed) {
+                    connection.log("This browser doesn't support SSE.");
+                    onFailed();
+                }
+                return;
+            }
+
+            url = transportLogic.getUrl(connection, this.name, reconnecting);
+
+            try {
+                connection.log("Attempting to connect to SSE endpoint '" + url + "'.");
+                connection.eventSource = new window.EventSource(url, { withCredentials: connection.withCredentials });
+            }
+            catch (e) {
+                connection.log("EventSource failed trying to connect with error " + e.Message + ".");
+                if (onFailed) {
+                    // The connection failed, call the failed callback
+                    onFailed();
+                } else {
+                    $connection.triggerHandler(events.onError, [signalR._.transportError(signalR.resources.eventSourceFailedToConnect, connection.transport, e)]);
+                    if (reconnecting) {
+                        // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                        that.reconnect(connection);
+                    }
+                }
+                return;
+            }
+
+            if (reconnecting) {
+                connection._.reconnectAttemptTimeoutHandle = window.setTimeout(function () {
+                    if (opened === false) {
+                        // If we're reconnecting and the event source is attempting to connect,
+                        // don't keep retrying. This causes duplicate connections to spawn.
+                        if (connection.eventSource.readyState !== window.EventSource.OPEN) {
+                            // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                            that.reconnect(connection);
+                        }
+                    }
+                },
+                that.timeOut);
+            }
+
+            connection.eventSource.addEventListener("open", function (e) {
+                connection.log("EventSource connected.");
+
+                clearReconnectAttemptTimeout(connection);
+                transportLogic.clearReconnectTimeout(connection);
+
+                if (opened === false) {
+                    opened = true;
+
+                    if (changeState(connection,
+                                         signalR.connectionState.reconnecting,
+                                         signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                }
+            }, false);
+
+            connection.eventSource.addEventListener("message", function (e) {
+                var res;
+
+                // process messages
+                if (e.data === "initialized") {
+                    return;
+                }
+
+                try {
+                    res = connection._parseResponse(e.data);
+                }
+                catch (error) {
+                    transportLogic.handleParseFailure(connection, e.data, error, onFailed, e);
+                    return;
+                }
+
+                transportLogic.processMessages(connection, res, onSuccess);
+            }, false);
+
+            connection.eventSource.addEventListener("error", function (e) {
+                var error = signalR._.transportError(
+                    signalR.resources.eventSourceError,
+                    connection.transport,
+                    e);
+
+                // Only handle an error if the error is from the current Event Source.
+                // Sometimes on disconnect the server will push down an error event
+                // to an expired Event Source.
+                if (this !== connection.eventSource) {
+                    return;
+                }
+
+                if (onFailed && onFailed(error)) {
+                    return;
+                }
+
+                connection.log("EventSource readyState: " + connection.eventSource.readyState + ".");
+
+                if (e.eventPhase === window.EventSource.CLOSED) {
+                    // We don't use the EventSource's native reconnect function as it
+                    // doesn't allow us to change the URL when reconnecting. We need
+                    // to change the URL to not include the /connect suffix, and pass
+                    // the last message id we received.
+                    connection.log("EventSource reconnecting due to the server connection ending.");
+                    that.reconnect(connection);
+                } else {
+                    // connection error
+                    connection.log("EventSource error.");
+                    $connection.triggerHandler(events.onError, [error]);
+                }
+            }, false);
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            clearReconnectAttemptTimeout(connection);
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection && connection.eventSource) {
+                connection.log("EventSource calling close().");
+                connection.eventSource.close();
+                connection.eventSource = null;
+                delete connection.eventSource;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.foreverFrame.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        createFrame = function () {
+            var frame = window.document.createElement("iframe");
+            frame.setAttribute("style", "position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;");
+            return frame;
+        },
+        // Used to prevent infinite loading icon spins in older versions of ie
+        // We build this object inside a closure so we don't pollute the rest of
+        // the foreverFrame transport with unnecessary functions/utilities.
+        loadPreventer = (function () {
+            var loadingFixIntervalId = null,
+                loadingFixInterval = 1000,
+                attachedTo = 0;
+
+            return {
+                prevent: function () {
+                    // Prevent additional iframe removal procedures from newer browsers
+                    if (signalR._.ieVersion <= 8) {
+                        // We only ever want to set the interval one time, so on the first attachedTo
+                        if (attachedTo === 0) {
+                            // Create and destroy iframe every 3 seconds to prevent loading icon, super hacky
+                            loadingFixIntervalId = window.setInterval(function () {
+                                var tempFrame = createFrame();
+
+                                window.document.body.appendChild(tempFrame);
+                                window.document.body.removeChild(tempFrame);
+
+                                tempFrame = null;
+                            }, loadingFixInterval);
+                        }
+
+                        attachedTo++;
+                    }
+                },
+                cancel: function () {
+                    // Only clear the interval if there's only one more object that the loadPreventer is attachedTo
+                    if (attachedTo === 1) {
+                        window.clearInterval(loadingFixIntervalId);
+                    }
+
+                    if (attachedTo > 0) {
+                        attachedTo--;
+                    }
+                }
+            };
+        })();
+
+    signalR.transports.foreverFrame = {
+        name: "foreverFrame",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        // Added as a value here so we can create tests to verify functionality
+        iframeClearThreshold: 50,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                frameId = (transportLogic.foreverFrame.count += 1),
+                url,
+                frame = createFrame(),
+                frameLoadHandler = function () {
+                    connection.log("Forever frame iframe finished loading and is no longer receiving messages.");
+                    if (!onFailed || !onFailed()) {
+                        that.reconnect(connection);
+                    }
+                };
+
+            if (window.EventSource) {
+                // If the browser supports SSE, don't use Forever Frame
+                if (onFailed) {
+                    connection.log("Forever Frame is not supported by SignalR on browsers with SSE support.");
+                    onFailed();
+                }
+                return;
+            }
+
+            frame.setAttribute("data-signalr-connection-id", connection.id);
+
+            // Start preventing loading icon
+            // This will only perform work if the loadPreventer is not attached to another connection.
+            loadPreventer.prevent();
+
+            // Build the url
+            url = transportLogic.getUrl(connection, this.name);
+            url += "&frameId=" + frameId;
+
+            // add frame to the document prior to setting URL to avoid caching issues.
+            window.document.documentElement.appendChild(frame);
+
+            connection.log("Binding to iframe's load event.");
+
+            if (frame.addEventListener) {
+                frame.addEventListener("load", frameLoadHandler, false);
+            } else if (frame.attachEvent) {
+                frame.attachEvent("onload", frameLoadHandler);
+            }
+
+            frame.src = url;
+            transportLogic.foreverFrame.connections[frameId] = connection;
+
+            connection.frame = frame;
+            connection.frameId = frameId;
+
+            if (onSuccess) {
+                connection.onSuccess = function () {
+                    connection.log("Iframe transport started.");
+                    onSuccess();
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            var that = this;
+
+            // Need to verify connection state and verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+            if (transportLogic.isConnectedOrReconnecting(connection) && transportLogic.verifyLastActive(connection)) {
+                window.setTimeout(function () {
+                    // Verify that we're ok to reconnect.
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    if (connection.frame && transportLogic.ensureReconnectingState(connection)) {
+                        var frame = connection.frame,
+                            src = transportLogic.getUrl(connection, that.name, true) + "&frameId=" + connection.frameId;
+                        connection.log("Updating iframe src to '" + src + "'.");
+                        frame.src = src;
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        receive: function (connection, data) {
+            var cw,
+                body,
+                response;
+
+            if (connection.json !== connection._originalJson) {
+                // If there's a custom JSON parser configured then serialize the object
+                // using the original (browser) JSON parser and then deserialize it using
+                // the custom parser (connection._parseResponse does that). This is so we
+                // can easily send the response from the server as "raw" JSON but still
+                // support custom JSON deserialization in the browser.
+                data = connection._originalJson.stringify(data);
+            }
+
+            response = connection._parseResponse(data);
+
+            transportLogic.processMessages(connection, response, connection.onSuccess);
+
+            // Protect against connection stopping from a callback trigger within the processMessages above.
+            if (connection.state === $.signalR.connectionState.connected) {
+                // Delete the script & div elements
+                connection.frameMessageCount = (connection.frameMessageCount || 0) + 1;
+                if (connection.frameMessageCount > signalR.transports.foreverFrame.iframeClearThreshold) {
+                    connection.frameMessageCount = 0;
+                    cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                    if (cw && cw.document && cw.document.body) {
+                        body = cw.document.body;
+
+                        // Remove all the child elements from the iframe's body to conserver memory
+                        while (body.firstChild) {
+                            body.removeChild(body.firstChild);
+                        }
+                    }
+                }
+            }
+        },
+
+        stop: function (connection) {
+            var cw = null;
+
+            // Stop attempting to prevent loading icon
+            loadPreventer.cancel();
+
+            if (connection.frame) {
+                if (connection.frame.stop) {
+                    connection.frame.stop();
+                } else {
+                    try {
+                        cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                        if (cw.document && cw.document.execCommand) {
+                            cw.document.execCommand("Stop");
+                        }
+                    }
+                    catch (e) {
+                        connection.log("Error occurred when stopping foreverFrame transport. Message = " + e.message + ".");
+                    }
+                }
+
+                // Ensure the iframe is where we left it
+                if (connection.frame.parentNode === window.document.documentElement) {
+                    window.document.documentElement.removeChild(connection.frame);
+                }
+
+                delete transportLogic.foreverFrame.connections[connection.frameId];
+                connection.frame = null;
+                connection.frameId = null;
+                delete connection.frame;
+                delete connection.frameId;
+                delete connection.onSuccess;
+                delete connection.frameMessageCount;
+                connection.log("Stopping forever frame.");
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        },
+
+        getConnection: function (id) {
+            return transportLogic.foreverFrame.connections[id];
+        },
+
+        started: function (connection) {
+            if (changeState(connection,
+                signalR.connectionState.reconnecting,
+                signalR.connectionState.connected) === true) {
+
+                $(connection).triggerHandler(events.onReconnect);
+            }
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.longPolling.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        isDisconnecting = $.signalR.isDisconnecting,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.longPolling = {
+        name: "longPolling",
+
+        supportsKeepAlive: function () {
+            return false;
+        },
+
+        reconnectDelay: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            /// <summary>Starts the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to start</param>
+            var that = this,
+                fireConnect = function () {
+                    fireConnect = $.noop;
+
+                    connection.log("LongPolling connected.");
+
+                    if (onSuccess) {
+                        onSuccess();
+                    } else {
+                        connection.log("WARNING! The client received an init message after reconnecting.");
+                    }
+                },
+                tryFailConnect = function (error) {
+                    if (onFailed(error)) {
+                        connection.log("LongPolling failed to connect.");
+                        return true;
+                    }
+
+                    return false;
+                },
+                privateData = connection._,
+                reconnectErrors = 0,
+                fireReconnected = function (instance) {
+                    window.clearTimeout(privateData.reconnectTimeoutId);
+                    privateData.reconnectTimeoutId = null;
+
+                    if (changeState(instance,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        // Successfully reconnected!
+                        instance.log("Raising the reconnect event");
+                        $(instance).triggerHandler(events.onReconnect);
+                    }
+                },
+                // 1 hour
+                maxFireReconnectedTimeout = 3600000;
+
+            if (connection.pollXhr) {
+                connection.log("Polling xhr requests already exists, aborting.");
+                connection.stop();
+            }
+
+            connection.messageId = null;
+
+            privateData.reconnectTimeoutId = null;
+
+            privateData.pollTimeoutId = window.setTimeout(function () {
+                (function poll(instance, raiseReconnect) {
+                    var messageId = instance.messageId,
+                        connect = (messageId === null),
+                        reconnecting = !connect,
+                        polling = !raiseReconnect,
+                        url = transportLogic.getUrl(instance, that.name, reconnecting, polling, true /* use Post for longPolling */),
+                        postData = {};
+
+                    if (instance.messageId) {
+                        postData.messageId = instance.messageId;
+                    }
+
+                    if (instance.groupsToken) {
+                        postData.groupsToken = instance.groupsToken;
+                    }
+
+                    // If we've disconnected during the time we've tried to re-instantiate the poll then stop.
+                    if (isDisconnecting(instance) === true) {
+                        return;
+                    }
+
+                    connection.log("Opening long polling request to '" + url + "'.");
+                    instance.pollXhr = transportLogic.ajax(connection, {
+                        xhrFields: {
+                            onprogress: function () {
+                                transportLogic.markLastMessage(connection);
+                            }
+                        },
+                        url: url,
+                        type: "POST",
+                        contentType: signalR._.defaultContentType,
+                        data: postData,
+                        timeout: connection._.pollTimeout,
+                        success: function (result) {
+                            var minData,
+                                delay = 0,
+                                data,
+                                shouldReconnect;
+
+                            connection.log("Long poll complete.");
+
+                            // Reset our reconnect errors so if we transition into a reconnecting state again we trigger
+                            // reconnected quickly
+                            reconnectErrors = 0;
+
+                            try {
+                                // Remove any keep-alives from the beginning of the result
+                                minData = connection._parseResponse(result);
+                            }
+                            catch (error) {
+                                transportLogic.handleParseFailure(instance, result, error, tryFailConnect, instance.pollXhr);
+                                return;
+                            }
+
+                            // If there's currently a timeout to trigger reconnect, fire it now before processing messages
+                            if (privateData.reconnectTimeoutId !== null) {
+                                fireReconnected(instance);
+                            }
+
+                            if (minData) {
+                                data = transportLogic.maximizePersistentResponse(minData);
+                            }
+
+                            transportLogic.processMessages(instance, minData, fireConnect);
+
+                            if (data &&
+                                $.type(data.LongPollDelay) === "number") {
+                                delay = data.LongPollDelay;
+                            }
+
+                            if (isDisconnecting(instance) === true) {
+                                return;
+                            }
+
+                            shouldReconnect = data && data.ShouldReconnect;
+                            if (shouldReconnect) {
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into a invalid state in processMessages.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+                            }
+
+                            // We never want to pass a raiseReconnect flag after a successful poll.  This is handled via the error function
+                            if (delay > 0) {
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, shouldReconnect);
+                                }, delay);
+                            } else {
+                                poll(instance, shouldReconnect);
+                            }
+                        },
+
+                        error: function (data, textStatus) {
+                            var error = signalR._.transportError(signalR.resources.longPollFailed, connection.transport, data, instance.pollXhr);
+
+                            // Stop trying to trigger reconnect, connection is in an error state
+                            // If we're not in the reconnect state this will noop
+                            window.clearTimeout(privateData.reconnectTimeoutId);
+                            privateData.reconnectTimeoutId = null;
+
+                            if (textStatus === "abort") {
+                                connection.log("Aborted xhr request.");
+                                return;
+                            }
+
+                            if (!tryFailConnect(error)) {
+
+                                // Increment our reconnect errors, we assume all errors to be reconnect errors
+                                // In the case that it's our first error this will cause Reconnect to be fired
+                                // after 1 second due to reconnectErrors being = 1.
+                                reconnectErrors++;
+
+                                if (connection.state !== signalR.connectionState.reconnecting) {
+                                    connection.log("An error occurred using longPolling. Status = " + textStatus + ".  Response = " + data.responseText + ".");
+                                    $(instance).triggerHandler(events.onError, [error]);
+                                }
+
+                                // We check the state here to verify that we're not in an invalid state prior to verifying Reconnect.
+                                // If we're not in connected or reconnecting then the next ensureReconnectingState check will fail and will return.
+                                // Therefore we don't want to change that failure code path.
+                                if ((connection.state === signalR.connectionState.connected ||
+                                    connection.state === signalR.connectionState.reconnecting) &&
+                                    !transportLogic.verifyLastActive(connection)) {
+                                    return;
+                                }
+
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into the disconnected or connecting state within the above error handler trigger.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+
+                                // Call poll with the raiseReconnect flag as true after the reconnect delay
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, true);
+                                }, that.reconnectDelay);
+                            }
+                        }
+                    });
+
+                    // This will only ever pass after an error has occurred via the poll ajax procedure.
+                    if (reconnecting && raiseReconnect === true) {
+                        // We wait to reconnect depending on how many times we've failed to reconnect.
+                        // This is essentially a heuristic that will exponentially increase in wait time before
+                        // triggering reconnected.  This depends on the "error" handler of Poll to cancel this
+                        // timeout if it triggers before the Reconnected event fires.
+                        // The Math.min at the end is to ensure that the reconnect timeout does not overflow.
+                        privateData.reconnectTimeoutId = window.setTimeout(function () { fireReconnected(instance); }, Math.min(1000 * (Math.pow(2, reconnectErrors) - 1), maxFireReconnectedTimeout));
+                    }
+                }(connection));
+            }, 250); // Have to delay initial poll so Chrome doesn't show loader spinner in tab
+        },
+
+        lostConnection: function (connection) {
+            if (connection.pollXhr) {
+                connection.pollXhr.abort("lostConnection");
+            }
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            /// <summary>Stops the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to stop</param>
+
+            window.clearTimeout(connection._.pollTimeoutId);
+            window.clearTimeout(connection._.reconnectTimeoutId);
+
+            delete connection._.pollTimeoutId;
+            delete connection._.reconnectTimeoutId;
+
+            if (connection.pollXhr) {
+                connection.pollXhr.abort();
+                connection.pollXhr = null;
+                delete connection.pollXhr;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.hubs.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var eventNamespace = ".hubProxy",
+        signalR = $.signalR;
+
+    function makeEventName(event) {
+        return event + eventNamespace;
+    }
+
+    // Equivalent to Array.prototype.map
+    function map(arr, fun, thisp) {
+        var i,
+            length = arr.length,
+            result = [];
+        for (i = 0; i < length; i += 1) {
+            if (arr.hasOwnProperty(i)) {
+                result[i] = fun.call(thisp, arr[i], i, arr);
+            }
+        }
+        return result;
+    }
+
+    function getArgValue(a) {
+        return $.isFunction(a) ? null : ($.type(a) === "undefined" ? null : a);
+    }
+
+    function hasMembers(obj) {
+        for (var key in obj) {
+            // If we have any properties in our callback map then we have callbacks and can exit the loop via return
+            if (obj.hasOwnProperty(key)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    function clearInvocationCallbacks(connection, error) {
+        /// <param name="connection" type="hubConnection" />
+        var callbacks = connection._.invocationCallbacks,
+            callback;
+
+        if (hasMembers(callbacks)) {
+            connection.log("Clearing hub invocation callbacks with error: " + error + ".");
+        }
+
+        // Reset the callback cache now as we have a local var referencing it
+        connection._.invocationCallbackId = 0;
+        delete connection._.invocationCallbacks;
+        connection._.invocationCallbacks = {};
+
+        // Loop over the callbacks and invoke them.
+        // We do this using a local var reference and *after* we've cleared the cache
+        // so that if a fail callback itself tries to invoke another method we don't
+        // end up with its callback in the list we're looping over.
+        for (var callbackId in callbacks) {
+            callback = callbacks[callbackId];
+            callback.method.call(callback.scope, { E: error });
+        }
+    }
+
+    // hubProxy
+    function hubProxy(hubConnection, hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        return new hubProxy.fn.init(hubConnection, hubName);
+    }
+
+    hubProxy.fn = hubProxy.prototype = {
+        init: function (connection, hubName) {
+            this.state = {};
+            this.connection = connection;
+            this.hubName = hubName;
+            this._ = {
+                callbackMap: {}
+            };
+        },
+
+        constructor: hubProxy,
+
+        hasSubscriptions: function () {
+            return hasMembers(this._.callbackMap);
+        },
+
+        on: function (eventName, callback) {
+            /// <summary>Wires up a callback to be invoked when a invocation request is received from the server hub.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to register the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            // If there is not an event registered for this callback yet we want to create its event space in the callback map.
+            if (!callbackMap[eventName]) {
+                callbackMap[eventName] = {};
+            }
+
+            // Map the callback to our encompassed function
+            callbackMap[eventName][callback] = function (e, data) {
+                callback.apply(that, data);
+            };
+
+            $(that).bind(makeEventName(eventName), callbackMap[eventName][callback]);
+
+            return that;
+        },
+
+        off: function (eventName, callback) {
+            /// <summary>Removes the callback invocation request from the server hub for the given event name.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to unregister the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap,
+                callbackSpace;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            callbackSpace = callbackMap[eventName];
+
+            // Verify that there is an event space to unbind
+            if (callbackSpace) {
+                // Only unbind if there's an event bound with eventName and a callback with the specified callback
+                if (callbackSpace[callback]) {
+                    $(that).unbind(makeEventName(eventName), callbackSpace[callback]);
+
+                    // Remove the callback from the callback map
+                    delete callbackSpace[callback];
+
+                    // Check if there are any members left on the event, if not we need to destroy it.
+                    if (!hasMembers(callbackSpace)) {
+                        delete callbackMap[eventName];
+                    }
+                } else if (!callback) { // Check if we're removing the whole event and we didn't error because of an invalid callback
+                    $(that).unbind(makeEventName(eventName));
+
+                    delete callbackMap[eventName];
+                }
+            }
+
+            return that;
+        },
+
+        invoke: function (methodName) {
+            /// <summary>Invokes a server hub method with the given arguments.</summary>
+            /// <param name="methodName" type="String">The name of the server hub method.</param>
+
+            var that = this,
+                connection = that.connection,
+                args = $.makeArray(arguments).slice(1),
+                argValues = map(args, getArgValue),
+                data = { H: that.hubName, M: methodName, A: argValues, I: connection._.invocationCallbackId },
+                d = $.Deferred(),
+                callback = function (minResult) {
+                    var result = that._maximizeHubResponse(minResult),
+                        source,
+                        error;
+
+                    // Update the hub state
+                    $.extend(that.state, result.State);
+
+                    if (result.Progress) {
+                        if (d.notifyWith) {
+                            // Progress is only supported in jQuery 1.7+
+                            d.notifyWith(that, [result.Progress.Data]);
+                        } else if(!connection._.progressjQueryVersionLogged) {
+                            connection.log("A hub method invocation progress update was received but the version of jQuery in use (" + $.prototype.jquery + ") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications.");
+                            connection._.progressjQueryVersionLogged = true;
+                        }
+                    } else if (result.Error) {
+                        // Server hub method threw an exception, log it & reject the deferred
+                        if (result.StackTrace) {
+                            connection.log(result.Error + "\n" + result.StackTrace + ".");
+                        }
+
+                        // result.ErrorData is only set if a HubException was thrown
+                        source = result.IsHubException ? "HubException" : "Exception";
+                        error = signalR._.error(result.Error, source);
+                        error.data = result.ErrorData;
+
+                        connection.log(that.hubName + "." + methodName + " failed to execute. Error: " + error.message);
+                        d.rejectWith(that, [error]);
+                    } else {
+                        // Server invocation succeeded, resolve the deferred
+                        connection.log("Invoked " + that.hubName + "." + methodName);
+                        d.resolveWith(that, [result.Result]);
+                    }
+                };
+
+            connection._.invocationCallbacks[connection._.invocationCallbackId.toString()] = { scope: that, method: callback };
+            connection._.invocationCallbackId += 1;
+
+            if (!$.isEmptyObject(that.state)) {
+                data.S = that.state;
+            }
+
+            connection.log("Invoking " + that.hubName + "." + methodName);
+            connection.send(data);
+
+            return d.promise();
+        },
+
+        _maximizeHubResponse: function (minHubResponse) {
+            return {
+                State: minHubResponse.S,
+                Result: minHubResponse.R,
+                Progress: minHubResponse.P ? {
+                    Id: minHubResponse.P.I,
+                    Data: minHubResponse.P.D
+                } : null,
+                Id: minHubResponse.I,
+                IsHubException: minHubResponse.H,
+                Error: minHubResponse.E,
+                StackTrace: minHubResponse.T,
+                ErrorData: minHubResponse.D
+            };
+        }
+    };
+
+    hubProxy.fn.init.prototype = hubProxy.fn;
+
+    // hubConnection
+    function hubConnection(url, options) {
+        /// <summary>Creates a new hub connection.</summary>
+        /// <param name="url" type="String">[Optional] The hub route url, defaults to "/signalr".</param>
+        /// <param name="options" type="Object">[Optional] Settings to use when creating the hubConnection.</param>
+        var settings = {
+            qs: null,
+            logging: false,
+            useDefaultPath: true
+        };
+
+        $.extend(settings, options);
+
+        if (!url || settings.useDefaultPath) {
+            url = (url || "") + "/signalr";
+        }
+        return new hubConnection.fn.init(url, settings);
+    }
+
+    hubConnection.fn = hubConnection.prototype = $.connection();
+
+    hubConnection.fn.init = function (url, options) {
+        var settings = {
+                qs: null,
+                logging: false,
+                useDefaultPath: true
+            },
+            connection = this;
+
+        $.extend(settings, options);
+
+        // Call the base constructor
+        $.signalR.fn.init.call(connection, url, settings.qs, settings.logging);
+
+        // Object to store hub proxies for this connection
+        connection.proxies = {};
+
+        connection._.invocationCallbackId = 0;
+        connection._.invocationCallbacks = {};
+
+        // Wire up the received handler
+        connection.received(function (minData) {
+            var data, proxy, dataCallbackId, callback, hubName, eventName;
+            if (!minData) {
+                return;
+            }
+
+            // We have to handle progress updates first in order to ensure old clients that receive
+            // progress updates enter the return value branch and then no-op when they can't find
+            // the callback in the map (because the minData.I value will not be a valid callback ID)
+            if (typeof (minData.P) !== "undefined") {
+                // Process progress notification
+                dataCallbackId = minData.P.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    callback.method.call(callback.scope, minData);
+                }
+            } else if (typeof (minData.I) !== "undefined") {
+                // We received the return value from a server method invocation, look up callback by id and call it
+                dataCallbackId = minData.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    // Delete the callback from the proxy
+                    connection._.invocationCallbacks[dataCallbackId] = null;
+                    delete connection._.invocationCallbacks[dataCallbackId];
+
+                    // Invoke the callback
+                    callback.method.call(callback.scope, minData);
+                }
+            } else {
+                data = this._maximizeClientHubInvocation(minData);
+
+                // We received a client invocation request, i.e. broadcast from server hub
+                connection.log("Triggering client hub event '" + data.Method + "' on hub '" + data.Hub + "'.");
+
+                // Normalize the names to lowercase
+                hubName = data.Hub.toLowerCase();
+                eventName = data.Method.toLowerCase();
+
+                // Trigger the local invocation event
+                proxy = this.proxies[hubName];
+
+                // Update the hub state
+                $.extend(proxy.state, data.State);
+                $(proxy).triggerHandler(makeEventName(eventName), [data.Args]);
+            }
+        });
+
+        connection.error(function (errData, origData) {
+            var callbackId, callback;
+
+            if (!origData) {
+                // No original data passed so this is not a send error
+                return;
+            }
+
+            callbackId = origData.I;
+            callback = connection._.invocationCallbacks[callbackId];
+
+            // Verify that there is a callback bound (could have been cleared)
+            if (callback) {
+                // Delete the callback
+                connection._.invocationCallbacks[callbackId] = null;
+                delete connection._.invocationCallbacks[callbackId];
+
+                // Invoke the callback with an error to reject the promise
+                callback.method.call(callback.scope, { E: errData });
+            }
+        });
+
+        connection.reconnecting(function () {
+            if (connection.transport && connection.transport.name === "webSockets") {
+                clearInvocationCallbacks(connection, "Connection started reconnecting before invocation result was received.");
+            }
+        });
+
+        connection.disconnected(function () {
+            clearInvocationCallbacks(connection, "Connection was disconnected before invocation result was received.");
+        });
+    };
+
+    hubConnection.fn._maximizeClientHubInvocation = function (minClientHubInvocation) {
+        return {
+            Hub: minClientHubInvocation.H,
+            Method: minClientHubInvocation.M,
+            Args: minClientHubInvocation.A,
+            State: minClientHubInvocation.S
+        };
+    };
+
+    hubConnection.fn._registerSubscribedHubs = function () {
+        /// <summary>
+        ///     Sets the starting event to loop through the known hubs and register any new hubs
+        ///     that have been added to the proxy.
+        /// </summary>
+        var connection = this;
+
+        if (!connection._subscribedToHubs) {
+            connection._subscribedToHubs = true;
+            connection.starting(function () {
+                // Set the connection's data object with all the hub proxies with active subscriptions.
+                // These proxies will receive notifications from the server.
+                var subscribedHubs = [];
+
+                $.each(connection.proxies, function (key) {
+                    if (this.hasSubscriptions()) {
+                        subscribedHubs.push({ name: key });
+                        connection.log("Client subscribed to hub '" + key + "'.");
+                    }
+                });
+
+                if (subscribedHubs.length === 0) {
+                    connection.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");
+                }
+
+                connection.data = connection.json.stringify(subscribedHubs);
+            });
+        }
+    };
+
+    hubConnection.fn.createHubProxy = function (hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        /// <param name="hubName" type="String">
+        ///     The name of the hub on the server to create the proxy for.
+        /// </param>
+
+        // Normalize the name to lowercase
+        hubName = hubName.toLowerCase();
+
+        var proxy = this.proxies[hubName];
+        if (!proxy) {
+            proxy = hubProxy(this, hubName);
+            this.proxies[hubName] = proxy;
+        }
+
+        this._registerSubscribedHubs();
+
+        return proxy;
+    };
+
+    hubConnection.fn.init.prototype = hubConnection.fn;
+
+    $.hubConnection = hubConnection;
+
+}(window.jQuery, window));
+/* jquery.signalR.version.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+(function ($, undefined) {
+    $.signalR.version = "2.2.2";
+}(window.jQuery));
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.min.js b/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.min.js
new file mode 100644
index 0000000..2ccd39d
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Scripts/jquery.signalR-2.2.2.min.js
@@ -0,0 +1,9 @@
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+(function(n,t,i){function w(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function b(n){return n==="http:"?80:n==="https:"?443:void 0}function a(n,t){return t.match(/:\d+$/)?t:t+":"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server.  Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if(typeof n!="function")throw new Error(f.nojQuery);var r,h,o=t.document.readyState==="complete",e=n(t),c="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},v=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<arguments.length-1;n++)t=t.replace("{"+n+"}",arguments[n+1]);return t},firefoxMajorVersion:function(n){var t=n.match(/Firefox\/(\d+)/);return!t||!t.length||t.length<2?0:parseInt(t[1],10)},configurePingInterval:function(i){var f=i._.config,e=function(t){n(i).triggerHandler(u.onError,[t])};f&&!i._.pingIntervalId&&f.pingInterval&&(i._.pingIntervalId=t.setInterval(function(){r.transports._logic.pingServer(i).fail(e)},f.pingInterval))}},r.events=u,r.resources=f,r.ajaxDefaults={processData:!0,timeout:null,async:!0,global:!1,cache:!1},r.changeState=s,r.isDisconnecting=y,r.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},r.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"1.5",reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},d,y=a._deferral||n.Deferred(),b=t.document.createElement("a"),k,g;if(a.lastError=null,a._deferral=y,!a.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(v,i),n.type(v.callback)==="function"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind("load",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),b.href=a.url,b.protocol&&b.protocol!==":"?(a.protocol=b.protocol,a.host=b.host):(a.protocol=t.document.location.protocol,a.host=b.host||t.document.location.host),a.baseUrl=a.protocol+"//"+a.host,a.wsProtocol=a.protocol==="https:"?"wss://":"ws://",v.transport==="auto"&&v.jsonp===!0&&(v.transport="longPolling"),a.url.indexOf("//")===0&&(a.url=t.location.protocol+a.url,a.log("Protocol relative URL detected, normalizing it to '"+a.url+"'.")),this.isCrossDomain(a.url)&&(a.log("Auto detected cross domain url."),v.transport==="auto"&&(v.transport=["webSockets","serverSentEvents","longPolling"]),typeof v.withCredentials=="undefined"&&(v.withCredentials=!0),v.jsonp||(v.jsonp=!n.support.cors,v.jsonp&&a.log("Using jsonp because this browser doesn't support CORS.")),a.contentType=r._.defaultContentType),a.withCredentials=v.withCredentials,a.ajaxDataType=v.jsonp?"jsonp":"text",n(a).bind(u.onStart,function(){n.type(h)==="function"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),d=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log("No transports supported by the server were selected."):o===1?a.log("No fallback transports were selected."):a.log("Fallback transports exhausted.");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){d(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var i=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,f=!!a.withCredentials&&i;a.log("The start request succeeded. Transitioning to the connected state.");l(a)&&r.transports._logic.monitorKeepAlive(a);r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log("WARNING! The connection was not in the connecting state.");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind("unload",function(){a.log("Window unloading, stopping the connection.");a.stop(f)});i&&e.bind("beforeunload",function(){t.setTimeout(function(){a.stop(f)},0)})},v)}catch(w){a.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},k=a.url+"/negotiate",g=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),k=r.transports._logic.prepareQueryString(a,k),a.log("Negotiating with '"+k+"'."),a._.negotiateRequest=r.transports._logic.ajax(a,{url:k,error:function(n,t){t!==c?g(n,a):y.reject(r._.error(f.stoppedWhileNegotiating,null,a._.negotiateRequest))},success:function(t){var i,e,h,o=[],s=[];try{i=a._parseResponse(t)}catch(c){g(r._.error(f.errorParsingNegotiateResponse,c),a);return}if(e=a._.keepAliveData,a.appRelativeUrl=i.Url,a.id=i.ConnectionId,a.token=i.ConnectionToken,a.webSocketServerUrl=i.WebSocketServerUrl,a._.pollTimeout=i.ConnectionTimeout*1e3+1e4,a.disconnectTimeout=i.DisconnectTimeout*1e3,a._.totalTransportConnectTimeout=a.transportConnectTimeout+i.TransportConnectTimeout*1e3,i.KeepAliveTimeout?(e.activated=!0,e.timeout=i.KeepAliveTimeout*1e3,e.timeoutWarning=e.timeout*a.keepAliveWarnAt,a._.beatInterval=(e.timeout-e.timeoutWarning)/3):e.activated=!1,a.reconnectWindow=a.disconnectTimeout+(e.timeout||0),!i.ProtocolVersion||i.ProtocolVersion!==a.clientProtocol){h=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,i.ProtocolVersion));n(a).triggerHandler(u.onError,[h]);y.reject(h);return}n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!i.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport==="auto"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);d(o)}}),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind("load",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log("Stopping connection."),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),n(a).unbind(u.onStart),s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out.  Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o="__Start Aborted__",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,t){if(typeof n.transport!="undefined"){t=typeof t=="undefined"?!0:t;var i=e(n,"/abort");u.ajax(n,{url:i,async:t,timeout:1e3,type:"POST"});n.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response==="started"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,r){var f;u.markLastMessage(t);i&&(f=u.maximizePersistentResponse(i),u.updateGroups(t,f.GroupsToken),f.MessageId&&(t.messageId=f.MessageId),f.Messages&&(n.each(f.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,f,r)))},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime()},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if((new Date).getTime()-t._.lastActiveAt>=t.reconnectWindow){var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1}return!0},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new h(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,f=n.signalR.changeState,i=r.transports._logic;r.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=i.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[r._.transportError(r.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=i.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");i.clearReconnectTimeout(e);f(e,r.connectionState.reconnecting,r.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var i;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(i=r._.transportError(r.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(i)||(i&&n(e).triggerHandler(u.onError,[i]),l.reconnect(e)))},e.socket.onmessage=function(t){var r;try{r=e._parseResponse(t.data)}catch(u){i.handleParseFailure(e,t.data,u,s,t);return}r&&(n.isEmptyObject(r)||r.M?i.processMessages(e,r,o):i.triggerReceived(e,r))})},reconnect:function(n){i.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){i.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.documentElement&&t.document.documentElement.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+".  Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+e}function s(n,t,i){for(var f=n.length,u=[],r=0;r<f;r+=1)n.hasOwnProperty(r)&&(u[r]=t.call(i,n[r],r,n));return u}function h(t){return n.isFunction(t)?null:n.type(t)==="undefined"?null:t}function u(n){for(var t in n)if(n.hasOwnProperty(t))return!0;return!1}function f(n,t){var i=n._.invocationCallbacks,r,f;u(i)&&n.log("Clearing hub invocation callbacks with error: "+t+".");n._.invocationCallbackId=0;delete n._.invocationCallbacks;n._.invocationCallbacks={};for(f in i)r=i[f],r.method.call(r.scope,{E:t})}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||"")+"/signalr"),new t.fn.init(i,u)}var e=".hubProxy",o=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i){var u=this,f=u._.callbackMap;return t=t.toLowerCase(),f[t]||(f[t]={}),f[t][i]=function(n,t){i.apply(u,t)},n(u).bind(r(t),f[t][i]),u},off:function(t,i){var e=this,o=e._.callbackMap,f;return t=t.toLowerCase(),f=o[t],f&&(f[i]?(n(e).unbind(r(t),f[i]),delete f[i],u(f)||delete o[t]):i||(n(e).unbind(r(t)),delete o[t])),e},invoke:function(t){var i=this,r=i.connection,e=n.makeArray(arguments).slice(1),c=s(e,h),f={H:i.hubName,M:t,A:c,I:r._.invocationCallbackId},u=n.Deferred(),l=function(f){var e=i._maximizeHubResponse(f),h,s;n.extend(i.state,e.State);e.Progress?u.notifyWith?u.notifyWith(i,[e.Progress.Data]):r._.progressjQueryVersionLogged||(r.log("A hub method invocation progress update was received but the version of jQuery in use ("+n.prototype.jquery+") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),r._.progressjQueryVersionLogged=!0):e.Error?(e.StackTrace&&r.log(e.Error+"\n"+e.StackTrace+"."),h=e.IsHubException?"HubException":"Exception",s=o._.error(e.Error,h),s.data=e.ErrorData,r.log(i.hubName+"."+t+" failed to execute. Error: "+s.message),u.rejectWith(i,[s])):(r.log("Invoked "+i.hubName+"."+t),u.resolveWith(i,[e.Result]))};return r._.invocationCallbacks[r._.invocationCallbackId.toString()]={scope:i,method:l},r._.invocationCallbackId+=1,n.isEmptyObject(i.state)||(f.S=i.state),r.log("Invoking "+i.hubName+"."+t),r.send(f),u.promise()},_maximizeHubResponse:function(n){return{State:n.S,Result:n.R,Progress:n.P?{Id:n.P.I,Data:n.P.D}:null,Id:n.I,IsHubException:n.H,Error:n.E,StackTrace:n.T,ErrorData:n.D}}};i.fn.init.prototype=i.fn;t.fn=t.prototype=n.connection();t.fn.init=function(t,i){var e={qs:null,logging:!1,useDefaultPath:!0},u=this;n.extend(e,i);n.signalR.fn.init.call(u,t,e.qs,e.logging);u.proxies={};u._.invocationCallbackId=0;u._.invocationCallbacks={};u.received(function(t){var f,o,e,i,s,h;t&&(typeof t.P!="undefined"?(e=t.P.I.toString(),i=u._.invocationCallbacks[e],i&&i.method.call(i.scope,t)):typeof t.I!="undefined"?(e=t.I.toString(),i=u._.invocationCallbacks[e],i&&(u._.invocationCallbacks[e]=null,delete u._.invocationCallbacks[e],i.method.call(i.scope,t))):(f=this._maximizeClientHubInvocation(t),u.log("Triggering client hub event '"+f.Method+"' on hub '"+f.Hub+"'."),s=f.Hub.toLowerCase(),h=f.Method.toLowerCase(),o=this.proxies[s],n.extend(o.state,f.State),n(o).triggerHandler(r(h),[f.Args])))});u.error(function(n,t){var i,r;t&&(i=t.I,r=u._.invocationCallbacks[i],r&&(u._.invocationCallbacks[i]=null,delete u._.invocationCallbacks[i],r.method.call(r.scope,{E:n})))});u.reconnecting(function(){u.transport&&u.transport.name==="webSockets"&&f(u,"Connection started reconnecting before invocation result was received.")});u.disconnected(function(){f(u,"Connection was disconnected before invocation result was received.")})};t.fn._maximizeClientHubInvocation=function(n){return{Hub:n.H,Method:n.M,Args:n.A,State:n.S}};t.fn._registerSubscribedHubs=function(){var t=this;t._subscribedToHubs||(t._subscribedToHubs=!0,t.starting(function(){var i=[];n.each(t.proxies,function(n){this.hasSubscriptions()&&(i.push({name:n}),t.log("Client subscribed to hub '"+n+"'."))});i.length===0&&t.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");t.data=t.json.stringify(i)}))};t.fn.createHubProxy=function(n){n=n.toLowerCase();var t=this.proxies[n];return t||(t=i(this,n),this.proxies[n]=t),this._registerSubscribedHubs(),t};t.fn.init.prototype=t.fn;n.hubConnection=t}(window.jQuery,window),function(n){n.signalR.version="2.2.2"}(window.jQuery);
\ No newline at end of file
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Web.config b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
index b4f2553..87ec17e 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Web.config
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -125,6 +125,14 @@
         <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
   <system.codedom>
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 13a81b5..6e332bb 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
index 01b4d26..78a62ed 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -4,13 +4,6 @@
         <name>VueWebApi</name>
     </assembly>
     <members>
-        <member name="M:VueWebApi.SwaggerConfig.GetXmlCommentsPath(System.String)">
-            <summary>
-            XML璺緞鎷兼帴
-            </summary>
-            <param name="name"></param>
-            <returns></returns>
-        </member>
         <member name="T:VueWebApi.App_Start.SwaggerControllerDescProvider">
             <summary>
             swagger鏄剧ず鎺у埗鍣ㄧ殑鎻忚堪
@@ -28,6 +21,13 @@
             浠嶢PI鏂囨。涓鍙栨帶鍒跺櫒鎻忚堪
             </summary>
             <returns>鎵�鏈夋帶鍒跺櫒鎻忚堪</returns>
+        </member>
+        <member name="M:VueWebApi.SwaggerConfig.GetXmlCommentsPath(System.String)">
+            <summary>
+            XML璺緞鎷兼帴
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
         </member>
         <member name="M:VueWebApi.Areas.HelpPage.ApiDescriptionExtensions.GetFriendlyId(System.Web.Http.Description.ApiDescription)">
             <summary>
@@ -506,6 +506,31 @@
             </summary>
             <param name="documentPath">The physical path to XML document.</param>
         </member>
+        <member name="F:VueWebApi.Hubs.ChatHub.userList">
+            <summary>
+            闈欐�佺敤鎴峰垪琛�
+            </summary>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub._connections">
+            <summary>
+            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
+            </summary>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
+            <summary>
+            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
+            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
+            </summary>
+            <param name="name1">鍙戣捣鑰�</param>
+            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
+            <param name="cont">娑堟伅鍐呭</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟
+            </summary>
+            <param name="name"></param>
+        </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
             鏃ュ父鐐规,鎵弿宸ヤ綅/璁惧浜岀淮鐮�
diff --git a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
index bc0b1a5..4cd68b7 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -126,6 +126,14 @@
 				<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
 				<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
 			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+			</dependentAssembly>
 		</assemblyBinding>
 	</runtime>
 	<system.codedom>
diff --git a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
index b4f2553..87ec17e 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -125,6 +125,14 @@
         <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
   <system.codedom>
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index 1a73c3a..3cfa469 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-248d9ccaf03385be1c49da731abd00e286709822
+4c04b5c24a8e03c4e6abfe256010d8ea60a4acec
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
index c64ac13..cf359b7 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -155,6 +155,8 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\ICSharpCode.SharpZipLib.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\JWT.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\log4net.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNet.SignalR.Core.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNet.SignalR.SystemWeb.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Http.Abstractions.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Http.Features.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Mvc.Abstractions.dll
@@ -163,12 +165,16 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Extensions.Primitives.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Net.Http.Headers.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.Host.SystemWeb.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.Security.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Web.Infrastructure.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Newtonsoft.Json.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.OOXML.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.OpenXml4Net.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.OpenXmlFormats.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Owin.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Pipelines.Sockets.Unofficial.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\ServiceStack.Common.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\ServiceStack.Interfaces.dll
@@ -211,6 +217,8 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\JWT.pdb
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\JWT.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\log4net.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNet.SignalR.Core.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNet.SignalR.SystemWeb.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Http.Abstractions.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Http.Features.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.AspNetCore.Mvc.Abstractions.xml
@@ -218,6 +226,9 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Bcl.AsyncInterfaces.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Extensions.Primitives.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Net.Http.Headers.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.Host.SystemWeb.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.Owin.Security.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Newtonsoft.Json.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.pdb
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\NPOI.xml
@@ -255,6 +266,8 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Razor.xml
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Antlr3.Runtime.pdb
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\Microsoft.AspNet.SignalR.Core.resources.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\Microsoft.AspNet.SignalR.SystemWeb.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Net.Http.Formatting.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Http.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Http.WebHost.resources.dll
@@ -265,7 +278,6 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
-D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 13a81b5..6e332bb 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/packages.config b/VueWebApi/packages.config
index 19654a1..7227d05 100644
--- a/VueWebApi/packages.config
+++ b/VueWebApi/packages.config
@@ -11,6 +11,13 @@
   <package id="Microsoft.AspNet.Mvc.zh-Hans" version="5.2.7" targetFramework="net461" />
   <package id="Microsoft.AspNet.Razor" version="3.2.7" targetFramework="net461" />
   <package id="Microsoft.AspNet.Razor.zh-Hans" version="3.2.7" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.Core" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.Core.zh-Hans" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.JS" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.SystemWeb.zh-Hans" version="2.2.2" targetFramework="net461" />
+  <package id="Microsoft.AspNet.SignalR.zh-Hans" version="2.2.2" targetFramework="net461" />
   <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" />
   <package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.1.3" targetFramework="net461" />
   <package id="Microsoft.AspNet.WebApi" version="5.2.9" targetFramework="net461" />
@@ -32,10 +39,17 @@
   <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net461" />
   <package id="Microsoft.Extensions.Primitives" version="2.2.0" targetFramework="net461" />
   <package id="Microsoft.Net.Http.Headers" version="2.2.0" targetFramework="net461" />
+  <package id="Microsoft.Owin" version="4.0.0" targetFramework="net461" />
+  <package id="Microsoft.Owin.Host.SystemWeb" version="4.0.0" targetFramework="net461" />
+  <package id="Microsoft.Owin.Host.SystemWeb.zh-Hans" version="4.0.0" targetFramework="net461" />
+  <package id="Microsoft.Owin.Security" version="4.0.0" targetFramework="net461" />
+  <package id="Microsoft.Owin.Security.zh-Hans" version="4.0.0" targetFramework="net461" />
+  <package id="Microsoft.Owin.zh-Hans" version="4.0.0" targetFramework="net461" />
   <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
   <package id="Modernizr" version="2.8.3" targetFramework="net461" />
   <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" />
   <package id="NPOI" version="2.5.6" targetFramework="net461" />
+  <package id="Owin" version="1.0" targetFramework="net461" />
   <package id="Pipelines.Sockets.Unofficial" version="2.2.2" targetFramework="net461" />
   <package id="Portable.BouncyCastle" version="1.8.9" targetFramework="net461" />
   <package id="ServiceStack.Common" version="5.0.0" targetFramework="net461" />
diff --git a/packages/Microsoft.AspNet.SignalR.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.2.2.2/.signature.p7s
new file mode 100644
index 0000000..6b3eb7c
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.2.2.2/Microsoft.AspNet.SignalR.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.2.2.2/Microsoft.AspNet.SignalR.2.2.2.nupkg
new file mode 100644
index 0000000..2732d07
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.2.2.2/Microsoft.AspNet.SignalR.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.2.2.2/readme.txt b/packages/Microsoft.AspNet.SignalR.2.2.2/readme.txt
new file mode 100644
index 0000000..e908393
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.2.2.2/readme.txt
@@ -0,0 +1,50 @@
+Please see http://go.microsoft.com/fwlink/?LinkId=272764 for more information on using SignalR.
+
+Upgrading from 1.x to 2.0
+-------------------------
+Please see http://go.microsoft.com/fwlink/?LinkId=320578 for more information on how to 
+upgrade your SignalR 1.x application to 2.0.
+
+Mapping the Hubs connection
+----------------------------
+To enable SignalR in your application, create a class called Startup with the following:
+
+using Microsoft.Owin;
+using Owin;
+using MyWebApplication;
+
+namespace MyWebApplication
+{
+    public class Startup
+    {
+        public void Configuration(IAppBuilder app)
+        {
+            app.MapSignalR();
+        }
+    }
+} 
+
+Getting Started
+---------------
+See http://www.asp.net/signalr/overview/getting-started for more information on how to get started.
+
+Why does ~/signalr/hubs return 404 or Why do I get a JavaScript error: 'myhub is undefined'?
+--------------------------------------------------------------------------------------------
+This issue is generally due to a missing or invalid script reference to the auto-generated Hub JavaScript proxy at '~/signalr/hubs'.
+Please make sure that the Hub route is registered before any other routes in your application.
+ 
+In ASP.NET MVC 4 you can do the following:
+ 
+      <script src="~/signalr/hubs"></script>
+ 
+If you're writing an ASP.NET MVC 3 application, make sure that you are using Url.Content for your script references:
+ 
+    <script src="@Url.Content("~/signalr/hubs")"></script>
+ 
+If you're writing a regular ASP.NET application use ResolveClientUrl for your script references or register them via the ScriptManager 
+using a app root relative path (starting with a '~/'):
+ 
+    <script src='<%: ResolveClientUrl("~/signalr/hubs") %>'></script>
+ 
+If the above still doesn't work, you may have an issue with routing and extensionless URLs. To fix this, ensure you have the latest 
+patches installed for IIS and ASP.NET. 
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.Core.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/.signature.p7s
new file mode 100644
index 0000000..f5cd420
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.Core.2.2.2/Microsoft.AspNet.SignalR.Core.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/Microsoft.AspNet.SignalR.Core.2.2.2.nupkg
new file mode 100644
index 0000000..d06f3d6
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/Microsoft.AspNet.SignalR.Core.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/Microsoft.AspNet.SignalR.Core.xml b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/Microsoft.AspNet.SignalR.Core.xml
new file mode 100644
index 0000000..907cc4c
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/Microsoft.AspNet.SignalR.Core.xml
@@ -0,0 +1,3300 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.AspNet.SignalR.Core</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager">
+            <summary>
+            Default <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager"/> class.
+            </summary>
+            <param name="resolver">The <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnectionContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnection(System.Type)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <param name="type">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``2">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IMemoryPool.AllocSegment(System.Int32)">
+            <summary>
+              Acquires a sub-segment of a larger memory allocation. Used for async sends of write-behind
+              buffers to reduce number of array segments pinned
+            </summary>
+            <param name = "minimumSize">The smallest length of the ArraySegment.Count that may be returned</param>
+            <returns>An array segment which is a sub-block of a larger allocation</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IMemoryPool.FreeSegment(System.ArraySegment{System.Byte})">
+            <summary>
+              Frees a sub-segment of a larger memory allocation produced by AllocSegment. The original ArraySegment
+              must be frees exactly once and must have the same offset and count that was returned by the Alloc.
+              If a segment is not freed it won't be re-used and has the same effect as a memory leak, so callers must be
+              implemented exactly correctly.
+            </summary>
+            <param name = "segment">The sub-block that was originally returned by a call to AllocSegment.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter">
+            <summary>
+            Implemented on anything that has the ability to write raw binary data
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager">
+            <summary>
+            Provides access to performance counters.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Initializes the performance counters.
+            </summary>
+            <param name="instanceName">The host instance name.</param>
+            <param name="hostShutdownToken">The CancellationToken representing the host shutdown.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+            <summary>
+            Loads a performance counter.
+            </summary>
+            <param name="categoryName">The category name.</param>
+            <param name="counterName">The counter name.</param>
+            <param name="instanceName">The instance name.</param>
+            <param name="isReadOnly">Whether the counter is read-only.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsConnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Connect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsReconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Reconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsDisconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Disconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentForeverFrame">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using ForeverFrame transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentLongPolling">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using LongPolling transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentServerSentEvents">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using ServerSentEvents transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrentWebSockets">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using WebSockets transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrent">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by connections (server to client) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages sent by connections (client to server) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by subscribers since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by a subscribers per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by the scaleout message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages published to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages published to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersCurrent">
+            <summary>
+            Gets the performance counter representing the current number of subscribers to the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersTotal">
+            <summary>
+            Gets the performance counter representing the total number of subscribers to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersPerSec">
+            <summary>
+            Gets the performance counter representing the number of new subscribers to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusAllocatedWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers allocated to deliver messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusBusyWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers currently busy delivering messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusTopicsCurrent">
+            <summary>
+            Gets the performance counter representing representing the current number of topics in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllTotal">
+            <summary>
+            Gets the performance counter representing the total number of all errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllPerSec">
+            <summary>
+            Gets the performance counter representing the number of all errors processed per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub resolution errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub resolution errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub invocation errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub invocation errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportTotal">
+            <summary>
+            Gets the performance counter representing the total number of transport errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportPerSec">
+            <summary>
+            Gets the performance counter representing the number of transport errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountTotal">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountOpen">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the open state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountBuffering">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the buffering state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsTotal">
+            <summary>
+            Gets the performance counter representing the total number of scaleout errors since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsPerSec">
+            <summary>
+            Gets the performance counter representing the number of scaleout errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutSendQueueLength">
+            <summary>
+            Gets the performance counter representing the current scaleout send queue length.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager">
+            <summary>
+            Manages performance counters using Windows performance counters.
+            </summary>
+        </member>
+        <member name="F:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.CategoryName">
+            <summary>
+            The performance counter category name for SignalR counters.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+            <summary>
+            Creates a new instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsConnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Connect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsReconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Reconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsDisconnected">
+            <summary>
+            Gets the performance counter representing the total number of connection Disconnect events since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentForeverFrame">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the ForeverFrame transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentLongPolling">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the LongPolling transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentServerSentEvents">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the ServerSentEvents transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrentWebSockets">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected using the WebSockets transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrent">
+            <summary>
+            Gets the performance counter representing the number of connections currently connected.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the toal number of messages received by connections (server to client) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages sent by connections (client to server) since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by connections (server to client) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages sent by connections (client to server) per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages received by subscribers since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by a subscribers per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages received by the scaleout message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedTotal">
+            <summary>
+            Gets the performance counter representing the total number of messages published to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+            <summary>
+            Gets the performance counter representing the number of messages published to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersCurrent">
+            <summary>
+            Gets the performance counter representing the current number of subscribers to the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersTotal">
+            <summary>
+            Gets the performance counter representing the total number of subscribers to the message bus since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersPerSec">
+            <summary>
+            Gets the performance counter representing the number of new subscribers to the message bus per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusAllocatedWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers allocated to deliver messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusBusyWorkers">
+            <summary>
+            Gets the performance counter representing the number of workers currently busy delivering messages in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusTopicsCurrent">
+            <summary>
+            Gets the performance counter representing representing the current number of topics in the message bus.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllTotal">
+            <summary>
+            Gets the performance counter representing the total number of all errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllPerSec">
+            <summary>
+            Gets the performance counter representing the number of all errors processed per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub resolution errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub resolution errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationTotal">
+            <summary>
+            Gets the performance counter representing the total number of hub invocation errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationPerSec">
+            <summary>
+            Gets the performance counter representing the number of hub invocation errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportTotal">
+            <summary>
+            Gets the performance counter representing the total number of transport errors processed since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportPerSec">
+            <summary>
+            Gets the performance counter representing the number of transport errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountTotal">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountOpen">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the open state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountBuffering">
+            <summary>
+            Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the buffering state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsTotal">
+            <summary>
+            Gets the performance counter representing the total number of scaleout errors since the application was started.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsPerSec">
+            <summary>
+            Gets the performance counter representing the number of scaleout errors per second.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutSendQueueLength">
+            <summary>
+            Gets the performance counter representing the current scaleout send queue length.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Initializes the performance counters.
+            </summary>
+            <param name="instanceName">The host instance name.</param>
+            <param name="hostShutdownToken">The CancellationToken representing the host shutdown.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Disposer">
+            <summary>
+            Helper class to manage disposing a resource at an arbirtary time
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.SafeCancellationTokenSource">
+            <summary>
+            Thread safe cancellation token source. Allows the following:
+            - Cancel will no-op if the token is disposed.
+            - Dispose may be called after Cancel.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager">
+            <summary>
+            Provides access to hubs and persistent connections references.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``2">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></typeparam>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1(System.String)">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/>for the specified hub.
+            </summary>
+            <param name="hubName">Name of the hub</param>
+            <typeparam name="TClient">Interface implemented by the client proxy</typeparam>
+            <returns>a <see cref="T:Microsoft.AspNet.SignalR.IHubContext`1"/> for the specified hub</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetConnectionContext``1">
+            <summary>
+            Returns a <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <typeparam name="T">Type of the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)">
+            <summary>
+            Minifies a string in a way that can be reversed by this instance of <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/>.
+            </summary>
+            <param name="value">The string to be minified</param>
+            <returns>A minified representation of the <paramref name="value"/> without the following characters:,|\</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)">
+            <summary>
+            Reverses a <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> call that was executed at least once previously on this instance of
+            <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/> without any subsequent calls to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)"/> sharing the
+            same argument as the <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> call that returned <paramref name="value"/>.
+            </summary>
+            <param name="value">
+            A minified string that was returned by a previous call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/>.
+            </param>
+            <returns>
+            The argument of all previous calls to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> that returned <paramref name="value"/>.
+            If every call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> on this instance of <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier"/> has never
+            returned <paramref name="value"/> or if the most recent call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)"/> that did
+            return <paramref name="value"/> was followed by a call to <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)"/> sharing 
+            the same argument, <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)"/> may return null but must not throw.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)">
+            <summary>
+            A call to this function indicates that any future attempt to unminify strings that were previously minified
+            from <paramref name="value"/> may be met with a null return value. This provides an opportunity clean up
+            any internal data structures that reference <paramref name="value"/>.
+            </summary>
+            <param name="value">The string that may have previously have been minified.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.UrlDecoder">
+            <summary>
+            Helpers for decoding URI query components.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber">
+            <summary>
+            A singleton that subscribes to all ACKs sent over the
+            <see cref="T:Microsoft.AspNet.SignalR.Messaging.IMessageBus"/> and
+            triggers any corresponding ACKs on the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.KeepAliveTimeout(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The amount of time the client should wait without seeing a keep alive before trying to reconnect.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.HeartbeatInterval(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The interval between successively checking connection states.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Configuration.ConfigurationExtensions.TopicTtl(Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)">
+            <summary>
+            The amount of time a Topic should stay in memory after its last subscriber is removed.
+            </summary>
+            <param name="config"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager">
+            <summary>
+            Provides access to server configuration.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.TransportConnectTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time a client should allow to connect before falling
+            back to another transport or failing.
+            The default value is 5 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.ConnectionTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time to leave a connection open before timing out.
+            The default value is 110 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time to wait after a connection goes away before raising the disconnect event.
+            The default value is 30 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.KeepAlive">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing the amount of time between send keep alive messages.
+            If enabled, this value must be at least two seconds. Set to null to disable.
+            The default value is 10 seconds.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DefaultMessageBufferSize">
+            <summary>
+            Gets or sets the number of messages to buffer for a specific signal.
+            The default value is 1000.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.MaxIncomingWebSocketMessageSize">
+            <summary>
+            Gets or sets the maximum size in bytes of messages sent from client to the server via WebSockets.
+            Set to null to disable this limit.
+            The default value is 65536 or 64 KB.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.LongPollDelay">
+            <summary>
+            Gets or sets a <see cref="T:System.TimeSpan"/> representing tell the client to wait before restablishing a
+            long poll connection after data is sent from the server.
+            The default value is 0.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.MaxScaleoutMappingsPerStream">
+            <summary>
+            Gets or sets the maximum number of scaleout mappings per scaleout stream stored on the server.
+            The default value is 65535
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.Resolver">
+            <summary>
+            The dependency resolver to use for the hub connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.EnableJSONP">
+            <summary>
+            Gets of sets a boolean that determines if JSONP is enabled.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.IResponse">
+            <summary>
+            Represents a connection to the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.CancellationToken">
+            <summary>
+            Gets a cancellation token that represents the client's lifetime.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.StatusCode">
+            <summary>
+            Gets or sets the status code of the response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.ContentType">
+            <summary>
+            Gets or sets the content type of the response.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Write(System.ArraySegment{System.Byte})">
+            <summary>
+            Writes buffered data.
+            </summary>
+            <param name="data">The data to write to the buffer.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Flush">
+            <summary>
+            Flushes the buffered response to the client.
+            </summary>
+            <returns>A task that represents when the data has been flushed.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.IWebSocket">
+            <summary>
+            Represents a web socket.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnMessage">
+            <summary>
+            Invoked when data is sent over the websocket
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnClose">
+            <summary>
+            Invoked when the websocket closes
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hosting.IWebSocket.OnError">
+            <summary>
+            Invoked when there is an error
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.IWebSocket.Send(System.ArraySegment{System.Byte})">
+            <summary>
+            Sends data over the websocket.
+            </summary>
+            <param name="message">The value to send.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that represents the send is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions">
+            <summary>
+            Extension methods for <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions.End(Microsoft.AspNet.SignalR.Hosting.IResponse,System.String)">
+            <summary>
+            Closes the connection to a client with optional data.
+            </summary>
+            <param name="response">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse"/>.</param>
+            <param name="data">The data to write to the connection.</param>
+            <returns>A task that represents when the connection is closed.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory">
+            <summary>
+            Responsible for creating <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> instances.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Creates a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory"/> class.
+            </summary>
+            <param name="resolver">The dependency resolver to use for when creating the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.CreateInstance(System.Type)">
+            <summary>
+            Creates an instance of the specified type using the dependency resolver or the type's default constructor.
+            </summary>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to create.</param>
+            <returns>An instance of a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>. </returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubBase">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Microsoft#AspNet#SignalR#Hubs#IHub#Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Context">
+            <summary>
+            Provides information about the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubBase.Groups">
+            <summary>
+            The group manager for this hub instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnDisconnected(System.Boolean)">
+            <summary>
+            Called when a connection disconnects from this hub gracefully or due to a timeout.
+            </summary>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnConnected">
+            <summary>
+            Called when the connection connects to this hub instance.
+            </summary>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubBase.OnReconnected">
+            <summary>
+            Called when the connection reconnects to this hub instance.
+            </summary>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.AllExcept(System.String[])">
+            <summary>
+            Returns a dynamic representation of all clients except the calling client ones specified.
+            </summary>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of all clients except the calling client ones specified.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Client(System.String)">
+            <summary>
+            Returns a dynamic representation of the connection with the specified connectionid.
+            </summary>
+            <param name="connectionId">The connection id</param>
+            <returns>A dynamic representation of the specified client.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Clients(System.Collections.Generic.IList{System.String})">
+            <summary>
+            Returns a dynamic representation of the connections with the specified connectionids.
+            </summary>
+            <param name="connectionIds">The connection ids.</param>
+            <returns>A dynamic representation of the specified clients.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Group(System.String,System.String[])">
+            <summary>
+            Returns a dynamic representation of the specified group.
+            </summary>
+            <param name="groupName">The name of the group</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of the specified group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Groups(System.Collections.Generic.IList{System.String},System.String[])">
+            <summary>
+            Returns a dynamic representation of the specified groups.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A dynamic representation of the specified groups.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext`1">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Error">
+            <summary>
+            The exception to be sent to the calling client.
+            This will be overridden by a generic Exception unless Error is a <see cref="T:Microsoft.AspNet.SignalR.HubException"/>
+            or <see cref="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors"/> is set to true.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Result">
+            <summary>
+            The value to return in lieu of throwing Error. Whenever Result is set, Error will be set to null.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext`1">
+            <summary>
+            Encapsulates all information about an individual SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext">
+            <summary>
+            Encapsulates all information about an individual SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,Microsoft.AspNet.SignalR.IConnection,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>.
+            </summary>
+            <param name="pipelineInvoker">The pipeline invoker.</param>
+            <param name="connection">The connection.</param>
+            <param name="hubName">The hub name.</param>
+            <param name="connectionId">The connection id.</param>
+            <param name="tracker">The connection hub state.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Others">
+            <summary>
+            All connected clients except the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller">
+            <summary>
+            Represents the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.CallerState">
+            <summary>
+            Represents the calling client's state. This should be used when the state is innaccessible
+            via the <see cref="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller"/> property (such as in VB.NET or in typed Hubs).
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroup(System.String)">
+            <summary>
+            Returns a dynamic representation of all clients in a group except the calling client.
+            </summary>
+            <param name="groupName">The name of the group</param>
+            <returns>A dynamic representation of all clients in a group except the calling client.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})">
+            <summary>
+            Returns a dynamic representation of all clients in the specified groups except the calling client.
+            </summary>
+            <param name="groupNames">The name of the groups</param>
+            <returns>A dynamic representation of all clients in a group except the calling client.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule">
+             <summary>
+             This module is added the the HubPipeline by default.
+             
+             Hub level attributes that implement <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/> such as <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute"/> are applied to determine
+             whether to allow potential clients to receive messages sent from that hub using a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubContext"/> or a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext"/>
+             All applicable hub attributes must allow hub connection for the connection to be authorized.
+             
+             Hub and method level attributes that implement <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/> such as <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute"/> are applied
+             to determine whether to allow callers to invoke hub methods.
+             All applicable hub level AND method level attributes must allow hub method invocation for the invocation to be authorized.
+            
+             Optionally, this module may be instantiated with <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/> and <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/>
+             authorizers that will be applied globally to all hubs and hub methods.
+             </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation">
+            <summary>
+            A description of a client-side hub method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Hub">
+            <summary>
+            The name of the hub that the method being invoked belongs to.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Method">
+            <summary>
+            The name of the client-side hub method be invoked.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Args">
+            <summary>
+            The argument list the client-side hub method will be called with.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.State">
+            <summary>
+            A key-value store representing the hub state on the server that has changed since the last time the hub
+            state was sent to the client.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule">
+            <summary>
+            Common base class to simplify the implementation of IHubPipelineModules.
+            A module can intercept and customize various stages of hub processing such as connecting, reconnecting, disconnecting,
+            invoking server-side hub methods, invoking client-side hub methods, authorizing hub clients and rejoining hub groups.
+            A module can be activated by calling <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/>.
+            The combined modules added to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> are invoked via the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/>
+            interface.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+            <summary>
+            Wraps a function that invokes a server-side hub method. Even if a client has not been authorized to connect
+            to a hub, it will still be authorized to invoke server-side methods on that hub unless it is prevented in
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not executing the invoke parameter.
+            </summary>
+            <param name="invoke">A function that invokes a server-side hub method.</param>
+            <returns>A wrapped function that invokes a server-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnConnected method being invoked.
+            </summary>
+            <param name="connect">A function to be called when a client connects to a hub.</param>
+            <returns>A wrapped function to be called when a client connects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnReconnected method being invoked.
+            </summary>
+            <param name="reconnect">A function to be called when a client reconnects to a hub.</param>
+            <returns>A wrapped function to be called when a client reconnects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called  when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnDisconnected method being invoked.
+            </summary>
+            <param name="disconnect">
+            <para>A task-returning function to be called when a client disconnects from a hub.</para>
+            <para>This function takes two parameters:</para>
+            <para>1. The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> is being disconnected from.</para>
+            <para>2. A boolean, stopCalled, that is true if stop was called on the client and false if the client timed out.
+                     Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.</para>
+            </param>
+            <returns>A wrapped function to be called when a client disconnects from a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+            <summary>
+            Wraps a function to be called before a client subscribes to signals belonging to the hub described by the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>. By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if the client is authorized to subscribe to method invocations for the
+            described hub.
+            The function returns true if the client is authorized to subscribe to client-side hub method
+            invocations; false, otherwise.
+            </summary>
+            <param name="authorizeConnect">
+            A function that dictates whether or not the client is authorized to connect to the described Hub.
+            </param>
+            <returns>
+            A wrapped function that dictates whether or not the client is authorized to connect to the described Hub.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+            <summary>
+            Wraps a function that determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>
+            the client should be allowed to rejoin.
+            By default, clients will rejoin all the groups they were in prior to reconnecting.
+            </summary>
+            <param name="rejoiningGroups">A function that determines which groups the client should be allowed to rejoin.</param>
+            <returns>A wrapped function that determines which groups the client should be allowed to rejoin.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that invokes a client-side hub method.
+            </summary>
+            <param name="send">A function that invokes a client-side hub method.</param>
+            <returns>A wrapped function that invokes a client-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeAuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            This method is called before the AuthorizeConnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>
+            are executed. If this returns false, then those later-added modules will not run and the client will not be allowed
+            to subscribe to client-side invocations of methods belonging to the hub defined by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>.
+            </summary>
+            <param name="hubDescriptor">A description of the hub the client is trying to subscribe to.</param>
+            <param name="request">The connect request of the client trying to subscribe to the hub.</param>
+            <returns>true, if the client is authorized to connect to the hub, false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called before the connect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has connected to.</param>
+            <returns>
+            true, if the connect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called after the connect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has connected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called before the reconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has reconnected to.</param>
+            <returns>
+            true, if the reconnect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            This method is called after the reconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has reconnected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            This method is called before the outgoing components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the client-side hub method invocation(s) will not
+            be executed.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+            <returns>
+            true, if the outgoing components of later added modules and the client-side hub method invocation(s) should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            This method is called after the outgoing components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. This does not mean that all the clients have received the hub method invocation, but it does indicate indicate
+            a hub invocation message has successfully been published to a message bus.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            This method is called before the disconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> method will
+            not be run.
+            </summary>
+            <param name="hub">The hub the client has disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+            <returns>
+            true, if the disconnect components of later added modules and the <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> method should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            This method is called after the disconnect components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed and after <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)"/> is executed, if at all.
+            </summary>
+            <param name="hub">The hub the client has disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This method is called before the incoming components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> are
+            executed. If this returns false, then those later-added modules and the server-side hub method invocation will not
+            be executed. Even if a client has not been authorized to connect to a hub, it will still be authorized to invoke
+            server-side methods on that hub unless it is prevented in <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not
+            executing the invoke parameter or prevented in <see cref="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)"/> by returning false.
+            </summary>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>
+            true, if the incoming components of later added modules and the server-side hub method invocation should be executed;
+            false, otherwise.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterIncoming(System.Object,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This method is called after the incoming components of any modules added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>
+            and the server-side hub method have completed execution.
+            </summary>
+            <param name="result">The return value of the server-side hub method</param>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>The possibly new or updated return value of the server-side hub method</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnIncomingError(Microsoft.AspNet.SignalR.Hubs.ExceptionContext,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            This is called when an uncaught exception is thrown by a server-side hub method or the incoming component of a
+            module added later to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/>. Observing the exception using this method will not prevent
+            it from bubbling up to other modules.
+            </summary>
+            <param name="exceptionContext">
+            Represents the exception that was thrown during the server-side invocation.
+            It is possible to change the error or set a result using this context.
+            </param>
+            <param name="invokerContext">A description of the server-side hub method invocation.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection">
+            <summary>
+            Interface to be implemented by <see cref="T:System.Attribute"/>s that can authorize client to connect to a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Given a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext"/>, determine whether client is authorized to connect to <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <param name="hubDescriptor">Description of the hub client is attempting to connect to.</param>
+            <param name="request">The connection request from the client.</param>
+            <returns>true if the caller is authorized to connect to the hub; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation">
+            <summary>
+            Interface to be implemented by <see cref="T:System.Attribute"/>s that can authorize the invocation of <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> methods.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+            <summary>
+            Given a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/>, determine whether client is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method.
+            </summary>
+            <param name="hubIncomingInvokerContext">An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/> providing details regarding the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method invocation.</param>
+            <param name="appliesToMethod">Indicates whether the interface instance is an attribute applied directly to a method.</param>
+            <returns>true if the caller is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext">
+            <summary>
+            A description of a client-side hub method invocation originating from the server.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Connection">
+            <summary>
+            The <see cref="T:Microsoft.AspNet.SignalR.IConnection"/>, if any, corresponding to the client that invoked the server-side hub method
+            that is invoking the client-side hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Invocation">
+            <summary>
+            A description of the method call to be made on the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal">
+            <summary>
+            The signal (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that
+            receive the method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signals">
+            <summary>
+            The signals (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that
+            receive the method invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.ExcludedSignals">
+            <summary>
+            The signals (ConnectionId, hub type name or hub type name + "." + group name) belonging to clients that should
+            not receive the method invocation regardless of the <see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal"/>. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker">
+            <summary>
+            Implementations of this interface are responsible for executing operation required to complete various stages
+            hub processing such as connecting, reconnecting, disconnecting, invoking server-side hub methods, invoking
+            client-side hub methods, authorizing hub clients and rejoining hub groups.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Invoke(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+            <summary>
+            Invokes a server-side hub method.
+            </summary>
+            <param name="context">A description of the server-side hub method invocation.</param>
+            <returns>An asynchronous operation giving the return value of the server-side hub method invocation.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Send(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+            <summary>
+            Invokes a client-side hub method.
+            </summary>
+            <param name="context">A description of the client-side hub method invocation.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Connect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            To be called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnConnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client is connected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Reconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+            <summary>
+            To be called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnReconnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client is reconnected to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Disconnect(Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean)">
+            <summary>
+            To be called when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client
+            was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s OnDisconnected method being invoked.
+            </summary>
+            <param name="hub">A <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was disconnected from.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the client timed out. Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.AuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            To be called before a client subscribes to signals belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>.
+            By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if
+            the client is authorized to subscribe to method invocations for the described hub.
+            </summary>
+            <param name="hubDescriptor">A description of the hub the client is attempting to connect to.</param>
+            <param name="request">
+            The connect request being made by the client which should include the client's
+            <see cref="T:System.Security.Principal.IPrincipal"/> User.
+            </param>
+            <returns>true, if the client is authorized to subscribe to client-side hub method invocations; false, otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.RejoiningGroups(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String})">
+            <summary>
+            This method determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/> the client should be
+            allowed to rejoin.
+            By default, clients that are reconnecting to the server will be removed from all groups they may have previously been a member of,
+            because untrusted clients may claim to be a member of groups they were never authorized to join.
+            </summary>
+            <param name="hubDescriptor">A description of the hub for which the client is attempting to rejoin groups.</param>
+            <param name="request">The reconnect request being made by the client that is attempting to rejoin groups.</param>
+            <param name="groups">
+            The list of groups belonging to the relevant hub that the client claims to have been a member of before the reconnect.
+            </param>
+            <returns>A list of groups the client is allowed to rejoin.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubResponse">
+            <summary>
+            The response returned from an incoming hub request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.State">
+            <summary>
+            The changes made the the round tripped state.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Result">
+            <summary>
+            The result of the invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Id">
+            <summary>
+            The id of the operation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Progress">
+            <summary>
+            The progress update of the invocation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.IsHubException">
+            <summary>
+            Indicates whether the Error is a see <see cref="T:Microsoft.AspNet.SignalR.HubException"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Error">
+            <summary>
+            The exception that occurs as a result of invoking the hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.StackTrace">
+            <summary>
+            The stack trace of the exception that occurs as a result of invoking the hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.ErrorData">
+            <summary>
+            Extra error data contained in the <see cref="T:Microsoft.AspNet.SignalR.HubException"/>
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy">
+            <summary>
+            A server side proxy for the client side hub.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IClientProxy.Invoke(System.String,System.Object[])">
+            <summary>
+            Invokes a method on the connection(s) represented by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy"/> instance.
+            </summary>
+            <param name="method">name of the method to invoke</param>
+            <param name="args">argumetns to pass to the client</param>
+            <returns>A task that represents when the data has been sent to the client.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser">
+            <summary>
+            Handles parsing incoming requests through the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser.Parse(System.String,Newtonsoft.Json.JsonSerializer)">
+            <summary>
+            Parses the incoming hub payload into a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest"/>.
+            </summary>
+            <param name="data">The raw hub payload.</param>
+            <param name="serializer">The JsonSerializer used to parse the data.</param>
+            <returns>The resulting <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest"/>.</returns>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.Name">
+            <summary>
+            Name of Descriptor.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.NameSpecified">
+            <summary>
+            Flags whether the name was specified.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker">
+            <summary>
+            A change tracking dictionary.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext">
+            <summary>
+            A description of a server-side hub method invocation originating from a client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Hub">
+            <summary>
+            A hub instance that contains the invoked method as a member.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.MethodDescriptor">
+            <summary>
+            A description of the method being invoked by the client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Args">
+            <summary>
+            The arguments to be passed to the invoked method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.StateTracker">
+            <summary>
+            A key-value store representing the hub state on the client at the time of the invocation.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline">
+            <summary>
+            A collection of modules that can intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing
+            hub clients and rejoining hub groups.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)">
+            <summary>
+            Adds an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule"/> to the hub pipeline. Modules added to the pipeline first will wrap
+            modules that are added to the pipeline later. All modules must be added to the pipeline before any methods
+            on the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/> are invoked.
+            </summary>
+            <param name="pipelineModule">
+            A module that may intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing
+            hub clients and rejoining hub groups.
+            </param>
+            <returns>
+            The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline"/> itself with the newly added module allowing
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/> calls to be chained.
+            This method mutates the pipeline it is invoked on so it is not necessary to store its result.
+            </returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule">
+            <summary>
+            An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule"/> can intercept and customize various stages of hub processing such as connecting,
+            reconnecting, disconnecting, invoking server-side hub methods, invoking client-side hub methods, authorizing hub
+            clients and rejoining hub groups.
+            Modules can be be activated by calling <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)"/>.
+            The combined modules added to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> are invoked via the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker"/>
+            interface.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+            <summary>
+            Wraps a function that invokes a server-side hub method. Even if a client has not been authorized to connect
+            to a hub, it will still be authorized to invoke server-side methods on that hub unless it is prevented in
+            <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})"/> by not executing the invoke parameter.
+            </summary>
+            <param name="invoke">A function that invokes a server-side hub method.</param>
+            <returns>A wrapped function that invokes a server-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that invokes a client-side hub method.
+            </summary>
+            <param name="send">A function that invokes a client-side hub method.</param>
+            <returns>A wrapped function that invokes a client-side hub method.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client connects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnConnected method being invoked.
+            </summary>
+            <param name="connect">A function to be called when a client connects to a hub.</param>
+            <returns>A wrapped function to be called when a client connects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called when a client reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client connects to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnReconnected method being invoked.
+            </summary>
+            <param name="reconnect">A function to be called when a client reconnects to a hub.</param>
+            <returns>A wrapped function to be called when a client reconnects to a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Boolean,System.Threading.Tasks.Task})">
+            <summary>
+            Wraps a function that is called  when a client disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> for each
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> the client was connected to. By default, this results in the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>'s
+            OnDisconnected method being invoked.
+            </summary>
+            <param name="disconnect">
+            <para>A task-returning function to be called when a client disconnects from a hub.</para>
+            <para>This function takes two parameters:</para>
+            <para>1. The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> is being disconnected from.</para>
+            <para>2. A boolean, stopCalled, that is true if stop was called on the client and false if the client timed out.
+                     Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.</para>
+            </param>
+            <returns>A wrapped function to be called when a client disconnects from a hub.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+            <summary>
+            Wraps a function to be called before a client subscribes to signals belonging to the hub described by the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>. By default, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> will look for attributes on the
+            <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> to help determine if the client is authorized to subscribe to method invocations for the
+            described hub.
+            The function returns true if the client is authorized to subscribe to client-side hub method
+            invocations; false, otherwise.
+            </summary>
+            <param name="authorizeConnect">
+            A function that dictates whether or not the client is authorized to connect to the described Hub.
+            </param>
+            <returns>
+            A wrapped function that dictates whether or not the client is authorized to connect to the described Hub.
+            </returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+            <summary>
+            Wraps a function that determines which of the groups belonging to the hub described by the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor"/>
+            the client should be allowed to rejoin.
+            By default, clients will rejoin all the groups they were in prior to reconnecting.
+            </summary>
+            <param name="rejoiningGroups">A function that determines which groups the client should be allowed to rejoin.</param>
+            <returns>A wrapped function that determines which groups the client should be allowed to rejoin.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveParameter(Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor,Microsoft.AspNet.SignalR.Json.IJsonValue)">
+            <summary>
+            Resolves a parameter value based on the provided object.
+            </summary>
+            <param name="descriptor">Parameter descriptor.</param>
+            <param name="value">Value to resolve the parameter value from.</param>
+            <returns>The parameter value.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Resolves method parameter values based on provided objects.
+            </summary>
+            <param name="method">Method descriptor.</param>
+            <param name="values">List of values to resolve parameter values from.</param>
+            <returns>Array of parameter values.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IParameterResolver">
+            <summary>
+            Describes a parameter resolver for resolving parameter-matching values based on provided information.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Resolves method parameter values based on provided objects.
+            </summary>
+            <param name="method">Method descriptor.</param>
+            <param name="values">List of values to resolve parameter values from.</param>
+            <returns>Array of parameter values.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor">
+            <summary>
+            Holds information about a single hub method parameter.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.Name">
+            <summary>
+            Parameter name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.ParameterType">
+            <summary>
+            Parameter type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.FetchMethodsFor(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Retrieves an existing dictionary of all available methods for a given hub from cache.
+            If cache entry does not exist - it is created automatically by BuildMethodCacheFor.
+            </summary>
+            <param name="hub"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.BuildMethodCacheFor(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Builds a dictionary of all possible methods on a given hub.
+            Single entry contains a collection of available overloads for a given method name (key).
+            This dictionary is being cached afterwards.
+            </summary>
+            <param name="hub">Hub to build cache for</param>
+            <returns>Dictionary of available methods</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Searches the specified <paramref name="hub">Hub</paramref> for the specified <paramref name="method"/>.
+            </summary>
+            <remarks>
+            In the case that there are multiple overloads of the specified <paramref name="method"/>, the <paramref name="parameters">parameter set</paramref> helps determine exactly which instance of the overload should be resolved. 
+            If there are multiple overloads found with the same number of matching parameters, none of the methods will be returned because it is not possible to determine which overload of the method was intended to be resolved.
+            </remarks>
+            <param name="hub">Hub to search for the specified <paramref name="method"/> on.</param>
+            <param name="method">The method name to search for.</param>
+            <param name="descriptor">If successful, the <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor"/> that was resolved.</param>
+            <param name="parameters">The set of parameters that will be used to help locate a specific overload of the specified <paramref name="method"/>.</param>
+            <returns>True if the method matching the name/parameter set is found on the hub, otherwise false.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor">
+            <summary>
+            Holds information about a single hub.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.HubType">
+            <summary>
+            Hub type.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider">
+            <summary>
+            Describes a hub method provider that builds a collection of available methods on a given hub.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+            <summary>
+            Retrieve all methods on a given hub.
+            </summary>
+            <param name="hub">Hub descriptor object.</param>
+            <returns>Available methods.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Tries to retrieve a method.
+            </summary>
+            <param name="hub">Hub descriptor object</param>
+            <param name="method">Name of the method.</param>
+            <param name="descriptor">Descriptor of the method, if found. Null otherwise.</param>
+            <param name="parameters">Method parameters to match.</param>
+            <returns>True, if a method has been found.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubManager">
+            <summary>
+            Describes a hub manager - main point in the whole hub and method lookup process.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHub(System.String)">
+            <summary>
+            Retrieves a single hub descriptor.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <returns>Hub descriptor, if found. Null, otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+            <summary>
+            Retrieves all available hubs matching the given predicate.
+            </summary>
+            <returns>List of hub descriptors.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHub(System.String)">
+            <summary>
+            Resolves a given hub name to a concrete object.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <returns>Hub implementation instance, if found. Null otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHubs">
+            <summary>
+            Resolves all available hubs to their concrete objects.
+            </summary>
+            <returns>List of hub instances.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+            <summary>
+            Retrieves a method with a given name on a given hub.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <param name="method">Name of the method to find.</param>
+            <param name="parameters">Method parameters to match.</param>
+            <returns>Descriptor of the method, if found. Null otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+            <summary>
+            Gets all methods available to call on a given hub.
+            </summary>
+            <param name="hubName">Name of the hub,</param>
+            <param name="predicate">Optional predicate for filtering results.</param>
+            <returns>List of available methods.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor">
+            <summary>
+            Holds information about a single hub method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.ReturnType">
+            <summary>
+            The return type of this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Hub">
+            <summary>
+            Hub descriptor object, target to this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Parameters">
+            <summary>
+            Available method parameters.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Invoker">
+            <summary>
+            Method invocation delegate.
+            Takes a target hub and an array of invocation arguments as it's arguments.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Attributes">
+            <summary>
+            Attributes attached to this method.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Context">
+            <summary>
+            Gets a <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext"/>. Which contains information about the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected">
+            <summary>
+            Called when a new connection is made to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected">
+            <summary>
+            Called when a connection reconnects to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> after a timeout.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected(System.Boolean)">
+            <summary>
+            Called when a connection disconnects from the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> gracefully or due to a timeout.
+            </summary>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can be caused by clients reconnecting to another SignalR server in scaleout.
+            </param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.ConnectionId">
+            <summary>
+            Gets the connection id of the calling client.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.RequestCookies">
+            <summary>
+            Gets the cookies for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Headers">
+            <summary>
+            Gets the headers for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.QueryString">
+            <summary>
+            Gets the querystring for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.User">
+            <summary>
+            Gets the <see cref="T:System.Security.Principal.IPrincipal"/> for the request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Request">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current HTTP request.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.#ctor">
+            <summary>
+            This constructor is only intended to enable mocking of the class. Use of this constructor 
+            for other purposes may result in unexpected behavior.   
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher">
+            <summary>
+            Handles all communication over the hubs persistent connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.#ctor(Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes an instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher"/> class.
+            </summary>
+            <param name="configuration">Configuration settings determining whether to enable JS proxies and provide clients with detailed hub errors.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+            <summary>
+            Processes the hub's incoming method calls.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider">
+            <summary>
+            Describes hub descriptor provider, which provides information about available hubs.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.GetHubs">
+            <summary>
+            Retrieve all avaiable hubs.
+            </summary>
+            <returns>Collection of hub descriptors.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+            <summary>
+            Tries to retrieve hub with a given name.
+            </summary>
+            <param name="hubName">Name of the hub.</param>
+            <param name="descriptor">Retrieved descriptor object.</param>
+            <returns>True, if hub has been found</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hub`1">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Hub`1.Clients">
+            <summary>
+            Gets a dynamic object that represents all clients connected to this hub (not hub instance).
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableJavaScriptProxies">
+            <summary>
+            Determines whether JavaScript proxies for the server-side hubs should be auto generated at {Path}/hubs or {Path}/js.
+            Defaults to true.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors">
+            <summary>
+            Determines whether detailed exceptions thrown in Hub methods get reported back the invoking client.
+            Defaults to false.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IHubContext">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext.Clients">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.ConnectionMessage">
+            <summary>
+            A message sent to one more connections.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signal">
+            <summary>
+            The signal to this message should be sent to. Connections subscribed to this signal
+            will receive the message payload.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signals">
+            <summary>
+            A list of signals this message should be delivered to. If this is used
+            the Signal cannot be used.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Value">
+            <summary>
+            The payload of the message.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.ExcludedSignals">
+            <summary>
+            Represents a list of signals that should be used to filter what connections
+            receive this message.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage"/> class.
+            </summary>
+            <param name="signal">The signal</param>
+            <param name="value">The payload of the message</param>
+            <param name="excludedSignals">The signals to exclude.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.GlobalHost">
+            <summary>
+            Provides access to default host information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver">
+            <summary>
+            Gets or sets the the default <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.Configuration">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.TraceManager">
+            <summary>
+            Gets the default <see cref="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.GlobalHost.HubPipeline">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IRequest">
+            <summary>
+            Represents a SignalR request
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Url">
+            <summary>
+            Gets the url for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.LocalPath">
+            <summary>
+            The local path part of the url
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.QueryString">
+            <summary>
+            Gets the querystring for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Headers">
+            <summary>
+            Gets the headers for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Cookies">
+            <summary>
+            Gets the cookies for this request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.User">
+            <summary>
+            Gets security information for the current HTTP request.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IRequest.Environment">
+            <summary>
+            Gets the owin environment
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IRequest.ReadForm">
+            <summary>
+            Reads the form of the http request
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IUntrackedDisposable">
+            <summary>
+            This marker interface can be used in lieu of IDisposable in order to indicate to the dependency resolver that 
+            it should not retain/track references nor invoke Dispose on instances of the resolved type.
+            This is useful for transient types that are created by the dependency resolver, but are short-lived and will
+            be Disposed by some other means outside of the resolver.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.SipHashBasedDictionaryConverter">
+            <summary>
+            A converter for dictionaries that uses a SipHash comparer
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.IJsonValue">
+            <summary>
+            Represents a JSON value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.ConvertTo(System.Type)">
+            <summary>
+            Converts the parameter value to the specified <see cref="T:System.Type"/>.
+            </summary>
+            <param name="type">The <see cref="T:System.Type"/> to convert the parameter to.</param>
+            <returns>The converted parameter value.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.CanConvertTo(System.Type)">
+            <summary>
+            Determines if the parameter can be converted to the specified <see cref="T:System.Type"/>.
+            </summary>
+            <param name="type">The <see cref="T:System.Type"/> to check.</param>
+            <returns>True if the parameter can be converted to the specified <see cref="T:System.Type"/>, false otherwise.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.IJsonWritable">
+            <summary>
+            Implementations handle their own serialization to JSON.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.IJsonWritable.WriteJson(System.IO.TextWriter)">
+            <summary>
+            Serializes itself to JSON via a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> that receives the JSON serialized object.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JRawValue">
+            <summary>
+            An implementation of IJsonValue over JSON.NET
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions">
+            <summary>
+            Extensions for <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.String)">
+            <summary>
+            Deserializes the JSON to a .NET object.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <typeparam name="T">The <see cref="T:System.Type"/> of object being deserialized.</typeparam>
+            <param name="json">The JSON to deserialize</param>
+            <returns>The deserialized object from the JSON string.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.ArraySegment{System.Byte},System.Text.Encoding)">
+            <summary>
+            Deserializes the JSON to a .NET object.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <typeparam name="T">The <see cref="T:System.Type"/> of object being deserialized.</typeparam>
+            <param name="jsonBuffer">The JSON buffer to deserialize</param>
+            <param name="encoding">The encoding to use.</param>
+            <returns>The deserialized object from the JSON string.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Serialize(Newtonsoft.Json.JsonSerializer,System.Object,System.IO.TextWriter)">
+            <summary>
+            Serializes the specified object to a <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="serializer">The JSON serializer</param>
+            <param name="value">The object to serialize</param>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to serialize the object to.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Stringify(Newtonsoft.Json.JsonSerializer,System.Object)">
+            <summary>
+            Serializes the specified object to a JSON string.
+            </summary>
+            <param name="serializer">The serializer</param>
+            <param name="value">The object to serailize.</param>
+            <returns>A JSON string representation of the object.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Json.JsonUtility">
+            <summary>
+            Helper class for common JSON operations.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CamelCase(System.String)">
+            <summary>
+            Converts the specified name to camel case.
+            </summary>
+            <param name="name">The name to convert.</param>
+            <returns>A camel cased version of the specified name.</returns>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JsonMimeType">
+            <summary>
+            Gets a string that returns JSON mime type "application/json; charset=UTF-8".
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JavaScriptMimeType">
+            <summary>
+            Gets a string that returns JSONP mime type "application/javascript; charset=UTF-8".
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializerSettings">
+            <summary>
+            Creates a default <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> instance.
+            </summary>
+            <returns>The newly created <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializer">
+            <summary>
+            Creates a <see cref="T:Newtonsoft.Json.JsonSerializer"/> instance with the default setting. 
+            </summary>
+            <returns>The newly created <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker">
+            <summary>
+            This class is the main coordinator. 
+            It schedules work to be done for a particular subscription. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage">
+            <summary>
+            Represents a message to the scaleout backplane
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.Messages">
+            <summary>
+            The messages from SignalR
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ServerCreationTime">
+            <summary>
+            The time the message was created on the origin server
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus">
+            <summary>
+            Common base class for scaleout message bus implementations.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.StreamCount">
+            <summary>
+            The number of streams can't change for the lifetime of this instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Open(System.Int32)">
+            <summary>
+            Opens the specified queue for sending messages.
+            <param name="streamIndex">The index of the stream to open.</param>
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Close(System.Int32)">
+            <summary>
+            Closes the specified queue.
+            <param name="streamIndex">The index of the stream to close.</param>
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnError(System.Int32,System.Exception)">
+            <summary>
+            Closes the specified queue for sending messages making all sends fail asynchronously.
+            </summary>
+            <param name="streamIndex">The index of the stream to close.</param>
+            <param name="exception">The error that occurred.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+            <summary>
+            Sends messages to the backplane
+            </summary>
+            <param name="messages">The list of messages to send</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnReceived(System.Int32,System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)">
+            <summary>
+            Invoked when a payload is received from the backplane. There should only be one active call at any time.
+            </summary>
+            <param name="streamIndex">id of the stream.</param>
+            <param name="id">id of the payload within that stream.</param>
+            <param name="message">The scaleout message.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+            <summary>
+            
+            </summary>
+            <param name="message"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="subscriber"></param>
+            <param name="cursor"></param>
+            <param name="callback"></param>
+            <param name="maxMessages"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBus">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            
+            </summary>
+            <param name="resolver"></param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager,System.Int32)">
+            <summary>
+            
+            </summary>
+            <param name="stringMinifier"></param>
+            <param name="traceManager"></param>
+            <param name="performanceCounterManager"></param>
+            <param name="configurationManager"></param>
+            <param name="maxTopicsWithNoSubscriptions"></param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+            <summary>
+            Publishes a new message to the specified event on the bus.
+            </summary>
+            <param name="message">The message to publish.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="subscriber"></param>
+            <param name="cursor"></param>
+            <param name="callback"></param>
+            <param name="maxMessages"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateTopic(System.String)">
+            <summary>
+            Creates a topic for the specified key.
+            </summary>
+            <param name="key">The key to create the topic for.</param>
+            <returns>A <see cref="T:Microsoft.AspNet.SignalR.Messaging.Topic"/> for the specified key.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageResult">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Messages">
+            <summary>
+            Gets an <see cref="T:IList{Message}"/> associated with the result.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult"/> struct.
+            </summary>
+            <param name="messages">The array of messages associated with this <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult"/>.</param>
+            <param name="totalCount">The amount of messages populated in the messages array.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration">
+            <summary>
+            Common settings for scale-out message bus implementations.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.QueueBehavior">
+            <summary>
+            Gets or sets a value that represents the queuing behavior for scale-out messages.
+            Defaults to <see cref="F:Microsoft.AspNet.SignalR.QueuingBehavior.InitialOnly">QueuingBehavior.InitialOnly</see>
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.MaxQueueLength">
+            <summary>
+            The maximum length of the outgoing send queue. Messages being sent to the backplane are queued
+            up to this length. After the max length is reached, further sends will throw an <see cref="T:System.InvalidOperationException">InvalidOperationException</see>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Source">
+            <summary>
+            Which connection the message originated from
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Key">
+            <summary>
+            The signal for the message (connection id, group, etc)
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Value">
+            <summary>
+            The message payload
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.CommandId">
+            <summary>
+            The command id if this message is a command
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.WaitForAck">
+            <summary>
+            Determines if the caller should wait for acknowledgement for this message
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsAck">
+            <summary>
+            Determines if this message is itself an ACK
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Filter">
+            <summary>
+            A list of connection ids to filter out
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Encoding">
+            <summary>
+            The encoding of the message
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.MappingId">
+            <summary>
+            The payload id. Only used in scaleout scenarios
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.StreamIndex">
+            <summary>
+            The stream index this message came from. Only used the scaleout scenarios.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.AuthorizeAttribute">
+            <summary>
+            Apply to Hubs and Hub methods to authorize client connections to Hubs and authorize client invocations of Hub methods.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.RequireOutgoing">
+            <summary>
+            Set to false to apply authorization only to the invocations of any of the Hub's server-side methods.
+            This property only affects attributes applied to the Hub class.
+            This property cannot be read.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Roles">
+            <summary>
+            Gets or sets the user roles.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Users">
+            <summary>
+            Gets or sets the authorized users.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Determines whether client is authorized to connect to <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+            <param name="hubDescriptor">Description of the hub client is attempting to connect to.</param>
+            <param name="request">The (re)connect request from the client.</param>
+            <returns>true if the caller is authorized to connect to the hub; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+            <summary>
+            Determines whether client is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method.
+            </summary>
+            <param name="hubIncomingInvokerContext">An <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext"/> providing details regarding the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method invocation.</param>
+            <param name="appliesToMethod">Indicates whether the interface instance is an attribute applied directly to a method.</param>
+            <returns>true if the caller is authorized to invoke the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> method; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.UserAuthorized(System.Security.Principal.IPrincipal)">
+            <summary>
+            When overridden, provides an entry point for custom authorization checks.
+            Called by <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)"/> and <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)"/>.
+            </summary>
+            <param name="user">The <see cref="T:System.Security.Principal.IPrincipal"/> for the client being authorize</param>
+            <returns>true if the user is authorized, otherwise, false</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.HubPipelineExtensions.RequireAuthentication(Microsoft.AspNet.SignalR.Hubs.IHubPipeline)">
+            <summary>
+            Requiring Authentication adds an <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule"/> to the <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> with <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection"/>
+            and <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation"/> authorizers that will be applied globally to all hubs and hub methods.
+            These authorizers require that the <see cref="T:System.Security.Principal.IPrincipal"/>'s <see cref="T:System.Security.Principal.IIdentity"/> 
+            IsAuthenticated for any clients that invoke server-side hub methods or receive client-side hub method invocations. 
+            </summary>
+            <param name="pipeline">The <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> to which the <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> will be added.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IHubContext`1">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext`1.Clients">
+            <summary>
+            Encapsulates all information about a SignalR connection for an <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IHubContext`1.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> the hub.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IConnectionGroupManager">
+            <summary>
+            Manages groups for a connection and allows sending messages to the group.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.String,System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupName">The name of the group.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified groups.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.String,System.Object)">
+            <summary>
+            Sends a message to all connections subscribed to the specified signal. An example of signal may be a
+            specific connection id.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="connectionId">The connectionId to send to.</param>
+            <param name="value">The value to publish.</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.Collections.Generic.IList{System.String},System.Object)">
+            <summary>
+            Sends a message to all connections subscribed to the specified signal. An example of signal may be a
+            specific connection id.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="connectionIds">The connection ids to send to.</param>
+            <param name="value">The value to publish.</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Broadcast(Microsoft.AspNet.SignalR.IConnection,System.Object,System.String[])">
+            <summary>
+            Broadcasts a value to all connections, excluding the connection ids specified.
+            </summary>
+            <param name="connection">The connection</param>
+            <param name="value">The value to broadcast.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when the broadcast is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext">
+            <summary>
+            Provides access to information about a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Connection">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnection" /> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager" /> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" />.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Owin.WebSocketConstants">
+            <summary>
+            Standard keys and values for use within the OWIN interfaces
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.DynamicComment_CallsMethodOnServerSideDeferredPromise">
+            <summary>
+              Looks up a localized string similar to             /// &lt;summary&gt;Calls the {0} method on the server-side {1} hub.&amp;#10;Returns a jQuery.Deferred() promise.&lt;/summary&gt;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.DynamicComment_ServerSideTypeIs">
+            <summary>
+              Looks up a localized string similar to             /// &lt;param name=\&quot;{0}\&quot; type=\&quot;{1}\&quot;&gt;Server side type is {2}&lt;/param&gt;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_AmbiguousMessage">
+            <summary>
+              Looks up a localized string similar to Ambiguous message. Unable to send to both &apos;{0}&apos; and &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ArgumentNullOrEmpty">
+            <summary>
+              Looks up a localized string similar to Argument cannot be null or empty.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_BufferSizeOutOfRange">
+            <summary>
+              Looks up a localized string similar to The buffer size &apos;{0}&apos; is out of range..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_CallerNotAuthorizedToInvokeMethodOn">
+            <summary>
+              Looks up a localized string similar to Caller is not authorized to invoke the {0} method on {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ConnectionIdIncorrectFormat">
+            <summary>
+              Looks up a localized string similar to The ConnectionId is in the incorrect format..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ConnectionNotInitialized">
+            <summary>
+              Looks up a localized string similar to The PersistentConnection is not initialized..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DisconnectTimeoutCannotBeConfiguredAfterKeepAlive">
+            <summary>
+              Looks up a localized string similar to DisconnectTimeout cannot be configured after the KeepAlive..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DisconnectTimeoutMustBeAtLeastSixSeconds">
+            <summary>
+              Looks up a localized string similar to DisconnectTimeout must be at least six seconds..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DoNotReadRequireOutgoing">
+            <summary>
+              Looks up a localized string similar to Do not read RequireOutgoing. Use protected _requireOutgoing instead..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicateHubNames">
+            <summary>
+              Looks up a localized string similar to Two Hubs must not share the same name. &apos;{0}&apos; and &apos;{1}&apos; both share the name &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicateHubNamesInConnectionData">
+            <summary>
+              Looks up a localized string similar to Duplicate Hub names found..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_DuplicatePayloadsForStream">
+            <summary>
+              Looks up a localized string similar to Duplicate payload id detected for stream &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ExceptionContextCanOnlyBeModifiedOnce">
+            <summary>
+              Looks up a localized string similar to The ExceptionContext has already been modified once and cannot be modified again..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubCouldNotBeResolved">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; Hub could not be resolved..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubInvocationFailed">
+            <summary>
+              Looks up a localized string similar to There was an error invoking Hub method &apos;{0}.{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_HubProgressOnlyReportableBeforeMethodReturns">
+            <summary>
+              Looks up a localized string similar to You cannot report progress on a hub method invocation that has already completed..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_InvalidCursorFormat">
+            <summary>
+              Looks up a localized string similar to Invalid cursor..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_InvalidForeverFrameId">
+            <summary>
+              Looks up a localized string similar to The supplied frameId is in the incorrect format..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_IsNotA">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; is not a {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_JavaScriptProxyDisabled">
+            <summary>
+              Looks up a localized string similar to SignalR: JavaScript Hub proxy generation has been disabled..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_KeepAliveMustBeGreaterThanTwoSeconds">
+            <summary>
+              Looks up a localized string similar to KeepAlive value must be greater than two seconds..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_KeepAliveMustBeNoMoreThanAThirdOfTheDisconnectTimeout">
+            <summary>
+              Looks up a localized string similar to KeepAlive value must be no more than a third of the DisconnectTimeout..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MaxScaleoutMappingsPerStreamMustBeNonNegative">
+            <summary>
+              Looks up a localized string similar to The value of the MaxScaleoutMappingsPerStream property must be greater or equal to zero..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodCouldNotBeResolved">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; method could not be resolved. No method found with that name..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodCouldNotBeResolvedCandidates">
+            <summary>
+              Looks up a localized string similar to &apos;{0}&apos; method could not be resolved. Potential candidates are: {1}.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodLevelOutgoingAuthorization">
+            <summary>
+              Looks up a localized string similar to Outgoing authorization can only be required for an entire Hub, not a specific method..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustNotTakeOutParameter">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; parameter of &apos;{1}.{2}&apos; must not be an out parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustNotTakeRefParameter">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; parameter of &apos;{1}.{2}&apos; must not be a ref parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MethodMustReturnVoidOrTask">
+            <summary>
+              Looks up a localized string similar to The return type of &apos;{0}.{1}&apos; must be void or Task..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_MultipleActivatorsAreaRegisteredCallGetServices">
+            <summary>
+              Looks up a localized string similar to Multiple activators for type {0} are registered. Please call GetServices instead..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NoConfiguration">
+            <summary>
+              Looks up a localized string similar to A configuration object must be specified..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NoDependencyResolver">
+            <summary>
+              Looks up a localized string similar to A dependency resolver must be specified..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_NotWebSocketRequest">
+            <summary>
+              Looks up a localized string similar to Not a valid web socket request..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ParseObjectFailed">
+            <summary>
+              Looks up a localized string similar to Unexpected end when reading object..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ProtocolErrorMissingConnectionToken">
+            <summary>
+              Looks up a localized string similar to Protocol error: Missing connection token..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ProtocolErrorUnknownTransport">
+            <summary>
+              Looks up a localized string similar to Protocol error: Unknown transport..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_ScaleoutQueuingConfig">
+            <summary>
+              Looks up a localized string similar to Scaleout queuing is enabled but maximum queue size is 0.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StateExceededMaximumLength">
+            <summary>
+              Looks up a localized string similar to State has exceeded the maximum length of 4096 bytes..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StreamClosed">
+            <summary>
+              Looks up a localized string similar to The stream has been closed..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_StreamNotOpen">
+            <summary>
+              Looks up a localized string similar to The stream is not open..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TaskQueueFull">
+            <summary>
+              Looks up a localized string similar to The queue is full..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustBeInterface">
+            <summary>
+              Looks up a localized string similar to The type T, &apos;{0}&apos;, passed to Hub&lt;T&gt; must be an interface..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustNotContainEvents">
+            <summary>
+              Looks up a localized string similar to The interface &apos;{0}&apos; must not contain any events..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_TypeMustNotContainProperties">
+            <summary>
+              Looks up a localized string similar to The interface &apos;{0}&apos; must not contain any properties..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UnableToAddModulePiplineAlreadyInvoked">
+            <summary>
+              Looks up a localized string similar to Unable to add module. The HubPipeline has already been invoked..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UnrecognizedUserIdentity">
+            <summary>
+              Looks up a localized string similar to Unrecognized user identity.  The user identity cannot change during an active SignalR connection..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_UsingHubInstanceNotCreatedUnsupported">
+            <summary>
+              Looks up a localized string similar to Using a Hub instance not created by the HubPipeline is unsupported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Error_WebSocketsNotSupported">
+            <summary>
+              Looks up a localized string similar to WebSockets is not supported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Resources.Forbidden_JSONPDisabled">
+            <summary>
+              Looks up a localized string similar to Forbidden: JSONP is disabled..
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IGroupManager">
+            <summary>
+            Manages groups for a connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Add(System.String,System.String)">
+            <summary>
+            Adds a connection to the specified group. 
+            </summary>
+            <param name="connectionId">The connection id to add to the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being added to the group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Remove(System.String,System.String)">
+            <summary>
+            Removes a connection from the specified group.
+            </summary>
+            <param name="connectionId">The connection id to remove from the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being removed from the group.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Hub">
+            <summary>
+            Provides methods that communicate with SignalR connections that connected to a <see cref="T:Microsoft.AspNet.SignalR.Hub"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITrackingConnection">
+            <summary>
+            Represents a connection that can be tracked by an <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectionId">
+            <summary>
+            Gets the id of the connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.CancellationToken">
+            <summary>
+            Gets a cancellation token that represents the connection's lifetime.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectTask">
+            <summary>
+            Gets the task that completes when the task returned by PersistentConnection.OnConnected does.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsAlive">
+            <summary>
+            Gets a value that represents if the connection is alive.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsTimedOut">
+            <summary>
+            Gets a value that represents if the connection is timed out.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.SupportsKeepAlive">
+            <summary>
+            Gets a value that represents if the connection supprots keep alive.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.RequiresTimeout">
+            <summary>
+            Gets a value that represents if the connection should timeout after inactivity.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DisconnectThreshold">
+            <summary>
+            Gets a value indicating the amount of time to wait after the connection dies before firing the disconnecting the connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Url">
+            <summary>
+            Gets the uri of the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+            <summary>
+            Applies a new state to the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Disconnect">
+            <summary>
+            Causes the connection to disconnect.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Timeout">
+            <summary>
+            Causes the connection to timeout.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.KeepAlive">
+            <summary>
+            Sends a keep alive ping over the connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IncrementConnectionsCount">
+            <summary>
+            Increments performance counter for current connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DecrementConnectionsCount">
+            <summary>
+            Decrements performance counter for current connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.End">
+            <summary>
+            Kills the connection.
+            </summary>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransport">
+            <summary>
+            Represents a transport that communicates
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Received">
+            <summary>
+            Gets or sets a callback that is invoked when the transport receives data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Connected">
+            <summary>
+            Gets or sets a callback that is invoked when the initial connection connects to the transport.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Reconnected">
+            <summary>
+            Gets or sets a callback that is invoked when the transport reconnects.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Disconnected">
+            <summary>
+            Gets or sets a callback that is invoked when the transport disconnects.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.ConnectionId">
+            <summary>
+            Gets or sets the connection id for the transport.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.GetGroupsToken">
+            <summary>
+            Get groupsToken in request over the transport.
+            </summary>
+            <returns>groupsToken in request</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+            <summary>
+            Processes the specified <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection"/> for this transport.
+            </summary>
+            <param name="connection">The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection"/> to process.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the transport has finished processing the connection.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.Send(System.Object)">
+            <summary>
+            Sends data over the transport.
+            </summary>
+            <param name="value">The value to be sent.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the send is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat">
+            <summary>
+            Manages tracking the state of connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Adds a new connection to the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to be added.</param>
+            <returns>The connection it replaced, if any.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Marks an existing connection as active.
+            </summary>
+            <param name="connection">The connection to mark.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Removes a connection from the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to remove.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.GetConnections">
+            <summary>
+            Gets a list of connections being tracked.
+            </summary>
+            <returns>A list of connections.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportManager">
+            <summary>
+            Manages the transports for connections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Gets the specified transport for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.
+            </summary>
+            <param name="hostContext">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.SupportsTransport(System.String)">
+            <summary>
+            Determines whether the specified transport is supported.
+            </summary>
+            <param name="transportName">The name of the transport to test.</param>
+            <returns>True if the transport is supported, otherwise False.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat">
+            <summary>
+            Default implementation of <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes and instance of the <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat"/> class.
+            </summary>
+            <param name="resolver">The <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Adds a new connection to the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to be added.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Removes a connection from the list of tracked connections.
+            </summary>
+            <param name="connection">The connection to remove.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+            <summary>
+            Marks an existing connection as active.
+            </summary>
+            <param name="connection">The connection to mark.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse">
+            <summary>
+            Represents a response to a connection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor(System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{System.IO.TextWriter})">
+            <summary>
+            Creates a new instance of <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse"/>.
+            </summary>
+            <param name="exclude">A filter that determines whether messages should be written to the client.</param>
+            <param name="writeCursor">The cursor writer.</param>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Messages">
+            <summary>
+            The list of messages to be sent to the receiving connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.TotalCount">
+            <summary>
+            The total count of the messages sent the receiving connection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Initializing">
+            <summary>
+            True if the connection is in process of initializing
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Aborted">
+            <summary>
+            True if the connection was forcibly closed. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Reconnect">
+            <summary>
+            True if the client should try reconnecting.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.GroupsToken">
+            <summary>
+            Signed token representing the list of groups. Updates on change.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.LongPollDelay">
+            <summary>
+            The time the long polling client should wait before reestablishing a connection if no data is received.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Microsoft#AspNet#SignalR#Json#IJsonWritable#WriteJson(System.IO.TextWriter)">
+            <summary>
+            Serializes only the necessary components of the <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse"/> to JSON
+            using Json.NET's JsonTextWriter to improve performance.
+            </summary>
+            <param name="writer">The <see cref="T:System.IO.TextWriter"/> that receives the JSON serialization.</param>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.Transports.TransportManager">
+            <summary>
+            The default <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+            <summary>
+            Initializes a new instance of <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportManager"/> class.
+            </summary>
+            <param name="resolver">The default <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver"/>.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Register(System.String,System.Func{Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransport})">
+            <summary>
+            Adds a new transport to the list of supported transports.
+            </summary>
+            <param name="transportName">The specified transport.</param>
+            <param name="transportFactory">The factory method for the specified transport.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Remove(System.String)">
+            <summary>
+            Removes a transport from the list of supported transports.
+            </summary>
+            <param name="transportName">The specified transport.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Gets the specified transport for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.
+            </summary>
+            <param name="hostContext">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>The <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport"/> for the specified <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.SupportsTransport(System.String)">
+            <summary>
+            Determines whether the specified transport is supported.
+            </summary>
+            <param name="transportName">The name of the transport to test.</param>
+            <returns>True if the transport is supported, otherwise False.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.GroupManager">
+            <summary>
+            The default <see cref="T:Microsoft.AspNet.SignalR.IGroupManager"/> implementation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.#ctor(Microsoft.AspNet.SignalR.IConnection,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.GroupManager"/> class.
+            </summary>
+            <param name="connection">The <see cref="T:Microsoft.AspNet.SignalR.IConnection"/> this group resides on.</param>
+            <param name="groupPrefix">The prefix for this group. Either a <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub"/> name or <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> type name.</param>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.String,System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupName">The name of the group.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+            <summary>
+            Sends a value to the specified group.
+            </summary>
+            <param name="groupNames">The names of the groups.</param>
+            <param name="value">The value to send.</param>
+            <param name="excludeConnectionIds">The list of connection ids to exclude</param>
+            <returns>A task that represents when send is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Add(System.String,System.String)">
+            <summary>
+            Adds a connection to the specified group. 
+            </summary>
+            <param name="connectionId">The connection id to add to the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being added to the group.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.GroupManager.Remove(System.String,System.String)">
+            <summary>
+            Removes a connection from the specified group.
+            </summary>
+            <param name="connectionId">The connection id to remove from the group.</param>
+            <param name="groupName">The name of the group</param>
+            <returns>A task that represents the connection id being removed from the group.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.PersistentConnection">
+            <summary>
+            Represents a connection between client and server.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Connection">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnection"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Groups">
+            <summary>
+            Gets the <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager"/> for the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            OWIN entry point.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+            <summary>
+            Handles all requests for <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>s.
+            </summary>
+            <param name="context">The <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext"/> for the current request.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> pipeline is complete.</returns>
+            <exception cref="T:System.InvalidOperationException">
+            Thrown if connection wasn't initialized.
+            Thrown if the transport wasn't specified.
+            Thrown if the connection id wasn't specified.
+            </exception>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.GetSignals(System.String,System.String)">
+            <summary>
+            Returns the signals used in the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+            <param name="userId">The user id for the current connection.</param>
+            <param name="connectionId">The id of the incoming connection.</param>
+            <returns>The signals used for this <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Called before every request and gives the user a authorize the user.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <returns>A boolean value that represents if the request is authorized.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+            <summary>
+            Called when a connection reconnects after a timeout to determine which groups should be rejoined.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="groups">The groups the calling connection claims to be part of.</param>
+            <param name="connectionId">The id of the reconnecting client.</param>
+            <returns>A collection of group names that should be joined on reconnect</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+            <summary>
+            Called when a new connection is made.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the connecting client.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the connect operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+            <summary>
+            Called when a connection reconnects after a timeout.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the re-connecting client.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the re-connect operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+            <summary>
+            Called when data is received from a connection.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the connection sending the data.</param>
+            <param name="data">The payload sent to the connection.</param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the receive operation is complete.</returns>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String,System.Boolean)">
+            <summary>
+            Called when a connection disconnects gracefully or due to a timeout.
+            </summary>
+            <param name="request">The <see cref="T:Microsoft.AspNet.SignalR.IRequest"/> for the current connection.</param>
+            <param name="connectionId">The id of the disconnected connection.</param>
+            <param name="stopCalled">
+            true, if stop was called on the client closing the connection gracefully;
+            false, if the connection has been lost for longer than the
+            <see cref="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout"/>.
+            Timeouts can occur in scaleout when clients reconnect with another server.
+            </param>
+            <returns>A <see cref="T:System.Threading.Tasks.Task"/> that completes when the disconnect operation is complete.</returns>
+        </member>
+        <member name="T:Microsoft.AspNet.SignalR.IConnection">
+            <summary>
+            A communication channel for a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> and its connections.
+            </summary>
+        </member>
+        <member name="P:Microsoft.AspNet.SignalR.IConnection.DefaultSignal">
+            <summary>
+            The main signal for this connection. This is the main signalr for a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.AspNet.SignalR.IConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+            <summary>
+            Sends a message to connections subscribed to the signal.
+            </summary>
+            <param name="message">The message to send.</param>
+            <returns>A task that returns when the message has be sent.</returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at "/signalr".
+            </summary>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at "/signalr".
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Maps SignalR hubs to the app builder pipeline at the specified path.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map signalr hubs</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder)">
+            <summary>
+            Adds SignalR hubs to the app builder pipeline.
+            </summary>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Adds SignalR hubs to the app builder pipeline.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the persistent connection</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder pipeline at 
+            the specified path.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="path">The path to map the persistent connection</param>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <typeparam name="TConnection">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></typeparam>
+            <param name="builder">The app builder</param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Adds the specified SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> to the app builder.
+            </summary>
+            <param name="builder">The app builder</param>
+            <param name="connectionType">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/></param>
+            <param name="configuration">The <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration"/> to use</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>
diff --git a/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml
new file mode 100644
index 0000000..8fd8ccf
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml
@@ -0,0 +1,4099 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.AspNet.SignalR.Core</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.AspNet.SignalR.AuthorizeAttribute">
+      <summary>搴旂敤浜庨泦绾垮櫒鍜岄泦绾垮櫒鏂规硶锛屼互鎺堟潈瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄥ苟鎺堟潈瀹㈡埛绔皟鐢ㄩ泦绾垮櫒鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.AuthorizeAttribute._requireOutgoing">
+      <summary>鎸囧畾鏄惁浠呭浠讳綍闆嗙嚎鍣ㄦ湇鍔″櫒绔柟娉曠殑璋冪敤搴旂敤鎺堟潈銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">灏濊瘯杩涜杩炴帴鐨勯泦绾垮櫒瀹㈡埛绔殑鎻忚堪銆�</param>
+      <param name="request">鏉ヨ嚜瀹㈡埛绔殑锛堥噸鏂帮級杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+      <summary>纭畾瀹㈡埛绔槸鍚︽湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubIncomingInvokerContext">
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛屾彁渚涙湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶璋冪敤鐨勮缁嗕俊鎭��</param>
+      <param name="appliesToMethod">瑕佹寚绀烘帴鍙e疄渚嬫槸鐩存帴搴旂敤鍒版柟娉曠殑鐗规�э紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.RequireOutgoing">
+      <summary>璁剧疆涓� false 鍙粎瀵逛换浣曢泦绾垮櫒鏈嶅姟鍣ㄧ鏂规硶鐨勮皟鐢ㄥ簲鐢ㄦ巿鏉冦�傛灞炴�у彧褰卞搷搴旂敤浜庨泦绾垮櫒绫荤殑鐗规�с�傛棤娉曡鍙栨灞炴�с��</summary>
+      <returns>濡傛灉浠呭浠讳綍闆嗙嚎鍣ㄦ湇鍔″櫒绔柟娉曠殑璋冪敤搴旂敤鎺堟潈锛屽垯涓� false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Roles">
+      <summary>鑾峰彇鎴栬缃敤鎴疯鑹层��</summary>
+      <returns>鐢ㄦ埛瑙掕壊銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.UserAuthorized(System.Security.Principal.IPrincipal)">
+      <summary>閲嶅啓鏃讹紝鎻愪緵涓�涓叆鍙g偣鐢ㄤ簬杩涜鑷畾涔夋巿鏉冩鏌ャ�傜敱 <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)" /> 鍜� <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)" /> 璋冪敤銆�</summary>
+      <returns>濡傛灉鐢ㄦ埛宸茬粡杩囨巿鏉冿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="user">琚巿鏉冪殑瀹㈡埛绔殑 <see cref="T:System.Security.Principal.IPrincipal" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Users">
+      <summary>鑾峰彇鎴栬缃巿鏉冪敤鎴枫��</summary>
+      <returns>鎺堟潈鐢ㄦ埛銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionConfiguration">
+      <summary>琛ㄧず杩炴帴閰嶇疆銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.EnableJSONP">
+      <summary>鑾峰彇鎴栬缃竴涓竷灏斿�硷紝璇ュ�肩‘瀹氭槸鍚﹀惎鐢� JSONP銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.Resolver">
+      <summary>鑾峰彇鎴栬缃鐢ㄤ簬闆嗙嚎鍣ㄨ繛鎺ョ殑渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</summary>
+      <returns>瑕佺敤浜庨泦绾垮櫒杩炴帴鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionExtensions">
+      <summary>鎻愪緵鎵╁睍鏂规硶锛岀敤浜庡皢娑堟伅鍙戦�佸埌璁㈤槄鐗瑰畾淇″彿鐨勬墍鏈夎繛鎺ャ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Broadcast(Microsoft.AspNet.SignalR.IConnection,System.Object,System.String[])">
+      <summary>灏嗗�煎箍鎾埌鎵�鏈夎繛鎺ワ紝鎸囧畾鐨勮繛鎺� ID 闄ゅ銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴銆�</param>
+      <param name="value">瑕佸箍鎾殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佸湪骞挎挱涓帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.Collections.Generic.IList{System.String},System.Object)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗘寚瀹氫俊鍙风殑鎵�鏈夎繛鎺ャ�備俊鍙风殑绀轰緥鍙互鏄壒瀹氳繛鎺� ID銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴</param>
+      <param name="connectionIds">瑕佸彂閫佸埌鐨勮繛鎺� ID銆�</param>
+      <param name="value">瑕佸彂甯冪殑鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.String,System.Object)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗘寚瀹氫俊鍙风殑鎵�鏈夎繛鎺ャ�備俊鍙风殑绀轰緥鍙互鏄壒瀹氳繛鎺� ID銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴</param>
+      <param name="connectionId">瑕佸彂閫佸埌鐨� connectionId銆�</param>
+      <param name="value">瑕佸彂甯冪殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionMessage">
+      <summary>鍙戦�佸埌涓�涓垨澶氫釜杩炴帴鐨勬秷鎭��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.Collections.Generic.IList{System.String},System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.Collections.Generic.IList{System.String},System.Object,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="signal">淇″彿銆�</param>
+      <param name="value">娑堟伅鐨勮礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object,System.Collections.Generic.IList{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="signal">淇″彿銆�</param>
+      <param name="value">娑堟伅鐨勮礋杞姐��</param>
+      <param name="excludedSignals">瑕佹帓闄ょ殑淇″彿銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.ExcludedSignals">
+      <summary>琛ㄧず淇″彿鐨勫垪琛紝杩欎簺淇″彿搴旇鐢ㄤ簬绛涢�夊摢浜涜繛鎺ユ帴鏀舵娑堟伅銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Collections.Generic.IList`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signal">
+      <summary>搴斿悜鍏跺彂閫佹娑堟伅鐨勪俊鍙枫�傚凡璁㈤槄姝や俊鍙风殑杩炴帴灏嗘帴鏀舵秷鎭礋杞姐��</summary>
+      <returns>杩斿洖 <see cref="T:System.String" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signals">
+      <summary>搴斿皢姝ゆ秷鎭紶閫佸埌鐨勪俊鍙风殑鍒楄〃銆傚鏋滀娇鐢ㄦ椤癸紝鍒欎笉鑳戒娇鐢� Signal銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Value">
+      <summary>娑堟伅鐨勮礋杞姐��</summary>
+      <returns>杩斿洖 <see cref="T:System.Object" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Cookie">
+      <summary>琛ㄧず SignalR 鐨� Cookie銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Cookie.#ctor(System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Cookie" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="name">Cookie 鐨勫睘鎬у悕绉般��</param>
+      <param name="value">Cookie 鐨勫睘鎬у�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Cookie.#ctor(System.String,System.String,System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Cookie" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="name">Cookie 鐨勫睘鎬у悕绉般��</param>
+      <param name="value">Cookie 鐨勫睘鎬у�笺��</param>
+      <param name="domain">Cookie 鐨勫煙灞炴�с��</param>
+      <param name="path">Cookie 鐨勫睘鎬ц矾寰勩��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Domain">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫煙銆�</summary>
+      <returns>Cookie 鐨勫煙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Name">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫悕绉般��</summary>
+      <returns>Cookie 鐨勫悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Path">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勮矾寰勩��</summary>
+      <returns>Cookie 鐨勮矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Value">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫�笺��</summary>
+      <returns>Cookie 鐨勫�笺��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver">
+      <summary>琛ㄧず鍏锋湁榛樿琛屼负鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勮祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勯潪鎵樼璧勬簮锛屽苟鏈夐�夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.GetService(System.Type)">
+      <summary>瑙f瀽鏀寔浠绘剰瀵硅薄鍒涘缓鐨勪竴娆℃敞鍐岀殑鏈嶅姟銆�</summary>
+      <returns>璇锋眰鐨勬湇鍔℃垨瀵硅薄銆�</returns>
+      <param name="serviceType">鎵�璇锋眰鐨勬湇鍔℃垨瀵硅薄鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.GetServices(System.Type)">
+      <summary>瑙f瀽澶氭娉ㄥ唽鐨勬湇鍔°��</summary>
+      <returns>璇锋眰鐨勬湇鍔°��</returns>
+      <param name="serviceType">鎵�璇锋眰鐨勬湇鍔$殑绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Register(System.Type,System.Collections.Generic.IEnumerable{System.Func{System.Object}})">
+      <summary>灏嗘寚瀹氱殑鏈嶅姟娉ㄥ唽鍒颁緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activators">瑕佹敞鍐屽埌渚濊禆鍏崇郴瑙f瀽绋嬪簭鐨勬湇鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Register(System.Type,System.Func{System.Object})">
+      <summary>灏嗘寚瀹氱殑鏈嶅姟娉ㄥ唽鍒颁緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activator">瑕佹敞鍐屽埌渚濊禆鍏崇郴瑙f瀽绋嬪簭鐨勬湇鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.Resolve``1(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>瑙f瀽鎵╁睍鐨勭被鍨嬨��</summary>
+      <returns>杩斿洖瀵硅薄鏉ヨВ鏋愭墿灞曠殑绫诲瀷銆�</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <typeparam name="T">瑕佽В鏋愮殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.Resolve(Microsoft.AspNet.SignalR.IDependencyResolver,System.Type)">
+      <summary>瑙f瀽鎵╁睍鐨勭被鍨嬨��</summary>
+      <returns>杩斿洖瀵硅薄鏉ヨВ鏋愭墿灞曠殑绫诲瀷銆�</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <param name="type">瑕佽В鏋愮殑绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.ResolveAll``1(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>瑙f瀽鎵�鏈夋墿灞曠殑绫诲瀷銆�</summary>
+      <returns>杩斿洖瑙f瀽绫诲瀷鎵╁睍鐨勯泦鍚堛��</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <typeparam name="T">瑕佽В鏋愮殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.ResolveAll(Microsoft.AspNet.SignalR.IDependencyResolver,System.Type)">
+      <summary>瑙f瀽鎵�鏈夋墿灞曠殑绫诲瀷銆�</summary>
+      <returns>杩斿洖瑙f瀽绫诲瀷鎵╁睍鐨勯泦鍚堛��</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <param name="type">瑕佽В鏋愮殑绫诲瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.GlobalHost">
+      <summary>鎻愪緵瀵归粯璁や富鏈轰俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.Configuration">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver">
+      <summary>鑾峰彇鎴栬缃粯璁� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.HubPipeline">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.TraceManager">
+      <summary>鑾峰彇榛樿 <see cref="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager" /></summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.GroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.#ctor(Microsoft.AspNet.SignalR.IConnection,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.GroupManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="connection">姝ょ粍椹荤暀鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />銆�</param>
+      <param name="groupPrefix">姝ょ粍鐨勫墠缂�銆�<see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鍚嶇О鎴� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绫诲瀷鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Add(System.String,System.String)">
+      <summary>灏嗚繛鎺ユ坊鍔犲埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Remove(System.String,System.String)">
+      <summary>浠庢寚瀹氱殑缁勪腑鍒犻櫎杩炴帴銆�</summary>
+      <returns>琛ㄧず瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.String,System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hub">
+      <summary>鎻愪緵涓庤繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 鐨� SignalR 杩炴帴杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Clients">
+      <summary>鑾峰彇鎴栬缃笌 SignalR 杩炴帴閫氫俊鐨勫鎴风銆�</summary>
+      <returns>涓� SignalR 杩炴帴閫氫俊鐨勫鎴风銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Context">
+      <summary>鑾峰彇鎴栬缃湁鍏宠皟鐢ㄥ鎴风鐨勪俊鎭��</summary>
+      <returns>鏈夊叧璋冪敤瀹㈡埛绔殑淇℃伅銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.Dispose">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.Dispose(System.Boolean)">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Groups">
+      <summary>鑾峰彇鎴栬缃闆嗙嚎鍣ㄥ疄渚嬬殑缁勭鐞嗗櫒銆�</summary>
+      <returns>姝ら泦绾垮櫒瀹炰緥鐨勭粍绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnConnected">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnDisconnected">
+      <summary>褰撲粠姝ら泦绾垮櫒瀹炰緥鏂紑杩炴帴鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnReconnected">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.HubConfiguration">
+      <summary>琛ㄧず闆嗙嚎鍣ㄩ厤缃��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.HubConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors">
+      <summary>纭畾鏄惁灏嗛泦绾垮櫒鏂规硶涓紩鍙戠殑璇︾粏寮傚父鎶ュ憡鍥炶皟鐢ㄥ鎴风銆傞粯璁や负 false銆�</summary>
+      <returns>濡傛灉瑕佸皢闆嗙嚎鍣ㄦ柟娉曚腑寮曞彂鐨勮缁嗗紓甯告姤鍛婂洖璋冪敤瀹㈡埛绔紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableJavaScriptProxies">
+      <summary>纭畾鏄惁搴斿湪 {璺緞}/hubs 鑷姩鐢熸垚鐢ㄤ簬鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄧ殑 JavaScript 浠g悊銆傞粯璁や负 true銆�</summary>
+      <returns>濡傛灉搴斿湪 {璺緞}/hubs 涓嚜鍔ㄧ敓鎴愮敤浜庢湇鍔″櫒绔泦绾垮櫒鐨� JavaScript 浠g悊锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.HubException"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor(System.String,System.Object)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.HubException.ErrorData"></member>
+    <member name="T:Microsoft.AspNet.SignalR.HubPipelineExtensions">
+      <summary>鎻愪緵鐢ㄤ簬鍚戞暟鎹被鍨嬫坊鍔犺嚜瀹氫箟鍔熻兘鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.HubPipelineExtensions.RequireAuthentication(Microsoft.AspNet.SignalR.Hubs.IHubPipeline)">
+      <summary>闇�瑕佽繘琛岃韩浠介獙璇佹椂锛屼細鍚� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 涓坊鍔犱竴涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" />锛屽墠鑰呭叿鏈夊皢鍏ㄥ眬搴旂敤浜庢墍鏈夐泦绾垮櫒鍜岄泦绾垮櫒鏂规硶鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection" /> 鍜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation" /> 鎺堟潈鑰呫�傝繖浜涙巿鏉冭�呰姹傚皢 <see cref="T:System.Security.Principal.IPrincipal" /> 鐨� <see cref="T:System.Security.Principal.IIdentity" /> IsAuthenticated 鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曟垨鎺ユ敹瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勪换浣曞鎴风銆�</summary>
+      <param name="pipeline">灏嗗悜鍏朵腑娣诲姞 <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IConnection">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鍙婂叾杩炴帴鐨勪俊閬撱��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IConnection.DefaultSignal">
+      <summary>姝よ繛鎺ョ殑涓昏淇″彿銆傝繖鏄� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪富瑕� signalr銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗕俊鍙风殑杩炴帴銆�</summary>
+      <returns>杩斿洖娑堟伅浣曟椂宸插彂閫佺殑浠诲姟銆�</returns>
+      <param name="message">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IConnectionGroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍锛屽苟鍏佽灏嗘秷鎭彂閫佸埌缁勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.String,System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IDependencyResolver">
+      <summary>鎻愪緵琛ㄧず SignalR 鐨勪緷璧栧叧绯昏В鏋愮▼搴忕殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.GetService(System.Type)">
+      <summary>杩斿洖缁欏畾绫诲瀷鐨勬湇鍔°��</summary>
+      <returns>杩斿洖鐨勬湇鍔°��</returns>
+      <param name="serviceType">瑕佽繑鍥炵殑鏈嶅姟鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.GetServices(System.Type)">
+      <summary>杩斿洖缁欏畾绫诲瀷鐨勬湇鍔°��</summary>
+      <returns>杩斿洖鐨勬湇鍔°��</returns>
+      <param name="serviceType">瑕佽繑鍥炵殑鏈嶅姟鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.Register(System.Type,System.Collections.Generic.IEnumerable{System.Func{System.Object}})">
+      <summary>娉ㄥ唽鎸囧畾绫诲瀷鐨勪竴缁勬湇鍔°��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activators">鍑芥暟濮旀墭鍒楄〃锛岃濮旀墭鎺ュ彈琛ㄧず瑕佹縺娲荤殑鏈嶅姟鐨勫弬鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.Register(System.Type,System.Func{System.Object})">
+      <summary>娉ㄥ唽鎸囧畾绫诲瀷鐨勬湇鍔°��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activator">涓�涓嚱鏁板鎵橈紝璇ュ鎵樻帴鍙楄〃绀鸿婵�娲荤殑鏈嶅姟鐨勫弬鏁般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IGroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Add(System.String,System.String)">
+      <summary>灏嗚繛鎺ユ坊鍔犲埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Remove(System.String,System.String)">
+      <summary>浠庢寚瀹氱殑缁勪腑鍒犻櫎杩炴帴銆�</summary>
+      <returns>琛ㄧず瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IHubContext">
+      <summary>鎻愪緵瀵规湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勪俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IHubContext.Clients">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IHubContext.Groups">
+      <summary>鑾峰彇闆嗙嚎鍣ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.IGroupManager" />銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.IGroupManager" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext">
+      <summary>鎻愪緵瀵规湁鍏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Connection">
+      <summary>鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Groups">
+      <summary>鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager" />銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IRequest">
+      <summary>琛ㄧず SignalR 璇锋眰銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Cookies">
+      <summary>鑾峰彇瀹㈡埛绔繛鎺ョ殑 Cookie銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ョ殑 Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Environment">
+      <summary>鑾峰彇 owin 鐜銆�</summary>
+      <returns>owin 鐜銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Headers">
+      <summary>鑾峰彇鎴栬缃姹傜殑鏍囧ご銆�</summary>
+      <returns>璇锋眰鐨勬爣澶淬��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.LocalPath">
+      <summary>鑾峰彇 URL 鐨勬湰鍦拌矾寰勯儴鍒嗐��</summary>
+      <returns>URL 鐨勬湰鍦拌矾寰勯儴鍒嗐��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.QueryString">
+      <summary>鑾峰彇 IRequest 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</summary>
+      <returns>IRequest 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IRequest.ReadForm">
+      <summary>璇诲彇 http 璇锋眰鐨勬牸寮忋��</summary>
+      <returns>瑕佽鍙栫殑 http 璇锋眰鏍煎紡銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Url">
+      <summary>鑾峰彇 IRequest 鐨� URI銆�</summary>
+      <returns>IRequest 鐨� URI銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.User">
+      <summary>鑾峰彇 IRequest 鐨勪富浣撶敤鎴枫��</summary>
+      <returns>IRequest 鐨勪富浣撶敤鎴枫��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IUserIdProvider"></member>
+    <member name="M:Microsoft.AspNet.SignalR.IUserIdProvider.GetUserId(Microsoft.AspNet.SignalR.IRequest)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.PersistentConnection">
+      <summary> 琛ㄧず瀹㈡埛绔拰鏈嶅姟鍣ㄤ箣闂寸殑杩炴帴銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.AckHandler">
+      <summary>鑾峰彇鎴栬缃杩炴帴鐨� Ack 澶勭悊绋嬪簭銆�</summary>
+      <returns>姝よ繛鎺ョ殑 Ack 澶勭悊绋嬪簭銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.Authorize(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾鏄惁宸叉巿鏉冩杩炴帴銆�</summary>
+      <returns>濡傛灉杩炴帴宸茶幏寰楁巿鏉冿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾鏄惁鎺堟潈杩炴帴璇锋眰銆�</summary>
+      <returns>濡傛灉杩炴帴鐨勮姹傚凡鑾峰緱鎺堟潈锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">璇锋眰銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Connection">
+      <summary>鑾峰彇鎴栬缃繛鎺ャ��</summary>
+      <returns>杩炴帴銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Counters">
+      <summary>鑾峰彇鎴栬缃�ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</summary>
+      <returns>鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.GetSignals(System.String,System.String)">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 涓娇鐢ㄧ殑淇″彿銆�</summary>
+      <returns>鐢ㄤ簬姝� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪俊鍙枫��</returns>
+      <param name="userId">褰撳墠杩炴帴鐨勭敤鎴� ID銆�</param>
+      <param name="connectionId">浼犲叆杩炴帴鐨� ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Groups">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ粍銆�</summary>
+      <returns>杩炴帴缁勩��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.Initialize(Microsoft.AspNet.SignalR.IDependencyResolver)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.JsonSerializer">
+      <summary>鑾峰彇鎴栬缃� JSON 搴忓垪鍖栫▼搴忋��</summary>
+      <returns>JSON 搴忓垪鍖栫▼搴忋��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.MessageBus">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑娑堟伅鎬荤嚎銆�</summary>
+      <returns>杩炴帴鐨勬秷鎭�荤嚎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>寤虹珛鏂拌繛鎺ユ椂璋冪敤銆�</summary>
+      <returns>杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>杩炴帴鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>鏂紑杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">鏂紑杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+      <summary>浠庤繛鎺ユ帴鏀舵暟鎹椂璋冪敤銆�</summary>
+      <returns>鎺ユ敹鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">鍙戦�佹暟鎹殑杩炴帴鐨� ID銆�</param>
+      <param name="data">鍙戦�佸埌杩炴帴鐨勮礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤銆�</summary>
+      <returns>閲嶆柊杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤浠ョ‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</summary>
+      <returns>閲嶆柊杩炴帴鏃跺簲鍔犲叆鐨勭粍鍚嶉泦鍚堛��</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="groups">杩涜璋冪敤鐨勮繛鎺ュ0鏄庢槸鍏朵竴閮ㄥ垎鐨勭粍銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>澶勭悊 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勬墍鏈夎姹傘��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绠¢亾瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="context">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+      <exception cref="InvalidOperationException">杩炴帴鏈垵濮嬪寲鏃跺紩鍙戙�傛湭鎸囧畾浼犺緭鏃跺紩鍙戙�傛湭鎸囧畾杩炴帴 ID 鏃跺紩鍙戙��</exception>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>OWIN 鍏ュ彛鐐广��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.ProtectedData">
+      <summary>鑾峰彇鎴栬缃杩炴帴鐨勫彈淇濇姢鏁版嵁銆�</summary>
+      <returns>姝よ繛鎺ョ殑鍙椾繚鎶ゆ暟鎹��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Trace">
+      <summary>鑾峰彇杩炴帴鐨勬簮銆�</summary>
+      <returns>杩炴帴鐨勬簮銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.TraceManager">
+      <summary>鑾峰彇鎴栬缃窡韪鐞嗗櫒銆�</summary>
+      <returns>璺熻釜绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Transport">
+      <summary>鑾峰彇鎴栬缃笌姝よ繛鎺ュ叧鑱旂殑浼犺緭銆�</summary>
+      <returns>涓庢杩炴帴鍏宠仈鐨勪紶杈撱��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.UserIdProvider"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager">
+      <summary>鎻愪緵瀵规湇鍔″櫒榛樿閰嶇疆绠$悊鍣ㄧ殑璁块棶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.ConnectionTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.DefaultMessageBufferSize">
+      <summary>鑾峰彇鎴栬缃涓虹壒瀹氫俊鍙风紦鍐茬殑娑堟伅鏁伴噺銆�</summary>
+      <returns>瑕佷负鐗瑰畾淇″彿缂撳啿鐨勬秷鎭暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.DisconnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.KeepAlive">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.LongPollDelay"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.TransportConnectTimeout"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager">
+      <summary>鎻愪緵瀵规湇鍔″櫒閰嶇疆鐨勮闂��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.ConnectionTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿闀垮害銆�</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DefaultMessageBufferSize">
+      <summary>鑾峰彇鎴栬缃涓虹壒瀹氫俊鍙风紦鍐茬殑娑堟伅鏁伴噺銆�</summary>
+      <returns>瑕佷负鐗瑰畾淇″彿缂撳啿鐨勬秷鎭暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿闀垮害銆�</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.KeepAlive">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿闀垮害銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.LongPollDelay">
+      <summary>鑾峰彇鎴栬缃鍛婄煡瀹㈡埛绔湪浠庢湇鍔″櫒鍙戦�佹暟鎹悗閲嶆柊寤虹珛闀胯疆璇㈣繛鎺ヤ箣鍓嶇瓑寰呯殑 <see cref="T:System.TimeSpan" />銆傞粯璁ゅ�间负 0銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.TransportConnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀哄鎴风鍦ㄨ浆鑰屼娇鐢ㄥ叾浠栦紶杈撴垨杩炴帴澶辫触涔嬪墠搴斿厑璁歌繛鎺ョ殑鏃堕棿銆傞粯璁ゅ�间负 5 绉掋��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.HostContext">
+      <summary>琛ㄧず SignalR 涓绘満鐨勪笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostContext.#ctor(Microsoft.AspNet.SignalR.IRequest,Microsoft.AspNet.SignalR.Hosting.IResponse)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">SignalR 涓绘満鐨勭幆澧冦��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Environment">
+      <summary>鑾峰彇 SignalR 涓绘満鐨勭幆澧冦��</summary>
+      <returns>SignalR 涓绘満鐨勭幆澧冦��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Request"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Response"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.HostDependencyResolverExtensions">
+      <summary>琛ㄧず渚濊禆鍏崇郴瑙f瀽绋嬪簭鎵╁睍鐨勪富鏈恒��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostDependencyResolverExtensions.InitializeHost(Microsoft.AspNet.SignalR.IDependencyResolver,System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栦緷璧栧叧绯昏В鏋愮▼搴忔墿灞曠殑涓绘満銆�</summary>
+      <param name="resolver">IDependencyResolver銆�</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="hostShutdownToken">涓绘満鍏抽棴浠ょ墝銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.INameValueCollection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.Get(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.GetValues(System.String)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.Item(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.IResponse">
+      <summary>琛ㄧず涓庡鎴风鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.CancellationToken">
+      <summary>鑾峰彇琛ㄧず瀹㈡埛绔敓瀛樻湡鐨勫彇娑堟爣璁般��</summary>
+      <returns>琛ㄧず瀹㈡埛绔敓瀛樻湡鐨勫彇娑堜护鐗屻��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃搷搴旂殑鍐呭绫诲瀷銆�</summary>
+      <returns>鍝嶅簲鐨勫唴瀹圭被鍨嬨��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Flush">
+      <summary>灏嗙紦鍐茬殑鍝嶅簲鍒锋柊鍒板鎴风銆�</summary>
+      <returns>琛ㄧず浣曟椂鍒锋柊杩囨暟鎹殑浠诲姟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Write(System.ArraySegment{System.Byte})">
+      <summary>鍐欏叆缂撳啿鐨勬暟鎹��</summary>
+      <param name="data">瑕佸啓鍏ュ埌缂撳啿鍖虹殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory">
+      <summary>璐熻矗鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏃惰浣跨敤鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.CreateInstance(System.Type)">
+      <summary>浣跨敤渚濊禆鍏崇郴瑙f瀽绋嬪簭鎴栫被鍨嬬殑榛樿鏋勯�犲嚱鏁板垱寤烘寚瀹氱被鍨嬬殑瀹炰緥銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勫疄渚嬨��</returns>
+      <param name="connectionType">瑕佸垱寤虹殑 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions.End(Microsoft.AspNet.SignalR.Hosting.IResponse,System.String)">
+      <summary>浣跨敤鍙�夋暟鎹叧闂笌瀹㈡埛绔殑杩炴帴銆�</summary>
+      <returns>琛ㄧず杩炴帴浣曟椂鍏抽棴鐨勪换鍔°��</returns>
+      <param name="response">
+        <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse" />銆�</param>
+      <param name="data">瑕佸啓鍏ュ埌杩炴帴鐨勬暟鎹��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule">
+      <summary>搴旂敤 <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 绫讳腑鐨勬巿鏉冪壒鎬э紝浠ョ‘瀹氭槸鍚﹀厑璁稿鎴风鎺ユ敹浠庨泦绾垮櫒鍙戦�佺殑娑堟伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.#ctor(Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection,Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="globalConnectionAuthorizer">鍏ㄥ眬杩炴帴鎺堟潈鑰呫��</param>
+      <param name="globalInvocationAuthorizer">鍏ㄥ眬璋冪敤鎺堟潈鑰呫��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪闆嗙嚎鍣ㄤ笂鏌ユ壘鐗规�э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation">
+      <summary>鎻忚堪瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Args">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曟椂灏嗕娇鐢ㄧ殑鍙傛暟鍒楄〃銆�</summary>
+      <returns>涓庡鎴风闆嗙嚎鍣ㄦ柟娉曞叧鑱旂殑鍙傛暟鍒楄〃銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Hub">
+      <summary>鑾峰彇鎴栬缃璋冪敤鏂规硶鎵�灞炵殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</summary>
+      <returns>琚皟鐢ㄦ柟娉曟墍灞炵殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Method">
+      <summary>鑾峰彇鎴栬缃璋冪敤鐨勫鎴风闆嗙嚎鍣ㄦ柟娉曠殑鍚嶇О銆�</summary>
+      <returns>琚皟鐢ㄧ殑瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.State">
+      <summary>鑾峰彇鎴栬缃〃绀鸿嚜涓婃灏嗛泦绾垮櫒鐘舵�佸彂閫佸埌瀹㈡埛绔互鏉ュ凡鏇存敼鐨勬湇鍔″櫒涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</summary>
+      <returns>琛ㄧず鏈嶅姟鍣ㄤ笂鐨勯泦绾垮櫒鐘舵�佺殑閿�/鍊煎瓨鍌ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientProxy">
+      <summary>琛ㄧず瀹㈡埛绔泦绾垮櫒鐨勬湇鍔″櫒绔唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ClientProxy" /> 瀹炰緥琛ㄧず鐨勮繛鎺ョ殑鏂规硶銆�</summary>
+      <returns>琛ㄧず鏁版嵁浣曟椂宸插彂閫佸埌瀹㈡埛绔殑浠诲姟銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶鐨勫悕绉般��</param>
+      <param name="args">瑕佷紶閫掔粰瀹㈡埛绔殑鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)">
+      <summary>鎵ц <see cref="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.Invoke(System.String,System.Object[])" /> 鏂规硶銆�</summary>
+      <returns>濮嬬粓涓� true銆�</returns>
+      <param name="binder">鍖呭惈缁戝畾璇箟鍜屽鎴风闆嗙嚎鍣ㄦ搷浣滆缁嗕俊鎭殑淇℃伅銆�</param>
+      <param name="args">鍦ㄨ皟鐢ㄦ搷浣滄湡闂翠紶閫掔粰瀵硅薄鎴愬憳鐨勫弬鏁般��</param>
+      <param name="result">褰撴柟娉曡繑鍥炴椂锛屽寘鍚垚鍛樿皟鐢ㄧ殑缁撴灉銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ConnectionIdProxy">
+      <summary>琛ㄧず瀹㈡埛绔泦绾垮櫒鐨勮繛鎺� ID 浠g悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ConnectionIdProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String[])"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator">
+      <summary>琛ㄧず榛樿鐨勭▼搴忛泦瀹氫綅鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator.GetAssemblies">
+      <summary>鑾峰彇宸插姞杞藉埌褰撳墠搴旂敤绋嬪簭鍩熶腑鐨勭▼搴忛泦銆�</summary>
+      <returns>褰撳墠搴旂敤绋嬪簭鍩熶腑鐨勭▼搴忛泦鏁扮粍銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator">
+      <summary>琛ㄧず SignalR 闆嗙嚎鍣ㄧ殑榛樿婵�娲诲櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator.Create(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>鍒涘缓鏂扮殑闆嗙嚎鍣ㄦ縺娲诲櫒銆�</summary>
+      <returns>鍒涘缓鐨勯泦绾垮櫒婵�娲诲櫒銆�</returns>
+      <param name="descriptor">鎻忚堪绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager">
+      <summary>琛ㄧず榛樿鐨勯泦绾垮櫒绠$悊鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">闆嗙嚎鍣ㄨВ鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHub(System.String)">
+      <summary>妫�绱㈠崟涓泦绾垮櫒鎻忚堪绗︺��</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒鎻忚堪绗︼紱鍚﹀垯涓� null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄧ粰瀹氶泦绾垮櫒涓婃绱㈠叿鏈夌粰瀹氬悕绉扮殑鏂规硶銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="method">瑕佹煡鎵剧殑鏂规硶鐨勫悕绉般��</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶鐨勫垪琛ㄣ��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="predicate">鐢ㄤ簬绛涢�夌粨鏋滅殑鍙�夎皳璇嶃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+      <summary>妫�绱笌缁欏畾璋撹瘝鍖归厤鐨勬墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勫垪琛ㄣ��</returns>
+      <param name="predicate">璋撹瘝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.ResolveHub(System.String)">
+      <summary>灏嗙粰瀹氶泦绾垮櫒鍚嶇О瑙f瀽涓轰竴涓叿浣撶殑瀵硅薄銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒瀹炵幇瀹炰緥锛涘惁鍒欎负 null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.ResolveHubs">
+      <summary>灏嗘墍鏈夊彲鐢ㄩ泦绾垮櫒瑙f瀽涓哄叾鍏蜂綋瀵硅薄銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬬殑鍒楄〃銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator">
+      <summary>琛ㄧず榛樿 Javascript 浠g悊鐨勭敓鎴愬櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubManager,Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="manager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="javaScriptMinifier">javascript 缂╁噺绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>鐢熸垚鎸囧畾鐨勪唬鐞嗐��</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.GenerateProxy(System.String,System.Boolean)">
+      <summary>鐢熸垚鎸囧畾鐨勪唬鐞嗐��</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+      <param name="includeDocComments">鑻ヨ鍖呮嫭 Doc 娉ㄩ噴锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver">
+      <summary>琛ㄧず闆嗙嚎鍣ㄥ弬鏁扮殑榛樿瑙f瀽绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愭柟娉曞弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊肩殑鏁扮粍銆�</returns>
+      <param name="method">鏂规硶鎻忚堪绗︺��</param>
+      <param name="values">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊肩殑鍒楄〃銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveParameter(Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor,Microsoft.AspNet.SignalR.Json.IJsonValue)">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愬弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊笺��</returns>
+      <param name="descriptor">鍙傛暟鎻忚堪绗︺��</param>
+      <param name="value">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.Descriptor">
+      <summary>鎻忚堪闆嗙嚎鍣ㄧ殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.Descriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.Descriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.Name">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鍚嶇О銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.NameSpecified">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚︽寚瀹氫簡闆嗙嚎鍣ㄧ壒鎬у悕绉般��</summary>
+      <returns>濡傛灉鎸囧畾浜嗛泦绾垮櫒鐗规�у悕绉帮紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary">
+      <summary>鍖呭惈鐢ㄤ簬瀛樺偍閿�/鍊煎鐨勫瓧鍏稿璞★紝骞堕噸鍐� TrySetMember 鍜� TryGetMember 鏂规硶浠ユ敮鎸佹柊璇硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="obj">瀛楀吀瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>灏嗘寚瀹氱殑閿�/鍊煎瀵硅薄娣诲姞鍒板瓧鍏搞��</summary>
+      <param name="item">瑕佹坊鍔犵殑閿�/鍊煎瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Add(System.String,System.Object)">
+      <summary>灏嗘寚瀹氱殑閿拰鍊兼坊鍔犲埌瀛楀吀銆�</summary>
+      <param name="key">瑕佹坊鍔犵殑鍏冪礌鐨勯敭銆�</param>
+      <param name="value">瑕佹坊鍔犵殑鍏冪礌鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Clear">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鎵�鏈夐敭鍜屽�笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>纭畾瀛楀吀鏄惁鍖呭惈鐗瑰畾鐨勯敭/鍊煎椤广��</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鍏锋湁鎸囧畾鍊肩殑鍏冪礌锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="item">瑕佸湪瀛楀吀涓煡鎵剧殑閿�/鍊煎椤广��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.ContainsKey(System.String)">
+      <summary>纭畾瀛楀吀鏄惁鍖呭惈鎸囧畾鐨勯敭銆�</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鎸囧畾鐨勯敭锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佸湪瀛楀吀涓煡鎵剧殑閿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Object}[],System.Int32)">
+      <summary>浠庢寚瀹氱殑鏁扮粍绱㈠紩澶勫紑濮嬶紝灏嗛敭/鍊煎鍏冪礌澶嶅埗鍒扮幇鏈夌殑涓�缁存暟缁勪腑銆�</summary>
+      <param name="array">涓�缁存暟缁勶紝鐢ㄤ綔浠庡瓧鍏镐腑澶嶅埗鐨勫厓绱犵殑鐩爣銆�</param>
+      <param name="arrayIndex">鏁扮粍涓粠闆跺紑濮嬬殑绱㈠紩锛屽皢浠庢浣嶇疆寮�濮嬪鍒躲��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Count">
+      <summary>鑾峰彇瀛楀吀涓殑椤规暟銆�</summary>
+      <returns>瀛楀吀涓殑椤规暟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.GetEnumerator">
+      <summary>杩斿洖涓�涓惊鐜闂瓧鍏哥殑鏋氫妇鍣ㄣ��</summary>
+      <returns>寰幆璁块棶瀛楀吀鐨勬灇涓惧櫒銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.IsReadOnly">
+      <summary>鑾峰彇鍔ㄦ�佸瓧鍏告槸鍚︿负鍙銆�</summary>
+      <returns>濡傛灉鍔ㄦ�佸瓧鍏镐负鍙锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Item(System.String)">
+      <summary>鑾峰彇鎴栬缃瓧鍏镐腑鍏锋湁鐗瑰畾閿殑椤广��</summary>
+      <returns>瀛楀吀涓叿鏈夌壒瀹氶敭鐨勯」銆�</returns>
+      <param name="key">椤圭殑閿��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Keys">
+      <summary>鑾峰彇瀛楀吀涓寘鍚殑閿泦鍚堛��</summary>
+      <returns>瀛楀吀涓寘鍚殑閿泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鎸囧畾鐨勯敭/鍊煎椤广��</summary>
+      <returns>宸插湪鍏朵腑鍒犻櫎浜嗛」鐨勫瓧鍏搞��</returns>
+      <param name="item">瑕佸垹闄ょ殑椤广��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Remove(System.String)">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鐗瑰畾鐨勯敭銆�</summary>
+      <returns>宸插湪鍏朵腑鍒犻櫎浜嗛敭鐨勫瓧鍏搞��</returns>
+      <param name="key">瑕佸垹闄ょ殑閿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.System#Collections#IEnumerable#GetEnumerator">
+      <summary>杩斿洖寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TryGetValue(System.String,System.Object@)">
+      <summary>鑾峰彇涓庢寚瀹氱殑閿叧鑱旂殑鍊笺��</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鍏锋湁鎸囧畾閿殑鍏冪礌锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佽幏鍙栫殑鍊肩殑閿��</param>
+      <param name="value">褰撴鏂规硶杩斿洖鏃讹紝濡傛灉鎵惧埌鎸囧畾閿紝鍒欏寘鍚笌璇ラ敭鍏宠仈鐨勫�硷紱鍚﹀垯锛屽皢鍖呭惈 value 鍙傛暟鐨勭被鍨嬬殑榛樿鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
+      <summary>鎻愪緵鐢ㄤ簬璁剧疆鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="value">瑕佽缃埌鎴愬憳鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Unwrap(System.Object)">
+      <summary>瑙e寘涓庡瓧鍏稿叧鑱旂殑鎸囧畾鍊笺��</summary>
+      <returns>瑙e寘鐨勫�笺��</returns>
+      <param name="value">瑕佽В鍖呯殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Values">
+      <summary>鑾峰彇瀛楀吀涓寘鍚殑鍊奸泦鍚堛��</summary>
+      <returns>瀛楀吀涓寘鍚殑鍊奸泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Wrap(System.Object)">
+      <summary>鍖呰涓庡瓧鍏稿叧鑱旂殑鎸囧畾鍊笺��</summary>
+      <returns>鍖呰鐨勫�笺��</returns>
+      <param name="value">瑕佸寘瑁呯殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator">
+      <summary>琛ㄧず绌� Javascript 浠g悊鐨勭敓鎴愬櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>浣跨敤鎸囧畾鐨� URL 鐢熸垚浠g悊銆�</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator">
+      <summary>琛ㄧず涓庣▼搴忛泦瀹氫綅鍣ㄥ叧鑱旂殑鍙灇涓惧�笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator.#ctor(System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="assemblies">绋嬪簭闆嗐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖绋嬪簭闆嗗垪琛ㄣ��</summary>
+      <returns>绋嬪簭闆嗗垪琛�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ExceptionContext"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.#ctor(System.Exception)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Error">
+      <summary>瑕佸彂閫佸埌璋冪敤瀹㈡埛绔殑寮傚父銆傞櫎闈� Error 鏄� <see cref="T:Microsoft.AspNet.SignalR.HubException" />锛屾垨鑰� <see cref="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors" /> 璁剧疆涓� true锛屽惁鍒欒繖灏嗚娉涘瀷 Exception 閲嶅啓銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Result">
+      <summary>瑕佽繑鍥烇紙鑰屼笉鏄紩鍙� Error锛夌殑鍊笺�傚彧瑕佽缃簡 Result锛孍rror 灏变細璁剧疆涓� null銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.GroupProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑涓�缁勪俊鍙蜂唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.GroupProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext">
+      <summary>琛ㄧず瀹㈡埛绔殑璋冪敤涓婁笅鏂囥��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.#ctor(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="request">褰撳墠鐨� HTTP 璇锋眰銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.ConnectionId">
+      <summary>鑾峰彇璋冪敤瀹㈡埛绔殑杩炴帴 ID銆�</summary>
+      <returns>璋冪敤瀹㈡埛绔殑杩炴帴 ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Headers">
+      <summary>鑾峰彇璇锋眰鐨勬爣澶淬��</summary>
+      <returns>璇锋眰鐨勬爣澶淬��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.QueryString">
+      <summary>鑾峰彇璇锋眰鐨勬煡璇㈠瓧绗︿覆銆�</summary>
+      <returns>璇锋眰鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Request">
+      <summary>涓哄綋鍓� HTTP 璇锋眰鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.IRequest" />銆�</summary>
+      <returns>褰撳墠 HTTP 璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.IRequest" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.RequestCookies">
+      <summary>鑾峰彇璇锋眰鐨� Cookie銆�</summary>
+      <returns>璇锋眰鐨� Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.User">
+      <summary>鑾峰彇璇锋眰鐨� <see cref="T:System.Security.Principal.IPrincipal" />銆�</summary>
+      <returns>璇锋眰鐨� <see cref="T:System.Security.Principal.IPrincipal" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勫崟涓� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,Microsoft.AspNet.SignalR.IConnection,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="pipelineInvoker">绠¢亾璋冪敤绋嬪簭銆�</param>
+      <param name="connection">鎺ュ彛杩炴帴銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+      <param name="tracker">鐘舵�佹洿鏀硅窡韪▼搴忋��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄥ鎴风銆�</summary>
+      <returns>璋冪敤瀹㈡埛绔��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Others">
+      <summary>鑾峰彇鎴栬缃櫎璋冪敤瀹㈡埛绔互澶栫殑鎵�鏈夊凡杩炴帴瀹㈡埛绔��</summary>
+      <returns>闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊凡杩炴帴瀹㈡埛绔��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroup(System.String)">
+      <summary>杩斿洖缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})">
+      <summary>杩斿洖鎸囧畾缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupNames">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.All"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.AllExcept(System.String[])">
+      <summary>杩斿洖闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Client(System.String)">
+      <summary>杩斿洖鍏锋湁鎸囧畾 connectionid 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionId">杩炴帴 ID</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Clients(System.Collections.Generic.IList{System.String})">
+      <summary>杩斿洖鍏锋湁鎸囧畾 connectionid 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionIds">杩炴帴 ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Connection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Group(System.String,System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Groups(System.Collections.Generic.IList{System.String},System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.HubName"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Invoker"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.User(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄧ殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.CreateQualifiedName(System.String)">
+      <summary>涓轰娇鐢ㄦ寚瀹氱殑闈為檺瀹氬悕绉扮殑闆嗙嚎鍣ㄥ垱寤洪檺瀹氬悕绉般��</summary>
+      <returns>鍒涘缓鐨勯檺瀹氬悕绉般��</returns>
+      <param name="unqualifiedName">闈為檺瀹氬悕绉般��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.HubType">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒绫诲瀷銆�</summary>
+      <returns>闆嗙嚎鍣ㄧ被鍨嬨��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher">
+      <summary>澶勭悊閫氳繃闆嗙嚎鍣ㄦ寔涔呮�ц繛鎺ヨ繘琛岀殑鎵�鏈夐�氫俊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.#ctor(Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="configuration">纭畾鏄惁鍚敤 JS 浠g悊骞朵负瀹㈡埛绔彁渚涜缁嗛泦绾垮櫒閿欒鐨勯厤缃缃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鏋勫缓涓鸿繛鎺ョ殑鎸囧畾璇锋眰鎺堟潈鐨勯泦绾垮櫒鍒楄〃銆�</summary>
+      <returns>濡傛灉鏈夊凡鑾峰緱鎺堟潈鐨勯泦绾垮櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.GetSignals(System.String,System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Initialize(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>涓绘満璋冪敤姝ら」鏉ュ垵濮嬪寲 IDependencyResolver 鐨勯泦绾垮櫒璋冨害銆�</summary>
+      <param name="resolver">IDependency 瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴杩炴帴鍒版闆嗙嚎鍣ㄥ疄渚嬫椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ヤ笌姝ら泦绾垮櫒瀹炰緥鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴浠庢闆嗙嚎鍣ㄥ疄渚嬫柇寮�鏃惰皟鐢ㄧ殑浠诲姟銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+      <summary>澶勭悊闆嗙嚎鍣ㄧ殑浼犲叆鏂规硶璋冪敤銆�</summary>
+      <returns>浠庢闆嗙嚎鍣ㄥ疄渚嬫敹鍒版暟鎹椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+      <param name="data">鏀跺埌鐨勬暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴閲嶆柊杩炴帴鍒版闆嗙嚎鍣ㄥ疄渚嬫椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤浠ョ‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</summary>
+      <returns>瓒呮椂鍚庣敤浜庨噸鏂拌繛鎺ョ殑杩炴帴鍒楄〃锛岀敤浜庣‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="groups">杩涜璋冪敤鐨勮繛鎺ュ0鏄庢槸鍏朵竴閮ㄥ垎鐨勭粍銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>澶勭悊 HostContext 鐨勬墍鏈夎姹傘��</summary>
+      <returns>澶勭悊 HostContext 鐨勬墍鏈夎姹傜殑浠诲姟銆�</returns>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Trace">
+      <summary>鑾峰彇闆嗙嚎鍣ㄨ繛鎺ワ紝杩欎簺杩炴帴浣垮簲鐢ㄧ▼搴忚兘澶熻窡韪唬鐮佺殑鎵ц锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</summary>
+      <returns>闆嗙嚎鍣ㄨ繛鎺ワ紝杩欎簺杩炴帴浣垮簲鐢ㄧ▼搴忚兘澶熻窡韪唬鐮佺殑鎵ц锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions">
+      <summary>鎻愪緵鏁翠釜闆嗙嚎鍣ㄨ繘绋嬬殑闆嗙嚎鍣ㄧ鐞嗗櫒鎵╁睍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.EnsureHub(Microsoft.AspNet.SignalR.Hubs.IHubManager,System.String,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter[])">
+      <summary>纭鏈夊叧闆嗙嚎鍣ㄦ弿杩扮鐨勬墍鏈変俊鎭��</summary>
+      <returns>鐢ㄤ簬纭鎵�鏈変俊鎭殑闆嗙嚎鍣ㄦ弿杩扮銆�</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="counters">鎬ц兘璁℃暟鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.GetHubMethods(Microsoft.AspNet.SignalR.Hubs.IHubManager,System.String)">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>瑕佸缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鏂规硶闆嗗悎銆�</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.GetHubs(Microsoft.AspNet.SignalR.Hubs.IHubManager)">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>鎵�鏈夊彲鐢ㄩ泦绾垮櫒鐨勬绱€��</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute">
+      <summary>琛ㄧず闆嗙嚎鍣ㄧ殑鏂规硶鍚嶇О鐗规�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute.#ctor(System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="methodName">鏂规硶鐨勫悕绉般��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute.MethodName">
+      <summary>鑾峰彇鎴栬缃柟娉曞悕绉般��</summary>
+      <returns>鏂规硶鍚嶇О銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute">
+      <summary>琛ㄧず闆嗙嚎鍣ㄥ悕绉扮殑鐗规�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute.#ctor(System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute.HubName">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勫悕绉般��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule">
+      <summary>鐢ㄤ簬绠�鍖� IHubPipelineModules 鐨勫疄鐜扮殑鍏叡鍩虹被銆傛ā鍧楀彲浠ユ埅鑾峰苟鑷畾涔夊悇绉嶉泦绾垮櫒澶勭悊闃舵锛屽杩炴帴銆侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍銆傚彲浠ラ�氳繃璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 鏉ユ縺娲绘ā鍧椼�傛坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勭粍鍚堟ā鍧楁槸閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 鎺ュ彛璋冪敤鐨勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="connect">瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔墍杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="disconnect">瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</summary>
+      <returns>鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫凡鍖呰鍑芥暟銆�</returns>
+      <param name="send">鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="reconnect">瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁扮敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>涓�涓凡鍖呰鍑芥暟锛岀敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涚粍銆�</returns>
+      <param name="rejoiningGroups">涓�涓嚱鏁帮紝鐢ㄤ簬纭畾搴斿厑璁稿鎴风閲嶆柊鍔犲叆鍝簺缁勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑鏂紑杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterIncoming(System.Object,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>鍦ㄧ◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲叆缁勪欢浠ュ強鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曟墽琛屽畬姣曞悗锛屽皢璋冪敤姝ゆ柟娉曘��</summary>
+      <returns>鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曞彲鑳芥彁渚涚殑鏂扮殑鎴栨洿鏂扮殑杩斿洖鍊�</returns>
+      <param name="result">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑杩斿洖鍊�</param>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲嚭缁勪欢涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曘�傝繖骞朵笉鎰忓懗鐫�鎵�鏈夊鎴风閮藉凡鏀跺埌闆嗙嚎鍣ㄦ柟娉曡皟鐢紝浣嗙‘瀹炶〃绀洪泦绾垮櫒璋冪敤娑堟伅宸叉垚鍔熷彂甯冨埌娑堟伅鎬荤嚎銆�</summary>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑閲嶆柊杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡閲嶆柊杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeAuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑 AuthorizeConnect 缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧楀皢涓嶄細杩愯锛屽苟涓斿皢涓嶅厑璁稿鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�瀹氫箟鐨勯泦绾垮櫒鐨勫鎴风鏂规硶璋冪敤銆�</summary>
+      <returns>濡傛灉瀹㈡埛绔湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡闃呯殑闆嗙嚎鍣ㄧ殑鎻忚堪銆�</param>
+      <param name="request">灏濊瘯璁㈤槄闆嗙嚎鍣ㄧ殑瀹㈡埛绔殑杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勮繛鎺ョ粍浠朵互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑鏂紑杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勬柇寮�杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲叆缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯涓嶄細鎵ц閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙婃湇鍔″櫒绔泦绾垮櫒鏂规硶璋冪敤銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢紝鎴栬�呴�氳繃杩斿洖 false 鍦� <see cref="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勪紶鍏ョ粍浠朵互鍙婃湇鍔″櫒绔泦绾垮櫒鏂规硶璋冪敤锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲嚭缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯涓嶄細鎵ц閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙婂鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄣ��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勪紶鍑虹粍浠朵互鍙婂鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑閲嶆柊杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勯噸鏂拌繛鎺ョ粍浠朵互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡閲嶆柊杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnIncomingError(Microsoft.AspNet.SignalR.Hubs.ExceptionContext,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>褰撴湇鍔″櫒绔泦绾垮櫒鏂规硶鎴栬�呯◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勬ā鍧楃殑浼犲叆缁勪欢寮曞彂浜嗘湭鎹曡幏鐨勫紓甯告椂锛屽皢璋冪敤姝ゆ柟娉曘�備娇鐢ㄦ鏂规硶瑙傚療寮傚父鏃讹紝涓嶄細闃绘璇ュ紓甯稿悜涓婂啋娉″埌鍏朵粬妯″潡銆�</summary>
+      <param name="exceptionContext">琛ㄧず鍦ㄦ湇鍔″櫒绔皟鐢ㄦ湡闂村紩鍙戠殑寮傚父銆傚彲浠ヤ娇鐢ㄦ涓婁笅鏂囨洿鏀归敊璇垨璁剧疆缁撴灉銆�</param>
+      <param name="invokerContext">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubRequest">
+      <summary>鎻愪緵涓庤繛鎺ュ埌闆嗙嚎鍣ㄧ殑 SignalR 杩炴帴璇锋眰杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubRequest.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Hub">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勮繛鎺ュ�笺��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑杩炴帴鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Id">
+      <summary>鑾峰彇鎴栬缃繛鎺� ID銆�</summary>
+      <returns>杩炴帴 ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Method">
+      <summary>鑾峰彇鎴栬缃姹傛柟娉曘��</summary>
+      <returns>璇锋眰鏂规硶銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.ParameterValues">
+      <summary>鑾峰彇鎴栬缃弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.State">
+      <summary>鑾峰彇鎴栬缃姹傜殑褰撳墠鐘舵�併��</summary>
+      <returns>璇锋眰鐨勫綋鍓嶇姸鎬併��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubResponse">
+      <summary>琛ㄧず浠庝紶鍏ラ泦绾垮櫒璇锋眰杩斿洖鐨勫搷搴斻��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubResponse.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Error">
+      <summary>鑾峰彇鎴栬缃敱浜庤皟鐢ㄩ泦绾垮櫒鏂规硶鑰屽彂鐢熺殑寮傚父銆�</summary>
+      <returns>鐢变簬璋冪敤闆嗙嚎鍣ㄦ柟娉曡�屽彂鐢熺殑寮傚父銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.ErrorData">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.HubException" /> 涓寘鍚殑棰濆閿欒鏁版嵁</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Id">
+      <summary>鑾峰彇鎴栬缃搷浣滅殑 ID銆�</summary>
+      <returns>鎿嶄綔鐨� ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.IsHubException">
+      <summary>鎸囩ず Error 鏄惁涓� <see cref="T:Microsoft.AspNet.SignalR.HubException" />銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Result">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄧ殑缁撴灉銆�</summary>
+      <returns>璋冪敤鐨勭粨鏋溿��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.StackTrace">
+      <summary>鑾峰彇鎴栬缃敱浜庤皟鐢ㄩ泦绾垮櫒鏂规硶鑰屽彂鐢熺殑寮傚父鐨勫爢鏍堣窡韪��</summary>
+      <returns>鐢变簬璋冪敤闆嗙嚎鍣ㄦ柟娉曡�屽彂鐢熺殑寮傚父鐨勫爢鏍堣窡韪��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.State">
+      <summary>鑾峰彇鎴栬缃洿鏀瑰鑷村線杩旂殑鐘舵�併��</summary>
+      <returns>鏇存敼瀵艰嚧寰�杩旂殑鐘舵�併��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAssemblyLocator">
+      <summary>鏌ユ壘鏌愪釜绋嬪簭闆嗗苟杩斿洖鏈夊叧鍏舵ā鍧楃殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖妯″潡寮曠敤鐨勭▼搴忛泦鐨勫垪琛ㄣ��</summary>
+      <returns>妯″潡寮曠敤鐨勭▼搴忛泦鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection">
+      <summary>灏嗙敱 <see cref="T:System.Attribute" /> 瀹炵幇鐨勭鍙o紝鍙巿鏉冨鎴风杩炴帴鍒� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鏍规嵁缁欏畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext" />锛岀‘瀹氬鎴风鏄惁鏈夋潈杩炴帴鍒� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡繛鎺ュ埌鐨勯泦绾垮櫒鐨勬弿杩般��</param>
+      <param name="request">鏉ヨ嚜瀹㈡埛绔殑杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation">
+      <summary>灏嗙敱 <see cref="T:System.Attribute" /> 瀹炵幇鐨勬帴鍙o紝鍙互鎺堟潈璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+      <summary>鏍规嵁缁欏畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛岀‘瀹氬鎴风鏄惁鏈夋潈璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubIncomingInvokerContext">
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛屾彁渚涙湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶璋冪敤鐨勮缁嗕俊鎭��</param>
+      <param name="appliesToMethod">鎸囩ず鎺ュ彛瀹炰緥鏄惁鏄洿鎺ュ簲鐢ㄤ簬鏂规硶鐨勭壒鎬с��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy">
+      <summary>瀹㈡埛绔泦绾垮櫒鐨勬湇鍔″櫒绔唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IClientProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy" /> 瀹炰緥琛ㄧず鐨勮繛鎺ョ殑鏂规硶銆�</summary>
+      <returns>琛ㄧず鏁版嵁浣曟椂宸插彂閫佸埌瀹㈡埛绔殑浠诲姟銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶鐨勫悕绉�</param>
+      <param name="args">瑕佷紶閫掔粰瀹㈡埛绔殑鍙傛暟</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHub">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀轰笌杩炴帴鍒伴泦绾垮櫒鐨� SignalR 杩炴帴杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Clients">
+      <summary>鑾峰彇鎴栬缃鍦ㄨ繛鎺ュ埌闆嗙嚎鍣ㄧ殑瀹㈡埛绔��</summary>
+      <returns>姝e湪杩炴帴鍒伴泦绾垮櫒鐨勫鎴风銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Context">
+      <summary>鑾峰彇鎴栬缃湁鍏宠皟鐢ㄥ鎴风鐨勪俊鎭��</summary>
+      <returns>鏈夊叧璋冪敤瀹㈡埛绔殑淇℃伅銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Groups">
+      <summary>鑾峰彇鎴栬缃闆嗙嚎鍣ㄥ疄渚嬬殑缁勭鐞嗗櫒銆�</summary>
+      <returns>姝ら泦绾垮櫒瀹炰緥鐨勭粍绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected">
+      <summary>褰撹繛鎺ヤ笌姝ら泦绾垮櫒瀹炰緥鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず鏂紑杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず閲嶆柊杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubActivator">
+      <summary>鎻愪緵鐢ㄤ簬鍒涘缓闆嗙嚎鍣ㄥ疄渚嬬殑鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubActivator.Create(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>鍒涘缓鏂扮殑闆嗙嚎鍣ㄥ疄渚嬨��</summary>
+      <returns>鏂板垱寤虹殑闆嗙嚎鍣ㄣ��</returns>
+      <param name="descriptor">闆嗙嚎鍣ㄦ弿杩扮銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勫崟涓� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.Caller"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.Others"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.OthersInGroup(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.All">
+      <summary>鑾峰彇鎴栬缃墍鏈夎繛鎺ョ殑瀹㈡埛绔��</summary>
+      <returns>鎵�鏈夊凡杩炴帴鐨勫鎴风銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.AllExcept(System.String[])">
+      <summary>杩斿洖闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Client(System.String)">
+      <summary>杩斿洖鍏锋湁鎸囧畾杩炴帴 ID 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Clients(System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Group(System.String,System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Groups(System.Collections.Generic.IList{System.String},System.String[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.User(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider">
+      <summary>鎻忚堪闆嗙嚎鍣ㄦ弿杩扮鎻愪緵绋嬪簭锛岃绋嬪簭鎻愪緵鍙敤闆嗙嚎鍣ㄧ殑鐩稿叧淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.GetHubs">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勯泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+      <summary>灏濊瘯妫�绱㈠叿鏈夌粰瀹氬悕绉扮殑闆嗙嚎鍣ㄣ��</summary>
+      <returns>濡傛灉鎵惧埌浜嗛泦绾垮櫒锛屽垯涓� True</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="descriptor">妫�绱㈠埌鐨勬弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext">
+      <summary>婧愯嚜瀹㈡埛绔殑鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Args">
+      <summary>鑾峰彇瑕佷紶閫掔粰琚皟鐢ㄦ柟娉曠殑鍙傛暟銆�</summary>
+      <returns>瑕佷紶閫掔粰琚皟鐢ㄦ柟娉曠殑鍙傛暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Hub">
+      <summary>鑾峰彇闆嗙嚎鍣ㄥ疄渚嬶紝璇ュ疄渚嬩腑鍖呭惈鎴愬憳褰㈠紡鐨勮璋冪敤鏂规硶銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬶紝鍏朵腑鍖呭惈鎴愬憳褰㈠紡鐨勮璋冪敤鏂规硶銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.MethodDescriptor">
+      <summary>鑾峰彇瀹㈡埛绔墍璋冪敤鐨勬柟娉曠殑璇存槑銆�</summary>
+      <returns>瀹㈡埛绔墍璋冪敤鐨勬柟娉曠殑璇存槑銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.StateTracker">
+      <summary>鑾峰彇琛ㄧず璋冪敤鏃跺鎴风涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</summary>
+      <returns>琛ㄧず璋冪敤鏃跺鎴风涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubManager">
+      <summary>鎻忚堪闆嗙嚎鍣ㄧ鐞嗗櫒 - 鏁翠釜闆嗙嚎鍣ㄥ拰鏂规硶鏌ユ壘杩囩▼涓殑瑕佺偣銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHub(System.String)">
+      <summary>妫�绱㈠崟涓泦绾垮櫒鎻忚堪绗︺��</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒鎻忚堪绗︼紱鍚﹀垯涓� Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄧ粰瀹氶泦绾垮櫒涓婃绱㈠叿鏈夌粰瀹氬悕绉扮殑鏂规硶銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="method">瑕佹煡鎵剧殑鏂规硶鐨勫悕绉般��</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶鐨勫垪琛ㄣ��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="predicate">鐢ㄤ簬绛涢�夌粨鏋滅殑鍙�夎皳璇嶃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+      <summary>妫�绱笌缁欏畾璋撹瘝鍖归厤鐨勬墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勫垪琛ㄣ��</returns>
+      <param name="predicate">璋撹瘝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHub(System.String)">
+      <summary>灏嗙粰瀹氶泦绾垮櫒鍚嶇О瑙f瀽涓轰竴涓叿浣撶殑瀵硅薄銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒瀹炵幇瀹炰緥锛涘惁鍒欎负 Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHubs">
+      <summary>灏嗘墍鏈夊彲鐢ㄩ泦绾垮櫒瑙f瀽涓哄叾鍏蜂綋瀵硅薄銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬬殑鍒楄〃銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext">
+      <summary>婧愯嚜鏈嶅姟鍣ㄧ殑瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Connection">
+      <summary>鑾峰彇涓庡凡璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曪紙璇ユ柟娉曡皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曪級鐨勫鎴风瀵瑰簲鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />锛堝鏋滄湁锛夈��</summary>
+      <returns>涓庡凡璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曪紙璇ユ柟娉曡皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曪級鐨勫鎴风瀵瑰簲鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />锛堝鏋滄湁锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.ExcludedSignals">
+      <summary>鑾峰彇淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�<see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal" /> 涓轰綍鍊奸兘涓嶅簲鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+      <returns>灞炰簬鏃犺<see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal" /> 涓轰綍鍊奸兘涓嶅簲鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Invocation">
+      <summary>鑾峰彇瑕佸瀹㈡埛绔繘琛岀殑鏂规硶璋冪敤鐨勮鏄庛��</summary>
+      <returns>瑕佸瀹㈡埛绔繘琛岀殑鏂规硶璋冪敤鐨勮鏄庛��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal">
+      <summary>鑾峰彇淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥濇帴鏀舵柟娉曡皟鐢ㄧ殑瀹㈡埛绔殑淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+      <returns>灞炰簬鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signals">
+      <summary>灞炰簬鏃犺鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline">
+      <summary>鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夌殑妯″潡闆嗗悎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)">
+      <summary>灏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule" /> 娣诲姞鍒伴泦绾垮櫒绠¢亾銆傚厛娣诲姞鍒扮閬撶殑妯″潡灏嗗寘瑁呭悗娣诲姞鍒扮閬撶殑妯″潡銆傚湪璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 涓殑浠讳綍鏂规硶涔嬪墠锛屽繀椤诲厛灏嗘墍鏈夋ā鍧楁坊鍔犲埌绠¢亾銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鏈韩鍔犱笂鏂版坊鍔犵殑妯″潡浣� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 璋冪敤鍙互杩涜閾炬帴銆傛鏂规硶鍙浆鍙樿皟鐢ㄥ畠鏃舵墍浣跨敤鐨勭閬擄紝鍥犳鏃犻渶瀛樺偍鍏剁粨鏋溿��</returns>
+      <param name="pipelineModule">鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夌殑妯″潡銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker">
+      <summary>姝ゆ帴鍙g殑瀹炵幇璐熻矗鎵ц瀹屾垚鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夋墍闇�鐨勬搷浣溿��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.AuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆�</summary>
+      <returns>濡傛灉瀹㈡埛绔湁鏉冭闃呭鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡繛鎺ュ埌鐨勯泦绾垮櫒鐨勬弿杩般��</param>
+      <param name="request">鐢卞鎴风鍙戝嚭鐨勮繛鎺ヨ姹傦紝鍏朵腑搴斿寘鎷鎴风鐨� <see cref="T:System.Security.Principal.IPrincipal" /> 鐢ㄦ埛銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Connect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔墍杩炴帴鍒扮殑 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Disconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔繛鎺ュ埌鐨勬瘡涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Invoke(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曘��</summary>
+      <returns>鎻愪緵鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑杩斿洖鍊肩殑寮傛鎿嶄綔銆�</returns>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Reconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔噸鏂拌繛鎺ュ埌鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.RejoiningGroups(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String})">
+      <summary>姝ゆ柟娉曠敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>鍏佽瀹㈡埛绔噸鏂板姞鍏ョ殑缁勭殑鍒楄〃銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曢噸鏂板姞鍏ュ叾缁勭殑闆嗙嚎鍣ㄧ殑鎻忚堪銆�</param>
+      <param name="request">鐢卞皾璇曢噸鏂板姞鍏ョ粍鐨勫鎴风鍙戝嚭鐨勯噸鏂拌繛鎺ヨ姹傘��</param>
+      <param name="groups">瀹㈡埛绔湪閲嶆柊杩炴帴涔嬪墠澹扮О鏄叾鎴愬憳鐨勭粍鐨勫垪琛紝灞炰簬鐩稿叧闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Send(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule" /> 鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紝濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍銆傚彲浠ラ�氳繃璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 鏉ユ縺娲昏繖浜涙ā鍧椼�傛坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勭粍鍚堟ā鍧楁槸閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 鎺ュ彛璋冪敤鐨勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="connect">瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔墍杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="disconnect">瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</summary>
+      <returns>鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫凡鍖呰鍑芥暟銆�</returns>
+      <param name="send">鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="reconnect">瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁扮敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>涓�涓凡鍖呰鍑芥暟锛岀敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涚粍銆�</returns>
+      <param name="rejoiningGroups">涓�涓嚱鏁帮紝鐢ㄤ簬纭畾搴斿厑璁稿鎴风閲嶆柊鍔犲叆鍝簺缁勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser">
+      <summary>閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 澶勭悊鍒嗘瀽浼犲叆璇锋眰銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser.Parse(System.String,Newtonsoft.Json.JsonSerializer)">
+      <summary>灏嗕紶鍏ラ泦绾垮櫒璐熻浇鍒嗘瀽涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" />銆�</summary>
+      <returns>鐢熸垚鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" />銆�</returns>
+      <param name="data">鍘熷闆嗙嚎鍣ㄨ礋杞姐��</param>
+      <param name="serializer">鐢ㄤ簬鍒嗘瀽鏁版嵁鐨� JsonSerializer銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier">
+      <summary>鍚堝苟銆佺缉鍑忓拰缂撳瓨闆嗙嚎鍣ㄧ殑 JavaScript銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier.Minify(System.String)">
+      <summary>缂╁噺 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier" /> 鐨勬寚瀹氭簮銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier" /> 鐨勬寚瀹氭簮銆�</returns>
+      <param name="source">缂╁噺鐨勬簮銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator">
+      <summary>涓� JavaScript 鎺ュ彛鐢熸垚浠g悊鏈嶅姟銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator" /> 鐨勬湇鍔� URL 鐢熸垚浠g悊銆�</summary>
+      <returns>鐢ㄤ簬鐢熸垚 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator" /> 鐨勬湇鍔� URL 鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">URL 鐨勬湇鍔°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider">
+      <summary>鎻忚堪鐢ㄤ簬鐢熸垚缁欏畾闆嗙嚎鍣ㄤ笂鐨勫彲鐢ㄦ柟娉曢泦鍚堢殑闆嗙嚎鍣ㄦ柟娉曟彁渚涚▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>妫�绱㈢粰瀹氶泦绾垮櫒涓婄殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶銆�</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>灏濊瘯妫�绱㈡柟娉曘��</summary>
+      <returns>濡傛灉鎵惧埌浜嗘柟娉曪紝鍒欎负 True銆�</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮瀵硅薄</param>
+      <param name="method">鏂规硶鐨勫悕绉般��</param>
+      <param name="descriptor">濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 Null銆�</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IParameterResolver">
+      <summary>鎻忚堪涓�涓彲鍩轰簬鎻愪緵鐨勪俊鎭В鏋愪笌鍙傛暟鍖归厤鐨勫�肩殑鍙傛暟瑙f瀽绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愭柟娉曞弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊肩殑鏁扮粍銆�</returns>
+      <param name="method">鏂规硶鎻忚堪绗︺��</param>
+      <param name="values">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊肩殑鍒楄〃銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄦ柟娉曠殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Attributes">
+      <summary>鑾峰彇鎴栬缃檮鍔犲埌姝ゆ柟娉曠殑鐗规�с��</summary>
+      <returns>闄勫姞鍒版鏂规硶鐨勭壒鎬с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Hub">
+      <summary>鑾峰彇闆嗙嚎鍣ㄦ弿杩扮瀵硅薄锛屽嵆姝ゆ柟娉曠殑鐩爣銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮瀵硅薄锛屽嵆姝ゆ柟娉曠殑鐩爣銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Invoker">
+      <summary>鑾峰彇鎴栬缃柟娉曡皟鐢ㄥ鎵樸�備娇鐢ㄧ洰鏍囬泦绾垮櫒鍜岃皟鐢ㄥ弬鏁版暟缁勪綔涓哄畠鐨勫弬鏁般��</summary>
+      <returns>鏂规硶璋冪敤濮旀墭銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Parameters">
+      <summary>鑾峰彇鎴栬缃彲鐢ㄧ殑鏂规硶鍙傛暟銆�</summary>
+      <returns>鍙敤鐨勬柟娉曞弬鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.ReturnType">
+      <summary>鑾峰彇鎴栬缃鏂规硶鐨勮繑鍥炵被鍨嬨��</summary>
+      <returns>姝ゆ柟娉曠殑杩斿洖绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodExtensions">
+      <summary>琛ㄧず SignalR 闆嗙嚎鍣ㄧ殑鏂规硶鎵╁睍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MethodExtensions.Matches(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鎸囧畾鏂规硶鎵╁睍鏄惁涓庡叾浠栨柟娉曟弿杩扮鍖归厤銆�</summary>
+      <returns>濡傛灉鏂规硶鎵╁睍涓庡叾浠栨柟娉曟弿杩扮鍖归厤锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="methodDescriptor">鏂规硶鎻忚堪绗︺��</param>
+      <param name="parameters">鍙傛暟鍒楄〃銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.Collections.Generic.IList{System.String},System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.GetInvocationData(System.String,System.Object[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.Invoke(System.String,System.Object[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException">
+      <summary>琛ㄧず褰撳鎴风鏃犳潈杩炴帴鍒伴泦绾垮櫒鏃跺紩鍙戠殑寮傚父銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+      <summary>浣跨敤搴忓垪鍖栨暟鎹垵濮嬪寲 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="info">鏈夊叧寮傚父鐨勫簭鍒楀寲淇℃伅銆�</param>
+      <param name="context">鏈夊叧婧愭垨鐩爣鐨勪笂涓嬫枃淇℃伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.String)">
+      <summary>浣跨敤閿欒娑堟伅鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="message">鏈夊叧寮傚父鐨勬秷鎭��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.String,System.Exception)">
+      <summary>浣跨敤閿欒娑堟伅鍜屽唴閮ㄥ紓甯稿垵濮嬪寲 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="message">鏈夊叧寮傚父鐨勬秷鎭��</param>
+      <param name="inner">瀵艰嚧寮傚父鐨勯敊璇��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier">
+      <summary>琛ㄧず鍊间负 null 鐨� Javascript 缂╁噺绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.Instance">
+      <summary>鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier" /> 瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.Minify(System.String)">
+      <summary>缂╁噺 Javascript 鐨勬寚瀹氭簮銆�</summary>
+      <returns>缂╁噺鐨勬簮銆�</returns>
+      <param name="source">瑕佺缉鍑忕殑婧愩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor">
+      <summary>Provides details about the null method.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.#ctor(System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor" /> class.</summary>
+      <param name="methodName">The name for this null method.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Attributes">
+      <summary>Gets or sets the attributes attached to this method.</summary>
+      <returns>The attributes attached to this method.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Invoker">
+      <summary>Gets or sets the method invocation delegate. Takes a target hub and an array of invocation arguments as it's arguments.</summary>
+      <returns>The method invocation delegate.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Parameters">
+      <summary>Gets or sets the available method parameters.</summary>
+      <returns>The available method parameters.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄦ柟娉曞弬鏁扮殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.Name">
+      <summary>鑾峰彇鎴栬缃弬鏁板悕绉般��</summary>
+      <returns>鍙傛暟鍚嶇О銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.ParameterType">
+      <summary>鑾峰彇鎴栬缃弬鏁扮被鍨嬨��</summary>
+      <returns>鍙傛暟绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider">
+      <summary>鎻忚堪闆嗙嚎鍣ㄦ弿杩扮鎻愪緵绋嬪簭锛屽苟鎻愪緵鏈夊叧鍙敤闆嗙嚎鍣ㄧ殑鍙嶅皠淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.BuildHubsCache">
+      <summary>妫�绱㈢敤浜庣敓鎴愰泦绾垮櫒缂撳瓨鐨勮繛鎺ラ泦鍚堛��</summary>
+      <returns>鐢ㄤ簬鐢熸垚闆嗙嚎鍣ㄧ紦瀛樼殑杩炴帴闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.GetHubs">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>鍙敤闆嗙嚎鍣ㄧ殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+      <summary>灏濊瘯妫�绱㈠叿鏈夌粰瀹氬悕绉扮殑闆嗙嚎鍣ㄣ��</summary>
+      <returns>濡傛灉鎵惧埌浜嗛泦绾垮櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubName">瑕佹绱㈢殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="descriptor">姝ゆ柟娉曡繑鍥炴椂锛屽皢鍖呭惈妫�绱㈠埌鐨勬弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider">
+      <summary>琛ㄧず鎻忚堪绗︽彁渚涚▼搴忕殑鍙嶅皠鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>杩斿洖鎻愪緵绋嬪簭鐨勬柟娉曢泦鍚堛��</summary>
+      <returns>鎻愪緵绋嬪簭鐨勬柟娉曢泦鍚堛��</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄦ寚瀹氱殑 <paramref name="hub" /> 涓悳绱㈡寚瀹氱殑 <paramref name="method" />銆�</summary>
+      <returns>濡傛灉鍦ㄩ泦绾垮櫒涓壘鍒颁笌鍚嶇О/鍙傛暟闆嗗尮閰嶇殑鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瑕佸湪鍏朵腑鎼滅储鎸囧畾 <paramref name="method" /> 鐨勯泦绾垮櫒銆�</param>
+      <param name="method">瑕佹悳绱㈢殑鏂规硶鍚嶃��</param>
+      <param name="descriptor">濡傛灉鎴愬姛锛屽垯涓哄凡瑙f瀽鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor" />銆�</param>
+      <param name="parameters">灏嗙敤浜庡府鍔╂煡鎵炬寚瀹� <paramref name="method" /> 鐨勭壒瀹氶噸杞界殑鍙傛暟闆嗐��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper">
+      <summary>琛ㄧず鍙嶅皠甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper.GetAttributeValue``2(System.Reflection.ICustomAttributeProvider,System.Func{``0,``1})">
+      <summary>鑾峰彇姝ゅ府鍔╁櫒鐨勭壒鎬у�笺��</summary>
+      <returns>姝ゅ府鍔╁櫒鐨勭壒鎬у�笺��</returns>
+      <param name="source">瑕佷粠涓幏鍙栧�肩殑婧愩��</param>
+      <param name="valueGetter">鍊� getter銆�</param>
+      <typeparam name="TAttribute">鐗规�х殑绫诲瀷銆�</typeparam>
+      <typeparam name="TResult">缁撴灉鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper.GetExportedHubMethods(System.Type)">
+      <summary>鑾峰彇宸插鍑洪泦绾垮櫒鏂规硶鐨勫垪琛ㄣ��</summary>
+      <returns>宸插鍑虹殑闆嗙嚎鍣ㄦ柟娉曠殑鍒楄〃銆�</returns>
+      <param name="type">瑕佽幏鍙栫殑鏂规硶鐨勭被鍨嬨��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑淇″彿浠g悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Connection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.GetInvocationData(System.String,System.Object[])">
+      <summary>鑾峰彇涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</summary>
+      <returns>涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</returns>
+      <param name="method">鏂规硶銆�</param>
+      <param name="args">鍙傛暟銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.HubName">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勫悕绉般��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鏂规硶骞惰繑鍥炴柟娉曡皟鐢ㄧ殑缁撴灉銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶銆�</param>
+      <param name="args">鍙傛暟鐨勬暟缁勩��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Invoker"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Signal">
+      <summary>鑾峰彇鎴栬缃笌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy" /> 鍏宠仈鐨勪俊鍙枫��</summary>
+      <returns>涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy" /> 鍏宠仈鐨勪俊鍙枫��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬璋冪敤鎴愬憳鐨勬搷浣滅殑瀹炵幇銆�</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧鍔ㄦ�佹搷浣滅殑淇℃伅銆�</param>
+      <param name="args">鍦ㄨ皟鐢ㄦ搷浣滄湡闂翠紶閫掔粰瀵硅薄鎴愬憳鐨勫弬鏁般��</param>
+      <param name="result">鎴愬憳璋冪敤鐨勭粨鏋溿��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker">
+      <summary>琛ㄧず鏇存敼璺熻釜瀛楀吀銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="values">瀛楀吀鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.GetChanges">
+      <summary>鑾峰彇涓庤窡韪▼搴忓叧鑱旂殑鏇存敼銆�</summary>
+      <returns>涓庤窡韪▼搴忓叧鑱旂殑鏇存敼銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.Item(System.String)">
+      <summary>鑾峰彇鎴栬缃笌浣跨敤鎸囧畾閿殑璺熻釜绋嬪簭鍏宠仈鐨勯」銆�</summary>
+      <returns>涓庝娇鐢ㄦ寚瀹氶敭鐨勮窡韪▼搴忓叧鑱旂殑椤广��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑鐘舵�佷俊鍙蜂唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.GetInvocationData(System.String,System.Object[])">
+      <summary>鑾峰彇涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</summary>
+      <returns>涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</returns>
+      <param name="method">鏂规硶銆�</param>
+      <param name="args">鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
+      <summary>鎻愪緵鐢ㄤ簬璁剧疆鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="value">set 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.UserProxy"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.UserProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler">
+      <summary>琛ㄧず鐢ㄤ簬澶勭悊搴旂敤璁よ瘉宸ュ叿鍖� (ACK) 鐨勫疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="completeAcksOnTimeout">濡傛灉 ACK 鍦ㄨ秴鏃舵椂宸插畬鎴愶紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+      <param name="ackThreshold">ACK 闃堝�笺��</param>
+      <param name="ackInterval">ACK 闂撮殧銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.CreateAck(System.String)">
+      <summary>鍒涘缓鏂扮殑 ACK 瀵硅薄銆�</summary>
+      <returns>鍒涘缓鐨� ACK 瀵硅薄銆�</returns>
+      <param name="id">鏍囪瘑绗︺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.Dispose(System.Boolean)">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.TriggerAck(System.String)">
+      <summary>瑙﹀彂鎸囧畾鐨� ACK 瀵硅薄銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="id">ACK 鏍囪瘑绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader">
+      <summary>琛ㄧず涓庢暟缁勬鍏宠仈鐨勬枃鏈鍙栧櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader.#ctor(System.ArraySegment{System.Byte},System.Text.Encoding)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="buffer">鏁扮粍娈电紦鍐插尯銆�</param>
+      <param name="encoding">缂栫爜銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader.Read(System.Char[],System.Int32,System.Int32)">
+      <summary>浠庡綋鍓嶈鍙栧櫒涓鍙栨寚瀹氱殑鏈�澶у瓧绗︽暟锛屽苟浠庢寚瀹氱殑绱㈠紩澶勫紑濮嬶紝灏嗘暟鎹啓鍏ョ紦鍐插尯銆�</summary>
+      <returns>宸茶鍙栫殑瀛楃鏁般��</returns>
+      <param name="buffer">鍖呭惈鍏锋湁绱㈠紩涔嬮棿鐨勫�肩殑鎸囧畾瀛楃鏁扮粍锛岃繖浜涘瓧绗﹀皢鏇挎崲涓轰粠褰撳墠婧愯鍙栫殑瀛楃銆�</param>
+      <param name="index">缂撳啿鍖轰腑寮�濮嬪啓鍏ョ殑浣嶇疆銆�</param>
+      <param name="count">瑕佽鍙栫殑鏈�澶у瓧绗︽暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Connection">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.#ctor(Microsoft.AspNet.SignalR.Messaging.IMessageBus,Newtonsoft.Json.JsonSerializer,System.String,System.String,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IAckHandler,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Infrastructure.IProtectedData)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.Connection" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="newMessageBus">鏂版秷鎭�荤嚎銆�</param>
+      <param name="jsonSerializer">json 搴忓垪鍖栫▼搴忋��</param>
+      <param name="baseSignal">鍩烘湰淇″彿銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+      <param name="signals">淇″彿闆嗗悎銆�</param>
+      <param name="groups">缁勯泦鍚堛��</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+      <param name="ackHandler">ack 澶勭悊绋嬪簭銆�</param>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="protectedData">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.DefaultSignal">
+      <summary>鑾峰彇姝よ繛鎺ョ殑涓昏淇″彿銆�</summary>
+      <returns>姝よ繛鎺ョ殑涓昏淇″彿銆�</returns>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Infrastructure.Connection.EventKeyAdded">
+      <summary>鍦ㄤ簨浠舵坊鍔犱簡鏌愪釜閿椂鍙戠敓銆�</summary>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Infrastructure.Connection.EventKeyRemoved">
+      <summary>鍦ㄤ簨浠跺垹闄や簡璇ラ敭鏃跺彂鐢熴��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Identity">
+      <summary>鑾峰彇姝よ繛鎺ョ殑鏍囪瘑灞炴�с��</summary>
+      <returns>姝よ繛鎺ョ殑鏍囪瘑灞炴�с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Microsoft#AspNet#SignalR#Messaging#ISubscriber#EventKeys">
+      <summary>鑾峰彇鍙敱绱㈠紩鍗曠嫭璁块棶鐨勫璞$殑鍒楄〃銆�</summary>
+      <returns>鍙敱绱㈠紩鍗曠嫭璁块棶鐨勫璞$殑鍒楄〃銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.Receive(System.String,System.Func{Microsoft.AspNet.SignalR.Transports.PersistentResponse,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>鎺ユ敹杩炴帴鏂规硶鐨勬秷鎭搷搴斻��</summary>
+      <returns>瑕佹帴鏀剁殑杩炴帴鏂规硶鐨勬秷鎭搷搴斻��</returns>
+      <param name="messageId">娑堟伅 id銆�</param>
+      <param name="callback">纭畾杩炴帴鏄惁杩涜鍥炶皟鍝嶅簲銆�</param>
+      <param name="maxMessages">娑堟伅鐨勬渶澶ф暟鐩��</param>
+      <param name="state">杩炴帴鐘舵�併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+      <summary>灏嗘煇涓秷鎭彂閫佸埌涓�涓垨澶氫釜杩炴帴銆�</summary>
+      <returns>鍙戦�佸埌涓�涓垨澶氫釜杩炴帴鐨勬秷鎭��</returns>
+      <param name="message">娑堟伅鍙戦�佺殑杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Subscription">
+      <summary>鑾峰彇鎴栬缃杩炴帴灞炴�х殑璁㈤槄銆�</summary>
+      <returns>姝よ繛鎺ュ睘鎬х殑璁㈤槄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.WriteCursor">
+      <summary>鑾峰彇鎴栬缃厜鏍囦互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒椼��</summary>
+      <returns>鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑鍏夋爣銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager">
+      <summary>鎻愪緵榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnection(System.Type)">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <param name="type">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnectionContext``1">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1">
+      <summary>杩斿洖姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</summary>
+      <returns>姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</returns>
+      <typeparam name="T">闆嗙嚎鍣ㄧ殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(System.String)">
+      <summary>杩斿洖姝よ繛鎺ョ殑鍏锋湁鎸囧畾鍚嶇О鐨勯泦绾垮櫒涓婁笅鏂囥��</summary>
+      <returns>姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData">
+      <summary>鎻愪緵鐢ㄤ簬淇濇姢鏁版嵁鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtectionProvider)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="provider">鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍒犻櫎瀵规寚瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData">
+      <summary>鎻愪緵鐢ㄤ簬淇濇姢鏁版嵁鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍒犻櫎瀵规寚瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀虹敤浜庡鐞嗗簲鐢ㄨ璇佸伐鍏峰寘 (ACK) 鐨勫疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler.CreateAck(System.String)">
+      <summary>鍒涘缓鏂扮殑 ACK 瀵硅薄銆�</summary>
+      <returns>鍒涘缓鐨� ACK 瀵硅薄銆�</returns>
+      <param name="id">鏍囪瘑绗︺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler.TriggerAck(System.String)">
+      <summary>瑙﹀彂鎸囧畾鐨� ACK 瀵硅薄銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="id">ACK 鏍囪瘑绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter">
+      <summary>Represents the base interface for class that has the ability to write raw binary data.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter.Write(System.ArraySegment{System.Byte})">
+      <summary>Writes raw binary data to underlying stream.</summary>
+      <param name="data">The raw binary data to write.</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager">
+      <summary>鎻愪緵瀵归泦绾垮櫒鍜屾寔涔呮�ц繛鎺ヤ笌寮曠敤鐨勮闂��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetConnectionContext``1">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1">
+      <summary>杩斿洖涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</summary>
+      <returns>涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</returns>
+      <typeparam name="T">闆嗙嚎鍣ㄧ殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext(System.String)">
+      <summary>杩斿洖涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</summary>
+      <returns>涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.InterlockedHelper">
+      <summary>琛ㄧず瀵圭敱澶氫釜绾跨▼鍏变韩鐨勫彉閲忔墽琛屽師瀛愭搷浣滅殑甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.InterlockedHelper.CompareExchangeOr(System.Int32@,System.Int32,System.Int32,System.Int32)">
+      <summary>姣旇緝寮曠敤鐩哥瓑鐨勪袱涓璞℃槸鍚︾浉绛夈��</summary>
+      <returns>濡傛灉涓や釜瀵硅薄鐩哥瓑锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="location">涓庢瘮杈冨璞℃瘮杈冨苟鍙兘琚浛鎹㈢殑鐩爣瀵硅薄銆�</param>
+      <param name="value">姣旇緝缁撴灉鐩哥瓑鏃舵浛鎹㈢洰鏍囧璞$殑瀵硅薄銆�</param>
+      <param name="comparandA">绗竴涓瘮杈冨璞°��</param>
+      <param name="comparandB">绗簩涓瘮杈冨璞°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Close">
+      <summary>鍏抽棴鎬ц兘璁℃暟鍣紝骞堕噴鏀剧敱姝ゆ�ц兘璁℃暟鍣ㄥ疄渚嬪垎閰嶇殑鎵�鏈夎祫婧愩��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.CounterName"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Decrement">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滐紝灏嗗叧鑱旂殑鎬ц兘璁℃暟鍣ㄥ噺鍘讳竴銆�</summary>
+      <returns>鍑忓皯鐨勮鏁板櫒鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Increment">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滐紝灏嗗叧鑱旂殑鎬ц兘璁℃暟鍣ㄥ姞涓婁竴銆�</summary>
+      <returns>澧炲姞鐨勮鏁板櫒鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.IncrementBy(System.Int64)">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滄寜鎸囧畾鐨勯噺澧炲姞鎴栧噺灏戝叧鑱旂殑鎬ц兘璁℃暟鍣ㄧ殑鍊笺��</summary>
+      <returns>鏂拌鏁板櫒鍊笺��</returns>
+      <param name="value">瑕侀�掑鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.NextSample">
+      <summary>鑾峰彇璁℃暟鍣ㄧず渚嬶紝骞朵负鍏惰繑鍥炲師濮嬬殑鎴栨湭璁$畻鐨勫�笺��</summary>
+      <returns>杩斿洖璁℃暟鍣ㄧず渚嬶紝骞朵负鍏惰繑鍥炲師濮嬬殑鎴栨湭璁$畻鐨勫�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.RawValue">
+      <summary>鑾峰彇鎴栬缃璁℃暟鍣ㄧ殑鍘熷鐨勬垨鏈绠楃殑鍊笺��</summary>
+      <returns>璁℃暟鍣ㄧ殑鍘熷鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.RemoveInstance">
+      <summary>鍒犻櫎鐢� PerformanceCounter 瀵硅薄 InstanceName 灞炴�ф寚瀹氱殑绫诲埆瀹炰緥銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager">
+      <summary>鎻愪緵瀵规�ц兘璁℃暟鍣ㄧ殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夋瘡绉掓帴鏀剁殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鎺ユ敹鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夋瘡绉掑彂閫佺殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鍙戦�佺殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsConnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滆繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrent">
+      <summary>鑾峰彇琛ㄧず褰撳墠宸茶繛鎺ョ殑杩炴帴鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsDisconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滄柇寮�杩炴帴鈥濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsReconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滈噸鏂拌繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕澶勭悊鐨勬墍鏈夐敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑鎵�鏈夐敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨВ鏋愰敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨВ鏋愰敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕浼犺緭閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑浼犺緭閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栨�ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="instanceName">涓绘満瀹炰緥鍚嶃��</param>
+      <param name="hostShutdownToken">琛ㄧず涓绘満鍏抽棴鐨� CancellationToken銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+      <summary>鍔犺浇鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="categoryName">绫诲埆鍚嶇О銆�</param>
+      <param name="counterName">璁℃暟鍣ㄥ悕绉般��</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="isReadOnly">璁℃暟鍣ㄦ槸鍚︿负鍙銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusAllocatedWorkers">
+      <summary>鑾峰彇琛ㄧず鍒嗛厤鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusBusyWorkers">
+      <summary>鑾峰彇琛ㄧず褰撳墠蹇欎簬鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鍙戝竷鍒版秷鎭�荤嚎鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂甯冨埌娑堟伅鎬荤嚎鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず璁㈡埛姣忕鎺ユ敹鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ鎴锋敹鍒扮殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎鐨勫綋鍓嶈鎴锋暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersPerSec">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎姣忕鐨勬柊璁㈡埛鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ユ秷鎭�荤嚎鐨勮鎴锋�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusTopicsCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎涓殑褰撳墠涓婚鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鎵╁睍閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂鐢熺殑鎵╁睍閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず鎵╁睍娑堟伅鎬荤嚎姣忕鏀跺埌鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutSendQueueLength">
+      <summary>鑾峰彇琛ㄧず褰撳墠鎵╁睍鍙戦�侀槦鍒楅暱搴︾殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountBuffering">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庣紦鍐茬姸鎬佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountOpen">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庢墦寮�鐘舵�佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountTotal">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData">
+      <summary>琛ㄧず涓�涓帴鍙o紝璇ユ帴鍙f彁渚涚殑鏂规硶鐢ㄤ簬鍔犲瘑鍜岃В瀵嗕笌 SignalR 鍩虹缁撴瀯鍏宠仈鐨勬暟鎹��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData.Unprotect(System.String,System.String)">
+      <summary>瑙i櫎瀵圭壒瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">瑕佸彇娑堜繚鎶ょ殑鍙椾繚鎶ゅ�笺��</param>
+      <param name="purpose">瑙i櫎淇濇姢鐨勫師鍥犮��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager">
+      <summary>鐢熸垚鏈嶅姟鍣� ID</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager.ServerId">
+      <summary>鏈嶅姟鍣ㄧ殑 ID銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀虹敤浜庡噺灏忓瓧绗︿覆澶у皬鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)">
+      <summary>浠ユ <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥鍙互鍙嶈浆鐨勬柟寮忕缉鍑忓瓧绗︿覆銆�</summary>
+      <returns>
+        <paramref name="value" /> 鐨勭缉鍑忚〃绀哄舰寮忥紝涓嶅寘鍚互涓嬪瓧绗︼細,|\</returns>
+      <param name="value">瑕佺缉鍑忕殑瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)">
+      <summary>璋冪敤姝ゅ嚱鏁版寚绀哄皢鏉ュ浠ュ墠浠� <paramref name="value" /> 缂╁噺鐨勫瓧绗︿覆杩涜鍙栨秷缂╁噺灏濊瘯鏃讹紝鍙兘浼氶亣鍒扮┖杩斿洖鍊笺�傝繖鏄竴涓竻鐞嗗紩鐢� <paramref name="value" /> 鐨勪换浣曞唴閮ㄦ暟鎹粨鏋勭殑鏈轰細銆�</summary>
+      <param name="value">浠ュ墠鍙兘宸茬缉鍑忕殑瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)">
+      <summary>鍙嶈浆 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 璋冪敤锛屼互鍓嶈嚦灏戝姝� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥鎵ц杩囦竴娆¤璋冪敤锛屼笖鍚庢潵鏈皟鐢ㄤ笌杩斿洖 <paramref name="value" /> 鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 璋冪敤鍏变韩鍚屼竴鍙傛暟鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)" />銆�</summary>
+      <returns>浠ュ墠瀵� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 杩涜鐨勮繑鍥� <paramref name="value" /> 鐨勬墍鏈夎皟鐢ㄧ殑鍙傛暟銆傚鏋滃湪姝� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥涓 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 杩涜鐨勬瘡涓皟鐢ㄩ兘浠庢湭杩斿洖 <paramref name="value" /> 鎴栬�呭浜庤繑鍥� <paramref name="value" /> 鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 鐨勬渶鏂拌皟鐢ㄥ悗璺熷鍏变韩鍚屼竴鍙傛暟鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)" /> 鐨勮皟鐢紝鍒� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)" /> 鍙兘杩斿洖绌哄�硷紝浣嗕笉寰楀紩鍙戙��</returns>
+      <param name="value">浠ュ墠璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 鏃惰繑鍥炵殑缂╁噺瀛楃涓层��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager">
+      <summary>浣跨敤 Windows 鎬ц兘璁℃暟鍣ㄧ鐞嗘�ц兘璁℃暟鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.DefaultDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">榛樿鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.CategoryName">
+      <summary>涓烘鎬ц兘璁℃暟鍣ㄦ寚瀹氭�ц兘璁℃暟鍣ㄧ被鍒殑鍚嶇О銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夋瘡绉掓帴鏀剁殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鎺ユ敹鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夋瘡绉掑彂閫佺殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鍙戦�佺殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsConnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滆繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrent">
+      <summary>鑾峰彇琛ㄧず褰撳墠宸茶繛鎺ョ殑杩炴帴鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsDisconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滄柇寮�杩炴帴鈥濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsReconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滈噸鏂拌繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕澶勭悊鐨勬墍鏈夐敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑鎵�鏈夐敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨВ鏋愰敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨВ鏋愰敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕浼犺緭閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑浼犺緭閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栨�ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="instanceName">涓绘満瀹炰緥鍚嶃��</param>
+      <param name="hostShutdownToken">琛ㄧず涓绘満鍏抽棴鐨� CancellationToken銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+      <summary>鍔犺浇鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="categoryName">绫诲埆鍚嶇О銆�</param>
+      <param name="counterName">璁℃暟鍣ㄥ悕绉般��</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="isReadOnly">濡傛灉璁℃暟鍣ㄦ槸鍙鐨勶紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusAllocatedWorkers">
+      <summary>鑾峰彇琛ㄧず鍒嗛厤鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusBusyWorkers">
+      <summary>鑾峰彇琛ㄧず褰撳墠蹇欎簬鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鍙戝竷鍒版秷鎭�荤嚎鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂甯冨埌娑堟伅鎬荤嚎鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず璁㈡埛姣忕鎺ユ敹鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ鎴锋敹鍒扮殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎鐨勫綋鍓嶈鎴锋暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersPerSec">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎姣忕鐨勬柊璁㈡埛鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ユ秷鎭�荤嚎鐨勮鎴锋�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusTopicsCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎涓殑褰撳墠涓婚鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鎵╁睍閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂鐢熺殑鎵╁睍閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず鎵╁睍娑堟伅鎬荤嚎姣忕鏀跺埌鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutSendQueueLength">
+      <summary>鑾峰彇琛ㄧず褰撳墠鎵╁睍鍙戦�侀槦鍒楅暱搴︾殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountBuffering">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庣紦鍐茬姸鎬佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountOpen">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庢墦寮�鐘舵�佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountTotal">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider.GetUserId(Microsoft.AspNet.SignalR.IRequest)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver">
+      <summary>Provides method for resolving protocol.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.#ctor(System.Version,System.Version)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver" /> class.</summary>
+      <param name="min">The minimum version of the protocol to resolve.</param>
+      <param name="max">The maximum version of the protocol to resolve.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.Resolve(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>Resolves the protocol in the specified SignalR request.</summary>
+      <param name="request">The request to resolve.</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Purposes">
+      <summary>鎸囧畾鐩殑甯搁噺銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.Purposes.ConnectionToken">
+      <summary>ConnectionToken 甯搁噺銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.Purposes.Groups">
+      <summary>Groups 甯搁噺銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ServerCommandType">
+      <summary>鎸囧畾鏈嶅姟鍣ㄥ懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.ServerCommandType.RemoveConnection">
+      <summary>RemoveConnection 鍛戒护銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager">
+      <summary>榛樿 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager.ServerId">
+      <summary>鑾峰彇鎴栬缃湇鍔″櫒鐨� ID銆�</summary>
+      <returns>鏈嶅姟鍣ㄧ殑 ID銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.IJsonValue">
+      <summary>琛ㄧず涓�涓� JSON 鍊笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.CanConvertTo(System.Type)">
+      <summary>灏嗗弬鏁板�艰浆鎹负鎸囧畾鐨� <see cref="T:System.Type" />銆�</summary>
+      <returns>杞崲鍚庣殑鍙傛暟鍊笺��</returns>
+      <param name="type">瑕佸皢鍙傛暟杞崲鎴愮殑 <see cref="T:System.Type" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.ConvertTo(System.Type)">
+      <summary>灏嗗弬鏁板�艰浆鎹负鎸囧畾鐨� <see cref="T:System.Type" />銆�</summary>
+      <returns>杞崲鍚庣殑鍙傛暟鍊笺��</returns>
+      <param name="type">瑕佸皢鍙傛暟杞崲鎴愮殑 <see cref="T:System.Type" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.IJsonWritable">
+      <summary>瀹炵幇鍙鐞嗚嚜宸辩殑鍒� JSON 鐨勫簭鍒楀寲銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonWritable.WriteJson(System.IO.TextWriter)">
+      <summary>閫氳繃 <see cref="T:System.IO.TextWriter" /> 灏嗚嚜韬簭鍒楀寲涓� JSON銆�</summary>
+      <param name="writer">鎺ユ敹 JSON 搴忓垪鍖栧璞$殑 <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions">
+      <summary>
+        <see cref="T:Newtonsoft.Json.JsonSerializer" /> 鐨勬墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.ArraySegment{System.Byte},System.Text.Encoding)">
+      <summary>灏� JSON 鍙嶅簭鍒楀寲涓� .NET 瀵硅薄銆�</summary>
+      <returns>浠� JSON 瀛楃涓插弽搴忓垪鍖栧悗鐨勫璞°��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="jsonBuffer">瑕佸弽搴忓垪鍖栫殑 JSON 缂撳啿鍖�</param>
+      <param name="encoding">瑕佷娇鐢ㄧ殑缂栫爜銆�</param>
+      <typeparam name="T">瑕佸弽搴忓垪鍖栫殑瀵硅薄鐨� <see cref="T:System.Type" />銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.String)">
+      <summary>灏� JSON 鍙嶅簭鍒楀寲涓� .NET 瀵硅薄銆�</summary>
+      <returns>浠� JSON 瀛楃涓插弽搴忓垪鍖栧悗鐨勫璞°��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="json">瑕佸弽搴忓垪鍖栫殑 JSON</param>
+      <typeparam name="T">瑕佸弽搴忓垪鍖栫殑瀵硅薄鐨� <see cref="T:System.Type" />銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Serialize(Newtonsoft.Json.JsonSerializer,System.Object,System.IO.TextWriter)">
+      <summary>灏嗘寚瀹氱殑瀵硅薄搴忓垪鍖栦负 <see cref="T:System.IO.TextWriter" />銆�</summary>
+      <param name="serializer">JSON 搴忓垪鍖栫▼搴�</param>
+      <param name="value">瑕佸簭鍒楀寲鐨勫璞�</param>
+      <param name="writer">瑕佸皢瀵硅薄搴忓垪鍖栦负鐨� <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Stringify(Newtonsoft.Json.JsonSerializer,System.Object)">
+      <summary>灏嗘寚瀹氱殑瀵硅薄搴忓垪鍖栦负 JSON 瀛楃涓层��</summary>
+      <returns>瀵硅薄鐨� JSON 瀛楃涓茶〃绀哄舰寮忋��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="value">瑕佸簭鍒楀寲鐨勫璞°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.JsonUtility">
+      <summary> 甯歌 JSON 鎿嶄綔鐨勫府鍔╁櫒绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CamelCase(System.String)">
+      <summary>灏嗘寚瀹氱殑鍚嶇О杞崲涓烘贩鍚堝ぇ灏忓啓鏍煎紡銆�</summary>
+      <returns>鎸囧畾鐨� <paramref name="name" /> 鐨勬贩鍚堝ぇ灏忓啓鏍煎紡鍊笺��</returns>
+      <param name="name">瑕佽浆鎹㈢殑鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializer">
+      <summary>浣跨敤榛樿璁剧疆鍒涘缓涓�涓� <see cref="T:Newtonsoft.Json.JsonSerializer" /> 瀹炰緥銆�</summary>
+      <returns>鏂板缓鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializerSettings">
+      <summary>鍒涘缓榛樿鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" /> 瀹炰緥銆�</summary>
+      <returns>鏂板缓鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateJsonpCallback(System.String,System.String)">
+      <summary>鍒涘缓 JSONP 鍥炶皟銆�</summary>
+      <returns>琛ㄧず鍥炶皟鐨� <see cref="T:System.String" />銆�</returns>
+      <param name="callback">瑕佸垱寤虹殑鍥炶皟銆�</param>
+      <param name="payload">璐熻浇銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JavaScriptMimeType">
+      <summary>鑾峰彇 Javascript 鐨� MIME 绫诲瀷銆�</summary>
+      <returns>Javascript 鐨� MIME 绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JsonMimeType">
+      <summary>鑾峰彇姝� JSON 瀹炵敤宸ュ叿鐨� MIME 绫诲瀷銆�</summary>
+      <returns>姝� JSON 瀹炵敤宸ュ叿鐨� MIME 绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Command">
+      <summary>琛ㄧず缁撳悎 SignalR 娑堟伅浣跨敤鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Command.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Command" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.CommandType">
+      <summary>鑾峰彇鎴栬缃懡浠ょ殑绫诲瀷銆�</summary>
+      <returns>鍛戒护鐨勭被鍨嬨��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.Id">
+      <summary>鑾峰彇鎴栬缃懡浠ゆ爣璇嗙銆�</summary>
+      <returns>鍛戒护鏍囪瘑绗︺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.Value">
+      <summary>鑾峰彇鎴栬缃懡浠ゅ�笺��</summary>
+      <returns>鍛戒护鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.WaitForAck">
+      <summary>鑾峰彇鎴栬缃懡浠ゅ湪鎵ц涔嬪墠鏄惁瑕佺瓑寰呰璇併��</summary>
+      <returns>濡傛灉鍛戒护鍦ㄦ墽琛屼箣鍓嶈绛夊緟璁よ瘉锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.CommandType">
+      <summary>鏋氫妇杩炴帴娑堟伅鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Abort">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.AddToGroup">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Disconnect">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Initializing">
+      <summary>鎸囧畾瑕佸垵濮嬪寲杩炴帴鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.RemoveFromGroup">
+      <summary />
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.IMessageBus">
+      <summary>鎻愪緵鐢ㄤ簬浠� SignalR 娑堟伅鎬荤嚎鍙戝竷鍜岃闃呮秷鎭殑鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓烘秷鎭�荤嚎鐨勮闃呰�呭缓绔嬩富棰樿闃呫��</summary>
+      <returns>璁㈤槄鐨勭姸鎬併��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ISubscriber">
+      <summary>鎻愪緵鏈夊叧 SignalR 娑堟伅鎬荤嚎璁㈤槄鑰呯殑璇︾粏淇℃伅銆�</summary>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeyAdded"></member>
+    <member name="E:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeyRemoved"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeys"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.Identity"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.Subscription">
+      <summary>鑾峰彇鎴栬缃闃呫��</summary>
+      <returns>璁㈤槄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.WriteCursor">
+      <summary>鑾峰彇鎴栬缃啓鍏ュ厜鏍囥��</summary>
+      <returns>鍐欏叆鍏夋爣銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ISubscription">
+      <summary>鎻愪緵鎵ц宸ヤ綔鍜屾帶鍒惰闃呯姸鎬佺殑鏂规硶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscription.Identity">
+      <summary>鑾峰彇鎴栬缃闃呯殑鏍囪瘑銆�</summary>
+      <returns>璁㈤槄鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.SetQueued">
+      <summary>璁剧疆宸ヤ綔鐘舵�佺殑璁㈤槄銆�</summary>
+      <returns>濡傛灉璁㈤槄宸茶缃负宸ヤ綔鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.UnsetQueued">
+      <summary>灏嗚闃呰缃负绌洪棽鐘舵�併��</summary>
+      <returns>濡傛灉璁㈤槄宸茶缃负绌洪棽鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.Work">
+      <summary>閫氳繃姝よ闃呮墽琛屽宸茶闃呮秷鎭殑澶勭悊銆�</summary>
+      <returns>琛ㄧず瀵瑰凡璁㈤槄娑堟伅杩涜鎿嶄綔鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.#ctor(System.String,System.UInt64,Microsoft.AspNet.SignalR.Messaging.MessageStore{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="key">涓庢湰鍦颁簨浠跺叧鑱旂殑閿��</param>
+      <param name="id">涓庨敭淇℃伅鍏宠仈鐨勬爣璇嗙銆�</param>
+      <param name="store">涓庢湰鍦颁簨浠堕敭鍏宠仈鐨勬秷鎭瓨鍌ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.Id">
+      <summary>鑾峰彇鎴栬缃笌閿俊鎭叧鑱旂殑鏍囪瘑绗︺��</summary>
+      <returns>涓庨敭淇℃伅鍏宠仈鐨勬爣璇嗙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.Key">
+      <summary>鑾峰彇鎴栬缃笌鏈湴浜嬩欢鍏宠仈鐨勯敭銆�</summary>
+      <returns>涓庢湰鍦颁簨浠跺叧鑱旂殑閿��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.MessageStore">
+      <summary>鑾峰彇閿殑娑堟伅銆�</summary>
+      <returns>閿殑娑堟伅銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Message">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Message" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor(System.String,System.String,System.ArraySegment{System.Byte})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor(System.String,System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Message" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="source">娑堟伅鐨勬簮銆�</param>
+      <param name="key">閿秷鎭��</param>
+      <param name="value">娑堟伅鐨勫�笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.CommandId">
+      <summary>鑾峰彇鎴栬缃秷鎭殑鍛戒护鏍囪瘑绗︺��</summary>
+      <returns>娑堟伅鐨勫懡浠ゆ爣璇嗙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Encoding">
+      <summary>娑堟伅鐨勭紪鐮�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Filter">
+      <summary>鑾峰彇鎴栬缃秷鎭瓫閫夊櫒銆�</summary>
+      <returns>娑堟伅绛涢�夊櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.GetString"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsAck">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︿负纭娑堟伅銆�</summary>
+      <returns>濡傛灉娑堟伅鏄‘璁ゆ秷鎭紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsCommand">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︿负鍛戒护娑堟伅銆�</summary>
+      <returns>濡傛灉娑堟伅鏄懡浠ゆ秷鎭紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Key">
+      <summary>鑾峰彇鎴栬缃秷鎭殑閿��</summary>
+      <returns>娑堟伅鐨勯敭銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.MappingId">
+      <summary>璐熻浇 ID銆傚彧鍦ㄦ墿灞曟柟妗堜腑浣跨敤</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.ReadFrom(System.IO.Stream)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Source">
+      <summary>鑾峰彇鎴栬缃秷鎭殑婧愩��</summary>
+      <returns>娑堟伅鐨勬簮銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.StreamIndex">
+      <summary>姝ゆ秷鎭殑鏉ユ簮娴佺储寮曘�傚彧鍦ㄦ墿灞曟柟妗堜腑浣跨敤銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Value">
+      <summary>鑾峰彇鎴栬缃秷鎭殑鍊笺��</summary>
+      <returns>娑堟伅鐨勫�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.WaitForAck">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︾瓑寰呯‘璁ゃ��</summary>
+      <returns>濡傛灉娑堟伅绛夊緟纭锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.WriteTo(System.IO.Stream)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker">
+      <summary>璁″垝瑕佷负鐗瑰畾璁㈤槄瀹屾垚鐨勫伐浣滐紝鏈変竴涓敤浜庨�夋嫨瑕佸鐞嗚鍒掑伐浣滅殑宸ヤ綔绾跨▼锛堢嚎绋嬫睜绾跨▼锛夋暟鐨勭畻娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Schedule(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>瀵规寚瀹氱殑璁㈤槄璁″垝宸ヤ綔銆�</summary>
+      <param name="subscription">瑕佽鍒掔殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Trace">
+      <summary>鑾峰彇鎴栬缃唬鐞嗙殑璺熻釜婧愩��</summary>
+      <returns>浠g悊鐨勮窡韪簮銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBus">
+      <summary>琛ㄧず SignalR 鐨勬秷鎭�荤嚎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager,System.Int32)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Counters"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓鸿闃呰�呭垱寤烘柊璁㈤槄銆�</summary>
+      <returns>鏂板缓鐨勮闃呫��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="messageBufferSize">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateTopic(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Dispose"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Dispose(System.Boolean)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Save(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.ScheduleEvent(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓烘秷鎭�荤嚎鐨勮闃呰�呭缓绔嬩富棰樿闃呫��</summary>
+      <returns>璁㈤槄鐨勭姸鎬併��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Topics"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Trace">
+      <summary>鑾峰彇鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勮窡韪簮銆�</summary>
+      <returns>鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勮窡韪簮銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions">
+      <summary>鎻愪緵 SignalR 娑堟伅鎬荤嚎鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Enumerate(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Action{Microsoft.AspNet.SignalR.Messaging.Message})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Enumerate``1(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{``0,Microsoft.AspNet.SignalR.Messaging.Message},``0)">
+      <summary>鏋氫妇娑堟伅銆�</summary>
+      <param name="messages">鍖呭惈瑕佹灇涓炬秷鎭殑鍒楄〃銆�</param>
+      <param name="filter">绛涢�夎鏋氫妇鐨勬秷鎭殑鏂规硶銆�</param>
+      <param name="onMessage">澶勭悊琚灇涓剧殑姣忎釜娑堟伅鐨勬柟娉曘��</param>
+      <param name="state">琛ㄧず鎿嶄綔鐘舵�佺殑瀵硅薄銆�</param>
+      <typeparam name="T">
+        <paramref name="state" /> 鍙傛暟鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Publish(Microsoft.AspNet.SignalR.Messaging.IMessageBus,System.String,System.String,System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageResult">
+      <summary>琛ㄧず娑堟伅缁撴灉銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Boolean)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="terminal">鑻ヨ鎸囩ず杩欐槸缁堢娑堟伅缁撴灉锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="messages">涓庢 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 鍏宠仈鐨勬秷鎭殑鏁扮粍銆�</param>
+      <param name="totalCount">娑堟伅鏁扮粍涓~鍏呯殑娑堟伅閲忋��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Messages">
+      <summary>鑾峰彇涓庣粨鏋滃叧鑱旂殑 <see cref="T:System.Collections.Generic.IList`1" />銆�</summary>
+      <returns>涓庣粨鏋滃叧鑱旂殑 <see cref="T:System.Collections.Generic.IList`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Terminal">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀鸿繖鏄惁涓虹粓绔秷鎭粨鏋溿��</summary>
+      <returns>濡傛灉杩欐槸缁堢娑堟伅缁撴灉锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.MessageResult.TerminalMessage">
+      <summary>鎸囧畾杩欐槸鍚︿负缁堢娑堟伅缁撴灉銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.TotalCount">
+      <summary>鑾峰彇鎴栬缃秷鎭暟缁勪腑濉厖鐨勬秷鎭噺銆�</summary>
+      <returns>娑堟伅鏁扮粍涓~鍏呯殑娑堟伅閲忋��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1">
+      <summary>琛ㄧず鐢辩幆褰㈢紦鍐插尯鏀寔鐨勬秷鎭瓨鍌ㄣ��</summary>
+      <typeparam name="T">瀛樺偍涓厓绱犵殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.#ctor(System.UInt32)">
+      <summary>浣跨敤鎸囧畾瀹归噺鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="capacity">瀛樺偍鐨勬渶灏忓閲忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.#ctor(System.UInt32,System.UInt32)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="capacity">瀛樺偍鐨勬渶灏忓閲忋��</param>
+      <param name="offset">瀛樺偍涓涓�鏉℃秷鎭殑鍋忕Щ閲忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.Add(`0)">
+      <summary>灏嗘秷鎭坊鍔犲埌瀛樺偍锛屽苟杩斿洖鏂版坊鍔犳秷鎭殑 ID銆�</summary>
+      <returns>鏂版坊鍔犳秷鎭殑 ID銆�</returns>
+      <param name="message">瑕佹坊鍔犵殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.GetMessageCount">
+      <summary>鑾峰彇瀛樺偍涓殑娑堟伅鏁般��</summary>
+      <returns>瀛樺偍涓殑娑堟伅鏁般��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.GetMessages(System.UInt64,System.Int32)">
+      <summary>鑾峰彇涓嬩竴鎵规秷鎭紝浠ユ寚瀹氱殑 ID 寮�澶淬��</summary>
+      <returns>涓嬩竴鎵规秷鎭�</returns>
+      <param name="firstMessageId">绗竴鏉℃秷鎭� ID銆�</param>
+      <param name="maxMessages">瑕佽繑鍥炵殑娑堟伅鐨勬渶澶ф暟鐩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1">
+      <summary>琛ㄧず涓庢秷鎭瓨鍌ㄥ叧鑱旂殑缁撴灉銆�</summary>
+      <typeparam name="T">缁撴灉鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.#ctor(System.UInt64,System.ArraySegment{`0},System.Boolean)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="firstMessageId">绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</param>
+      <param name="messages">涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</param>
+      <param name="hasMoreData">濡傛灉缁撴灉鍖呭惈鏇村鏁版嵁锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.FirstMessageId">
+      <summary>鑾峰彇绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</summary>
+      <returns>绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.HasMoreData">
+      <summary>鑾峰彇缁撴灉鏄惁鍖呭惈鏇村鏁版嵁銆�</summary>
+      <returns>濡傛灉缁撴灉鍖呭惈鏇村鏁版嵁锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.Messages">
+      <summary>鑾峰彇涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</summary>
+      <returns>涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration">
+      <summary>琛ㄧず鎵╁睍娑堟伅鎬荤嚎瀹炵幇鐨勯�氱敤璁剧疆銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.DisableQueuing">
+      <summary>褰撳墠宸茬鐢ㄦ帓闃熴��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.MaxQueueLength">
+      <summary>鑾峰彇鎴栬缃紶鍑哄彂閫侀槦鍒楃殑鏈�澶ч暱搴︺��</summary>
+      <returns>浼犲嚭鍙戦�侀槦鍒楃殑鏈�澶ч暱搴︺��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.#ctor(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.#ctor(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.Id"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.LocalKeyInfo"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.ServerCreationTime"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore">
+      <summary>Represents a scale out mapping store on SignalR messaging.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.Add(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo})">
+      <summary>Adds a new scaleout mapping store.</summary>
+      <param name="id">The identifier.</param>
+      <param name="message">The message.</param>
+      <param name="localKeyInfo">The local key information.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.GetEnumerator(System.UInt64)">
+      <summary>Gets the enumerator for the mapping store.</summary>
+      <returns>The enumerator for the mapping store.</returns>
+      <param name="id">The identifier.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.MaxMapping">
+      <summary>Gets the maximum numbers of mapping for this instance.</summary>
+      <returns>The maximum numbers of mapping for this instance.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage">
+      <summary>Represents a message to the scaleout backplane.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.#ctor(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class.</summary>
+      <param name="messages">The messages from SignalR.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.FromBytes(System.Byte[])">
+      <summary>Creates a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class from the specified data in bytes.</summary>
+      <returns>The created instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" />.</returns>
+      <param name="data">The data in bytes.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.Messages">
+      <summary>Gets or sets the messages from SignalR.</summary>
+      <returns>The messages from SignalR.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ServerCreationTime">
+      <summary>Gets or sets the time the message was created on the origin server.</summary>
+      <returns>The time the message was created on the origin server.</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ToBytes">
+      <summary>Converts a <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> object to bytes.</summary>
+      <returns>The converted <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> object to bytes.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus">
+      <summary>琛ㄧず鐢ㄤ簬鎵╁睍娑堟伅鎬荤嚎瀹炵幇鐨勫叕鍏卞熀绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver,Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Close(System.Int32)">
+      <param name="streamIndex">瑕佸叧闂殑娴佺殑绱㈠紩銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.CreateSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Dispose(System.Boolean)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnError(System.Int32,System.Exception)">
+      <summary>鍏抽棴鐢ㄤ簬鍙戦�佹秷鎭殑鎸囧畾闃熷垪锛屼娇鎵�鏈夊彂閫佹搷浣滃紓姝ュけ璐ャ��</summary>
+      <param name="streamIndex">瑕佸叧闂殑娴佺殑绱㈠紩銆�</param>
+      <param name="exception">鍙戠敓鐨勯敊璇��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnReceived(System.Int32,System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)">
+      <summary>浠庡簳鏉挎敹鍒拌礋杞芥椂璋冪敤銆備换浣曟椂鍊欏彧搴旀湁涓�涓椿鍔ㄨ皟鐢ㄣ��</summary>
+      <param name="streamIndex">娴佺殑 ID銆�</param>
+      <param name="id">璇ユ祦鍐呯殑璐熻浇鐨� ID銆�</param>
+      <param name="message">鎵╁睍娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Open(System.Int32)">
+      <param name="streamIndex">瑕佹墦寮�鐨勬祦鐨勭储寮曘��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+      <summary>浠庢墿灞曟秷鎭�荤嚎鍙戝竷娑堟伅銆�</summary>
+      <returns>琛ㄧず娑堟伅鍙戝竷鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="message">瑕佸彂甯冪殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>浠� SignalR 鎵╁睍娑堟伅鎬荤嚎鍙戦�佹秷鎭��</summary>
+      <returns>琛ㄧず娑堟伅鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="messages">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Int32,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.StreamCount">
+      <summary>涓嶈兘鏇存敼姝ゅ疄渚嬬敓瀛樻湡鐨勬祦鏁般��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore">
+      <summary>Represents a message store that is backed by a ring buffer.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.#ctor(System.UInt32)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore" /> class.</summary>
+      <param name="capacity">The minimum capacity of the store.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.Add(Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping)">
+      <summary>Adds a message to the store and returns the ID of the newly added message.</summary>
+      <returns>The ID of the newly added message.</returns>
+      <param name="mapping">The mapping used in the store.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.FragmentCount">
+      <summary>Gets or sets the number of message fragments in the store.</summary>
+      <returns>The number of message fragments.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.FragmentSize">
+      <summary>Gets or sets the size of the message fragment.</summary>
+      <returns>The size of the message fragment.</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.GetMessages(System.UInt64)">
+      <summary>Gets the next batch of messages, beginning with the specified ID. </summary>
+      <returns>The next batch of messages.</returns>
+      <param name="firstMessageIdRequestedByClient">The first message ID requested by the client.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.GetMessagesByMappingId(System.UInt64)">
+      <summary>Gets the next batch of messages for the specified mapping ID.</summary>
+      <returns>The next batch of messages.</returns>
+      <param name="mappingId">The mapping ID.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.MaxMapping">
+      <summary>Gets or sets the maximum mapping ID.</summary>
+      <returns>The maximum mapping ID.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription">
+      <summary>琛ㄧず鎵╁睍鐨勮闃呫��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.#ctor(System.String,System.Collections.Generic.IList{System.String},System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore},System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="identity">璁㈤槄鏍囪瘑銆�</param>
+      <param name="eventKeys">璁㈤槄鐨勪簨浠堕敭銆�</param>
+      <param name="cursor">鍐欏叆鍏夋爣銆�</param>
+      <param name="streams">鐢ㄤ簬鍏宠仈鍐欏叆鍏夋爣鐨勬祦銆�</param>
+      <param name="callback">璁㈤槄鐘舵�佹洿鏀规椂鎵ц鐨勫洖璋冨嚱鏁般��</param>
+      <param name="maxMessages">涓烘璁㈤槄鍒嗛厤鐨勬秷鎭殑鏈�澶ф暟鐩��</param>
+      <param name="counters">鐢ㄤ簬璁块棶璁㈤槄鐨勬�ц兘璁℃暟鍣ㄧ殑瀵硅薄銆�</param>
+      <param name="state">璁㈤槄鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.BeforeInvoke(System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.PerformWork(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32@,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.WriteCursor(System.IO.TextWriter)">
+      <summary>浣跨敤鎸囧畾鐨勬枃鏈紪鍐欏櫒鍐欏叆鍏夋爣銆�</summary>
+      <param name="textWriter">鐢ㄤ簬鍐欏叆鍏夋爣鐨勬枃鏈紪鍐欏櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Subscription">
+      <summary>琛ㄧず <see cref="T:Microsoft.AspNet.SignalR.Messaging.ISubscription" /> 绫荤殑瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.#ctor(System.String,System.Collections.Generic.IList{System.String},System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Subscription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="identity">璁㈤槄鐨勬爣璇嗐��</param>
+      <param name="eventKeys">鍖呭惈璁㈤槄鐨勪簨浠堕敭鐨勫垪琛ㄣ��</param>
+      <param name="callback">璁㈤槄鐘舵�佹洿鏀规椂鎵ц鐨勫洖璋冨嚱鏁般��</param>
+      <param name="maxMessages">涓烘璁㈤槄鍒嗛厤鐨勬秷鎭殑鏈�澶ф暟鐩��</param>
+      <param name="counters">鐢ㄤ簬璁块棶璁㈤槄鐨勬�ц兘璁℃暟鍣ㄧ殑瀵硅薄銆�</param>
+      <param name="state">璁㈤槄鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.AddEvent(System.String,Microsoft.AspNet.SignalR.Messaging.Topic)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.BeforeInvoke(System.Object)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.Disposable">
+      <summary>鑾峰彇鎴栬缃敤浜庨噴鏀捐闃呰祫婧愮殑鏂规硶銆�</summary>
+      <returns>鐢ㄤ簬閲婃斁璁㈤槄璧勬簮鐨勬柟娉曘��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Dispose"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Dispose(System.Boolean)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.EventKeys"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.Identity"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Invoke(Microsoft.AspNet.SignalR.Messaging.MessageResult)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.MaxMessages"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.PerformWork(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32@,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.RemoveEvent(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.SetEventTopic(System.String,Microsoft.AspNet.SignalR.Messaging.Topic)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.SetQueued"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.UnsetQueued"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Work"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.WriteCursor(System.IO.TextWriter)">
+      <summary>浣跨敤鎸囧畾鐨勬枃鏈紪鍐欏櫒鍐欏叆鍏夋爣銆�</summary>
+      <param name="textWriter">鐢ㄤ簬鍐欏叆鍏夋爣鐨勬枃鏈紪鍐欏櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Topic">
+      <summary>琛ㄧず SignalR 娑堟伅鎬荤嚎鐨勪富棰樸��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.#ctor(System.UInt32,System.TimeSpan)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Topic" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="storeSize">娑堟伅瀛樺偍鐨勫ぇ灏忋��</param>
+      <param name="lifespan">涓婚鐢熷懡鏈熴��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.AddSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>灏嗘寚瀹氱殑璁㈤槄娣诲姞鍒板垪琛ㄣ��</summary>
+      <param name="subscription">瑕佹坊鍔犵殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.IsExpired">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀轰富棰樻槸鍚﹀凡杩囨湡銆�</summary>
+      <returns>濡傛灉涓婚宸茶繃鏈燂紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.LastUsed">
+      <summary>鑾峰彇鎴栬缃娇鐢ㄨ闃呯殑鏈�鏅氭椂闂淬��</summary>
+      <returns>浣跨敤璁㈤槄鐨勬渶鏅氭椂闂淬��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.MarkUsed"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.RemoveSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>浠庡垪琛ㄤ腑鍒犻櫎鎸囧畾鐨勮闃呫��</summary>
+      <param name="subscription">瑕佸垹闄ょ殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.Store">
+      <summary>鑾峰彇鎴栬缃秷鎭瓨鍌ㄣ��</summary>
+      <returns>娑堟伅瀛樺偍銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.SubscriptionLock">
+      <summary>鑾峰彇鎴栬缃敤浜庨攣瀹氫富棰樼殑瀵硅薄銆�</summary>
+      <returns>鐢ㄤ簬閿佸畾涓婚鐨勫璞°��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.Subscriptions">
+      <summary>鑾峰彇鎴栬缃寘鍚富棰樿闃呯殑鍒楄〃銆�</summary>
+      <returns>鍖呭惈涓婚璁㈤槄鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.TopicLookup">
+      <summary>琛ㄧず鐢ㄤ綔鏌ユ壘鐨勪富棰樼殑闆嗗悎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.TopicLookup" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Clear">
+      <summary>浠庨泦鍚堜腑绉婚櫎鎵�鏈変富棰樸��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.ContainsKey(System.String)">
+      <summary>纭畾闆嗗悎涓槸鍚﹀寘鍚叿鏈夋寚瀹氶敭鐨勪富棰樸��</summary>
+      <returns>濡傛灉闆嗗悎涓寘鍚叿鏈夋寚瀹氶敭鐨勪富棰橈紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">涓婚鐨勯敭銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Count">
+      <summary>鑾峰彇闆嗗悎涓墍鏈夛紙涓�鑸拰缁勶級涓婚鐨勬暟閲忋��</summary>
+      <returns>闆嗗悎涓墍鏈夛紙涓�鑸拰缁勶級涓婚鐨勬暟閲忋��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.GetEnumerator">
+      <summary>鑾峰彇寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>鍙敤浜庡惊鐜闂泦鍚堢殑鏋氫妇鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.GetOrAdd(System.String,System.Func{System.String,Microsoft.AspNet.SignalR.Messaging.Topic})">
+      <summary>閫氳繃浣跨敤鎸囧畾鐨勫嚱鏁板悜闆嗗悎涓坊鍔犱富棰橈紙濡傛灉璇ラ敭灏氫笉瀛樺湪锛夈��</summary>
+      <returns>閽堝鎸囧畾鐨勯敭鐢熸垚鐨勪富棰樸��</returns>
+      <param name="key">瑕佹坊鍔犵殑涓婚鐨勯敭銆�</param>
+      <param name="factory">鐢ㄤ簬鐢熸垚閿墍瀵瑰簲鐨勪富棰樼殑鍑芥暟銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁鎸囧畾閿殑涓婚銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓哄叿鏈夋寚瀹氶敭鐨勪富棰橈紱濡傛灉鎵句笉鍒颁富棰橈紝鍒欎负 null銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.System#Collections#IEnumerable#GetEnumerator">
+      <summary>鑾峰彇寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>鍙敤浜庡惊鐜闂泦鍚堢殑鏋氫妇鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.TryGetValue(System.String,Microsoft.AspNet.SignalR.Messaging.Topic@)">
+      <summary>灏濊瘯浠庨泦鍚堜腑鑾峰彇鍏锋湁鎸囧畾閿殑涓婚銆�</summary>
+      <returns>濡傛灉鎵惧埌浜嗚閿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佽幏鍙栫殑閿��</param>
+      <param name="topic">姝ゆ柟娉曡繑鍥炴椂锛屽皢鍖呭惈妫�绱㈠埌鐨勪富棰樸�傝鍙傛暟鏈粡鍒濆鍖栧嵆琚紶閫掋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.TryRemove(System.String)">
+      <summary>灏濊瘯浠庨泦鍚堜腑绉婚櫎骞惰繑鍥炲叿鏈夋寚瀹氶敭鐨勪富棰樸��</summary>
+      <returns>宸茬Щ闄ょ殑涓婚銆�</returns>
+      <param name="key">瑕佺Щ闄ょ殑涓婚鐨勯敭銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.ServerRequest">
+      <summary>琛ㄧず鏈嶅姟鍣ㄨ姹傘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Owin.ServerRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Cookies">
+      <summary>鑾峰彇涓庢湇鍔″櫒鍏宠仈鐨� Cookie銆�</summary>
+      <returns>涓庢湇鍔″櫒鍏宠仈鐨� Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Environment"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Headers">
+      <summary>鑾峰彇涓庤姹傚叧鑱旂殑鏍囧ご銆�</summary>
+      <returns>涓庤姹傚叧鑱旂殑鏍囧ご銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.LocalPath"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.QueryString">
+      <summary>鑾峰彇鏈嶅姟鍣ㄦ煡璇㈠瓧绗︿覆鍙橀噺鐨勯泦鍚堛��</summary>
+      <returns>鏈嶅姟鍣ㄦ煡璇㈠瓧绗︿覆鍙橀噺鐨勯泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerRequest.ReadForm"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Url">
+      <summary>鑾峰彇鏈夊叧褰撳墠璇锋眰鐨� URL 鐨勪俊鎭��</summary>
+      <returns>鍖呭惈鏈夊叧褰撳墠璇锋眰鐨� URL 淇℃伅鐨� <see cref="T:System.Uri" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.User">
+      <summary>鑾峰彇姝ゆ湇鍔″櫒鐨勭敤鎴枫��</summary>
+      <returns>姝ゆ湇鍔″櫒鐨勭敤鎴枫��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.ServerResponse">
+      <summary>琛ㄧず鍝嶅簲璇锋眰鏃跺彂閫佺殑鏈嶅姟鍣ㄥ弽棣堛��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Owin.ServerResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerResponse.CancellationToken">
+      <summary>鑾峰彇涓庡搷搴斿叧鑱旂殑鍙栨秷鏍囪銆�</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鍙栨秷鏍囪銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃笌鍝嶅簲鍏宠仈鐨勫唴瀹圭被鍨嬨��</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鍐呭绫诲瀷銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.Flush">
+      <summary>鍒锋柊姝ゅ疄渚嬨��</summary>
+      <returns>鍒锋柊鐨勫疄渚嬨��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.Write(System.ArraySegment{System.Byte})">
+      <summary>浣跨敤鍏宠仈鐨勬暟缁勬鍐欏叆鍝嶅簲銆�</summary>
+      <param name="data">鏁扮粍娈点��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware">
+      <summary>Represents the middleware used by the hub dispatcher.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware">
+      <summary>琛ㄧず鎸佷箙杩炴帴鐨勪腑闂翠欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager">
+      <summary>琛ㄧず鎻愪緵鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勫睘鎬х殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.ITraceManager.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</summary>
+      <returns>鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.ITraceManager.Switch">
+      <summary>鑾峰彇鐢ㄤ簬鎺у埗浠g爜鎵ц鍜岃皟璇曡緭鍑虹殑璺熻釜鐨勫紑鍏炽��</summary>
+      <returns>
+        <see cref="T:System.Diagnostics.SourceSwitch" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Tracing.TraceManager">
+      <summary>鎻愪緵鍙敤浜庤窡韪唬鐮佹墽琛岀殑灞炴�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Tracing.TraceManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Tracing.TraceManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Tracing.TraceManager.#ctor(System.Diagnostics.TextWriterTraceListener)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.TraceManager.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</summary>
+      <returns>鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.TraceManager.Switch">
+      <summary>鑾峰彇鐢ㄤ簬鎺у埗浠g爜鎵ц鍜岃皟璇曡緭鍑虹殑璺熻釜鐨勫紑鍏炽��</summary>
+      <returns>
+        <see cref="T:System.Diagnostics.SourceSwitch" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport">
+      <summary>琛ㄧず姘镐箙甯т紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖栧搷搴斿璞°��</summary>
+      <returns>鐢ㄤ簬琛ㄧず鍒濆鍖栧搷搴旀搷浣滅殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.KeepAlive">
+      <summary>淇濇寔杩炴帴鐨勬椿鍔ㄧ姸鎬併��</summary>
+      <returns>鐢ㄤ簬琛ㄧず淇濇寔娲诲姩鎿嶄綔鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.OutputWriter">
+      <summary>鑾峰彇鐢ㄤ簬缂栧啓杈撳嚭娴佷笂涓嬫枃鍝嶅簲鐨� HTML 鏂囨湰缂栧啓鍣ㄣ��</summary>
+      <returns>鐢ㄤ簬缂栧啓杈撳嚭娴佷笂涓嬫枃鍝嶅簲鐨� HTML 鏂囨湰缂栧啓鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�佹寚瀹氱殑涓婁笅鏂囧搷搴斻��</summary>
+      <returns>鐢ㄤ簬琛ㄧず鍙戦�佹搷浣滅殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="jsonSerializer">jsonSerializer銆�</param>
+      <param name="heartbeat">浼犺緭妫�娴嬩俊鍙枫��</param>
+      <param name="performanceCounterWriter">鎬ц兘璁℃暟鍣ㄧ紪鍐欏櫒銆�</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Connected">
+      <summary>鑾峰彇鎴栬缃� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ュ嚱鏁般��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ュ嚱鏁般��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.EnqueueOperation(System.Func{System.Object,System.Threading.Tasks.Task},System.Object)">
+      <summary>鎻愪緵浼犺緭鐨勬帓闃熸搷浣溿��</summary>
+      <returns>浼犺緭鐨勬帓闃熸搷浣溿��</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+      <param name="state">鐘舵�佸璞°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.InitializePersistentState">
+      <summary>鍒濆鍖栨案涔呬紶杈撶殑鎸佷箙鐘舵�併��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖栨案涔呬紶杈撶殑杩炴帴鍝嶅簲銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.JsonSerializer">
+      <summary>鑾峰彇姘镐箙浼犺緭鐨� JsonSerializer銆�</summary>
+      <returns>姘镐箙浼犺緭鐨� JsonSerializer銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.LastMessageId">
+      <summary>鑾峰彇姘镐箙浼犺緭鐨勬渶鍚庝竴涓秷鎭� ID銆�</summary>
+      <returns>姘镐箙浼犺緭鐨勬渶鍚庝竴涓秷鎭� ID銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.OnSending(System.String)">
+      <summary>鎻愪緵鍙戦�佷紶杈撶殑璐熻浇銆�</summary>
+      <param name="payload">瀛楃涓茶礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.OnSendingResponse(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鎻愪緵鍙戦�佹柟娉曠殑鍝嶅簲銆�</summary>
+      <param name="response">杩炴帴鐨勫搷搴斻��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鎻愪緵澶勭悊璇锋眰鐨勮繛鎺ャ��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.ProcessRequestCore(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鎻愪緵璇锋眰鏉ュ鐞嗕紶杈撶殑杩炴帴銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Received">
+      <summary>鑾峰彇鎴栬缃竴涓嚱鏁版潵鎺ユ敹姘镐箙浼犺緭銆�</summary>
+      <returns>瑕佹帴鏀舵案涔呬紶杈撶殑鍑芥暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃案涔呬紶杈撶殑閲嶆柊杩炴帴鐨勫嚱鏁般��</summary>
+      <returns>姘镐箙浼犺緭鐨勯噸鏂拌繛鎺ョ殑鍑芥暟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍚戞案涔呬紶杈撶殑杩炴帴鍙戦�佸搷搴斻��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="response">鎸佷箙鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Send(System.Object)">
+      <summary>灏嗗璞″彂閫佸埌姘镐箙浼犺緭銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ョ殑浼犺緭銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITrackingConnection">
+      <summary> 琛ㄧず鍙互鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat" /> 璺熻釜鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+      <summary> 涓鸿繛鎺ュ簲鐢ㄦ柊鐘舵�併��</summary>
+      <param name="states">
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates" /> 鏋氫妇鐨勫�间箣涓�銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.CancellationToken"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectionId"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectTask"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Disconnect"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DisconnectThreshold"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.End"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsAlive"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsTimedOut"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.KeepAlive"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.SupportsKeepAlive"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Timeout"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Url"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransport">
+      <summary>琛ㄧず杩涜閫氫俊鐨勪紶杈�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Connected">
+      <summary>鑾峰彇鎴栬缃湪鍒濆杩炴帴杩炴帴鍒颁紶杈撴椂璋冪敤鐨勫洖璋冦��</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.ConnectionId">
+      <summary>鑾峰彇鎴栬缃紶杈撶殑杩炴帴 ID銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.String" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Disconnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭鏂紑杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊涓烘浼犺緭鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" />銆�</summary>
+      <returns>浼犺緭澶勭悊瀹岃繛鎺ユ椂灏嗗畬鎴愮殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">瑕佸鐞嗙殑 <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Received">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭鎺ユ敹鏁版嵁鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`2" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭閲嶆柊杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.Send(System.Object)">
+      <summary>閫氳繃浼犺緭鍙戦�佹暟鎹��</summary>
+      <returns>鍙戦�佸畬鎴愭椂灏嗗畬鎴愮殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭杩涜杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection">
+      <summary>琛ㄧず杩炴帴鐨勪紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportConnection.Receive(System.String,System.Func{Microsoft.AspNet.SignalR.Transports.PersistentResponse,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>浠庝紶杈撴帴鏀惰闃呮暟鎹��</summary>
+      <returns>浼犺緭鐨勮闃呮暟鎹��</returns>
+      <param name="messageId">璁㈤槄鐨勬秷鎭� ID銆�</param>
+      <param name="callback">澶勭悊鎵�鎺ユ敹娑堟伅鐨勬柟娉曘��</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖哄ぇ灏忋��</param>
+      <param name="state">浼犺緭杩炴帴鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat">
+      <summary>绠$悊杩炴帴鐘舵�佺殑璺熻釜銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗘柊杩炴帴娣诲姞鍒板彈璺熻釜杩炴帴鍒楄〃銆�</summary>
+      <returns>鎵�鏇挎崲鐨勮繛鎺ワ紙濡傛灉鏈夛級銆�</returns>
+      <param name="connection">瑕佹坊鍔犵殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.GetConnections">
+      <summary>鑾峰彇琚窡韪殑杩炴帴鐨勫垪琛ㄣ��</summary>
+      <returns>杩炴帴鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗙幇鏈夎繛鎺ユ爣璁颁负娲诲姩銆�</summary>
+      <param name="connection">瑕佹爣璁扮殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>浠庡彈璺熻釜杩炴帴鍒楄〃涓垹闄よ繛鎺ャ��</summary>
+      <param name="connection">瑕佸垹闄ょ殑杩炴帴銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportManager">
+      <summary>绠$悊杩炴帴鐨勪紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>鑾峰彇鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨勬寚瀹氫紶杈撱��</summary>
+      <returns>鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport" />銆�</returns>
+      <param name="hostContext">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.SupportsTransport(System.String)">
+      <summary>纭畾鏄惁鏀寔鎸囧畾鐨勪紶杈撱��</summary>
+      <returns>濡傛灉鏀寔璇ヤ紶杈擄紝鍒欎负 True锛涘惁鍒欎负 False銆�</returns>
+      <param name="transportName">瑕佹祴璇曠殑浼犺緭鐨勫悕绉般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.LongPollingTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.LongPollingTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Connected">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑鍑芥暟銆�</summary>
+      <returns>杩炴帴鐨勫嚱鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.DisconnectThreshold">
+      <summary>鑾峰彇鏂紑杩炴帴闃堝�笺��</summary>
+      <returns>鏂紑杩炴帴闃堝�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.IsConnectRequest">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀轰紶杈撴槸鍚︿负杩炴帴璇锋眰銆�</summary>
+      <returns>濡傛灉浼犺緭涓鸿繛鎺ヨ姹傦紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊杩炴帴璇锋眰銆�</summary>
+      <returns>琛ㄧず璇锋眰鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="connection">瑕佸鐞嗙殑杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Received">
+      <summary>鑾峰彇鎴栬缃帴鏀剁殑鍑芥暟銆�</summary>
+      <returns>鎺ユ敹鐨勫嚱鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃噸鏂拌繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>閲嶆柊杩炴帴浼犺緭鐨勪换鍔°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�佷紶杈撶殑鍝嶅簲銆�</summary>
+      <returns>琛ㄧず鍝嶅簲鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Send(System.Object)">
+      <summary>鍙戦�佸叿鏈夌粰瀹氬�肩殑闀胯疆璇紶杈撱��</summary>
+      <returns>琛ㄧず闀胯疆璇紶杈撳彂閫佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="value">鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.SupportsKeepAlive">
+      <summary>鑾峰彇涓�涓寚绀轰紶杈撴槸鍚︽敮鎸佷繚鎸佹椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭鏀寔淇濇寔娲诲姩锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>杩炴帴浼犺緭鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse">
+      <summary> 琛ㄧず瀵硅繛鎺ョ殑鍝嶅簲銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor(System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{System.IO.TextWriter})">
+      <summary>鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 鐨勬柊瀹炰緥銆�</summary>
+      <param name="exclude">鐢ㄤ簬纭畾鏄惁搴斿皢娑堟伅鍐欏叆瀹㈡埛绔殑绛涢�夊櫒銆�</param>
+      <param name="writeCursor">鍏夋爣鍐欏叆鍣ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Aborted">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝鎸囩ず鏄惁宸插己琛屽叧闂繛鎺ャ��</summary>
+      <returns>濡傛灉宸插己琛屽叧闂繛鎺ワ紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Disconnect">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀鸿繛鎺ユ槸鍚︽帴鏀舵柇寮�杩炴帴鍛戒护銆�</summary>
+      <returns>濡傛灉杩炴帴鎺ユ敹鏂紑杩炴帴鍛戒护锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.GroupsToken">
+      <summary>鑾峰彇鎴栬缃〃绀虹粍鍒楄〃鐨勭鍚嶄护鐗屻��</summary>
+      <returns>浠ょ墝缁勩��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Initializing">
+      <summary>濡傛灉杩炴帴姝e湪杩涜鍒濆鍖栵紝鍒欎负 true</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.LongPollDelay">
+      <summary>鑾峰彇鎴栬缃暱杞瀹㈡埛绔湪鏈敹鍒颁换浣曟暟鎹殑鎯呭喌涓嬮噸鏂板缓绔嬭繛鎺ヤ箣鍓嶅簲绛夊緟鐨勬椂闂淬��</summary>
+      <returns>闀胯疆璇㈠鎴风鍦ㄦ湭鏀跺埌浠讳綍鏁版嵁鐨勬儏鍐典笅閲嶆柊寤虹珛杩炴帴涔嬪墠搴旂瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Messages">
+      <summary>鑾峰彇鎴栬缃鍙戦�佸埌鎺ユ敹杩炴帴鐨勬秷鎭垪琛ㄣ��</summary>
+      <returns>瑕佸彂閫佸埌鎺ユ敹杩炴帴鐨勬秷鎭垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Microsoft#AspNet#SignalR#Json#IJsonWritable#WriteJson(System.IO.TextWriter)">
+      <summary>涓烘彁楂樻�ц兘锛屽彧浣跨敤 Json.NET 鐨� JsonTextWriter 鏉ュ簭鍒楀寲閽堝 JSON 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 鐨勫繀瑕佺粍浠躲��</summary>
+      <param name="writer">鎺ユ敹 JSON 搴忓垪鍖栫殑 <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Reconnect">
+      <summary>濡傛灉瀹㈡埛绔簲灏濊瘯閲嶆柊杩炴帴锛屽垯涓� True銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Terminal"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.TotalCount">
+      <summary>鑾峰彇鎴栬缃彂閫佸埌鎺ユ敹杩炴帴鐨勬秷鎭殑鎬绘暟銆�</summary>
+      <returns>鍙戦�佸埌鎺ユ敹杩炴帴鐨勬秷鎭殑鎬绘暟銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport">
+      <summary>鎻愪緵浼犺緭浠ヤ粠 SignalR 鐨勬湇鍔″櫒鍙戦�佷簨浠躲��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">IDependency 瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" /> 鐨勫搷搴斻��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" /> 鐨勫垵濮嬪寲鍝嶅簲銆�</returns>
+      <param name="connection">浼犺緭杩炴帴鐨勫垵濮嬪寲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.KeepAlive">
+      <summary>杩斿洖淇濇寔娲诲姩鏂规硶浠ュ缓绔嬩笌 Internet 璧勬簮鐨勬寔涔呰繛鎺ャ��</summary>
+      <returns>鐢ㄤ簬涓� Internet 璧勬簮寤虹珛鎸佷箙杩炴帴鐨勪繚鎸佹椿鍔ㄦ柟娉曘��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍚� <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 鍙戦�佹寔涔呭搷搴斻��</summary>
+      <returns>瑕佸彂閫佸埌 <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 鐨勬寔涔呭搷搴斻��</returns>
+      <param name="response">鎸佷箙鍝嶅簲銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates">
+      <summary>鏋氫妇 TransportConnectionState 鐨勭壒鎬с��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Aborted">
+      <summary>杩炴帴鐘舵�佷负宸蹭腑姝€��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Added">
+      <summary>杩炴帴鐘舵�佷负宸叉坊鍔犮��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Disconnected">
+      <summary>杩炴帴鐘舵�佷负宸叉柇寮�杩炴帴銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.DisconnectMessageReceived">
+      <summary>鐘舵�佷负宸叉敹鍒版柇寮�杩炴帴娑堟伅銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Disposed">
+      <summary>杩炴帴鐘舵�佷负宸查噴鏀俱��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.HttpRequestEnded">
+      <summary>杩炴帴鐘舵�佷负 HTTP 璇锋眰宸茬粨鏉熴��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.None">
+      <summary>鏃犺繛鎺ョ姸鎬併��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.QueueDrained">
+      <summary>杩炴帴鐘舵�佷负宸叉帓鏀鹃槦鍒椼��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Removed">
+      <summary>杩炴帴鐘舵�佷负宸插垹闄ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Replaced">
+      <summary>杩炴帴鐘舵�佷负宸叉浛鎹€��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="heartbeat">浼犺緭妫�娴嬩俊鍙枫��</param>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Abort">
+      <summary>涓 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 褰撳墠浠诲姟澶勭悊銆�</summary>
+      <returns>瑕侀拡瀵� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 涓鐨勫綋鍓嶄换鍔″鐞嗐��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Abort(System.Boolean)">
+      <summary>涓 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 褰撳墠浠诲姟澶勭悊銆�</summary>
+      <returns>瑕侀拡瀵� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 涓鐨勫綋鍓嶄换鍔″鐞嗐��</returns>
+      <param name="clean">鎸囩ず鏄惁娓呯悊宸蹭腑姝㈠鐞嗕腑鐨勬墍鏈変换鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+      <summary>搴旂敤鏂紑杩炴帴鍩虹鐨勪紶杈撹繛鎺ョ姸鎬併��</summary>
+      <param name="states">浼犺緭杩炴帴鐘舵�併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.CancellationToken">
+      <summary>鑾峰彇琛ㄧず杩炴帴鐢熷瓨鏈熺殑鍙栨秷鏍囪銆�</summary>
+      <returns>琛ㄧず杩炴帴鐢熷瓨鏈熺殑鍙栨秷浠ょ墝銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Connection">
+      <summary>鑾峰彇鎴栬缃紶杈撶殑鏂紑杩炴帴鍩虹鐨勪紶杈撹繛鎺ャ��</summary>
+      <returns>浼犺緭鐨勬柇寮�杩炴帴鍩虹鐨勪紶杈撹繛鎺ャ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectionEndToken">
+      <summary>鑾峰彇杩炴帴鏉ョ粨鏉熸浠ょ墝鐨勬搷浣溿��</summary>
+      <returns>缁撴潫姝や护鐗屾搷浣滅殑杩炴帴銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectionId">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑 ID銆�</summary>
+      <returns>鍖呭惈杩炴帴鐨� ID 鐨勫瓧绗︿覆銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectTask"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Context">
+      <summary>鑾峰彇涓庝紶杈撴柇寮�杩炴帴鍩虹鍏宠仈鐨勪富鏈轰笂涓嬫枃銆�</summary>
+      <returns>涓庝紶杈撴柇寮�杩炴帴鍩虹鍏宠仈鐨勪富鏈轰笂涓嬫枃銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.CreateResponseWriter">
+      <summary>琛ㄧず鐢ㄤ簬涓轰紶杈撴柇寮�杩炴帴鍩虹鍒涘缓鍝嶅簲鐨勭紪鍐欏櫒銆�</summary>
+      <returns>鐢ㄤ簬涓轰紶杈撴柇寮�杩炴帴鍩虹鍒涘缓鍝嶅簲鐨勭紪鍐欏櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Disconnect">
+      <summary>瀵艰嚧杩炴帴鏂紑銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Disconnected">
+      <summary>鑾峰彇鎴栬缃繛鎺ヤ紶杈撶殑鏂紑杩炴帴灞炴�с��</summary>
+      <returns>杩炴帴浼犺緭鐨勬柇寮�杩炴帴灞炴�с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.DisconnectThreshold">
+      <summary>鑾峰彇鍦ㄨ繛鎺ョ粓姝㈠悗瑙﹀彂鏂紑杩炴帴鎿嶄綔涔嬪墠瑕佺瓑寰呯殑鏃堕棿璺ㄥ害銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.TimeSpan" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Dispose">
+      <summary>閲婃斁鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫讳娇鐢ㄧ殑闈炴墭绠¤祫婧愬苟閫夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.End">
+      <summary>缁堟杩炴帴銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.EnqueueOperation(System.Func{System.Threading.Tasks.Task})">
+      <summary>琛ㄧず缁撴潫闃熷垪鎿嶄綔鐨勫璞°��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.EnqueueOperation(System.Func{System.Object,System.Threading.Tasks.Task},System.Object)">
+      <summary>琛ㄧず缁撴潫闃熷垪鎿嶄綔鐨勫璞°��</summary>
+      <returns>琛ㄧず闃熷垪鎿嶄綔缁撴潫鐨勫璞°��</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+      <param name="state">鐘舵�併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Heartbeat">
+      <summary>鑾峰彇浼犺緭妫�娴嬩俊鍙锋潵绠$悊杩炴帴鐨勮窡韪姸鎬併��</summary>
+      <returns>鐢ㄤ簬绠$悊杩炴帴鐨勮窡韪姸鎬佺殑浼犺緭妫�娴嬩俊鍙枫��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.HostShutdownToken"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IncrementErrors">
+      <summary>澧炲姞浼犺緭鏂紑杩炴帴鍩虹鐨勯敊璇暟閲忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.InitializePersistentState">
+      <summary>鍒濆鍖栦紶杈撴柇寮�杩炴帴鍩虹鐨勬寔涔呯姸鎬併��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsAbortRequest">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�艰〃绀鸿繛鎺ュ彂鍑轰腑姝㈣姹傘��</summary>
+      <returns>濡傛灉杩炴帴鍙戝嚭涓璇锋眰锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsAlive">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹀浜庢椿鍔ㄧ姸鎬佺殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴澶勪簬娲诲姩鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsConnectRequest">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹀彂鍑鸿姹傜殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴鍙戝嚭璇锋眰锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsTimedOut">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹁秴鏃剁殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴宸茶秴鏃讹紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.KeepAlive">
+      <summary>閫氳繃杩炴帴鍙戦�佷繚鎸佹椿鍔� ping銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.OutputWriter">
+      <summary>鑾峰彇鍙互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑杈撳嚭缂栧啓鍣ㄣ��</summary>
+      <returns>鍙互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑杈撳嚭缂栧啓鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.SupportsKeepAlive">
+      <summary>鑾峰彇涓�涓〃绀轰紶杈撴槸鍚︽敮鎸佷繚鎸佹椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭鏀寔淇濇寔娲诲姩锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Timeout">
+      <summary>瀵艰嚧杩炴帴瓒呮椂銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Trace">
+      <summary>鑾峰彇婧愭潵璺熻釜浠g爜鐨勬墽琛岋紝骞跺皢璺熻釜娑堟伅涓庡叾婧愬叧鑱斻��</summary>
+      <returns>鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勬簮锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Url">
+      <summary>鑾峰彇杩炴帴鐨� URI銆�</summary>
+      <returns>杩炴帴鐨� URI銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat">
+      <summary>琛ㄧず <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat" /> 鐨勯粯璁ゅ疄鐜般��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗘柊杩炴帴娣诲姞鍒板彈璺熻釜杩炴帴鍒楄〃銆�</summary>
+      <param name="connection">瑕佹坊鍔犵殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.Dispose">
+      <summary>閲婃斁鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫讳娇鐢ㄧ殑闈炴墭绠¤祫婧愬苟閫夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.GetConnections">
+      <summary>鑾峰彇琚窡韪殑杩炴帴鐨勫垪琛ㄣ��</summary>
+      <returns>杩炴帴鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗙幇鏈夎繛鎺ユ爣璁颁负娲诲姩銆�</summary>
+      <param name="connection">瑕佹爣璁扮殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>浠庡彈璺熻釜杩炴帴鍒楄〃涓垹闄よ繛鎺ャ��</summary>
+      <param name="connection">瑕佸垹闄ょ殑杩炴帴銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportManager">
+      <summary>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>鑾峰彇鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨勬寚瀹氫紶杈撱��</summary>
+      <returns>鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport" />銆�</returns>
+      <param name="hostContext">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Register(System.String,System.Func{Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransport})">
+      <summary>灏嗘柊浼犺緭娣诲姞鍒板彈鏀寔浼犺緭鐨勫垪琛ㄣ��</summary>
+      <param name="transportName">鎸囧畾鐨勪紶杈撱��</param>
+      <param name="transportFactory">鎸囧畾鐨勪紶杈撶殑宸ュ巶鏂规硶銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Remove(System.String)">
+      <summary>浠庡彈鏀寔浼犺緭鐨勫垪琛ㄤ腑鍒犻櫎浼犺緭銆�</summary>
+      <param name="transportName">鎸囧畾鐨勪紶杈撱��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.SupportsTransport(System.String)">
+      <summary>纭畾鏄惁鏀寔鎸囧畾鐨勪紶杈撱��</summary>
+      <returns>濡傛灉鏀寔璇ヤ紶杈擄紝鍒欎负 True锛涘惁鍒欎负 False銆�</returns>
+      <param name="transportName">瑕佹祴璇曠殑浼犺緭鐨勫悕绉般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.WebSocketTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.WebSocketTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.CancellationToken">
+      <summary>鑾峰彇鐢ㄤ簬浼犺緭鐨勫彇娑堜护鐗屻��</summary>
+      <returns>鐢ㄤ簬浼犺緭鐨勫彇娑堜护鐗屻��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.CreateResponseWriter"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.IsAlive">
+      <summary>鑾峰彇涓�涓寚绀轰紶杈撴槸鍚︽椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭澶勪簬娲诲姩鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.KeepAlive">
+      <summary>淇濇寔浼犺緭鐨勬椿鍔ㄧ姸鎬併��</summary>
+      <returns>淇濇寔浼犺緭鐨勬椿鍔ㄧ姸鎬佺殑浠诲姟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊杩炴帴璇锋眰銆�</summary>
+      <returns>琛ㄧず杩炴帴璇锋眰鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�� Web 濂楁帴鍝嶅簲銆�</summary>
+      <returns>琛ㄧず鍝嶅簲鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.Send(System.Object)">
+      <summary>鍙戦�佷紶杈撶殑鍊笺��</summary>
+      <returns>琛ㄧず浼犺緭鍊煎彂閫佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler">
+      <summary>琛ㄧず鐢ㄤ簬绠$悊 SignalR Web 濂楁帴瀛楃殑瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.#ctor(System.Nullable{System.Int32})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Close">
+      <summary>鍏抽棴姝ゅ疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Error">
+      <summary>鑾峰彇鎴栬缃湪澶勭悊 Web 濂楁帴瀛楁湡闂村彂鐢熺殑閿欒銆�</summary>
+      <returns>鍦ㄥ鐞� Web 濂楁帴瀛楁湡闂村彂鐢熺殑閿欒銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.MaxIncomingMessageSize">
+      <summary>鑾峰彇鏈�澶т紶鍏ユ秷鎭ぇ灏忋��</summary>
+      <returns>鏈�澶т紶鍏ユ秷鎭ぇ灏忋��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnClose(System.Boolean)">
+      <summary>褰撳叧闂瀹炰緥鏃跺彂鐢熴��</summary>
+      <param name="clean">濡傛灉瑕佹竻鐞嗚窡韪紝鍒欎负 true銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnError">
+      <summary>鍦ㄦ墽琛屽鐞嗙▼搴忔搷浣滄湡闂村彂鐢熼敊璇椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnMessage(System.Byte[])">
+      <summary>褰撴敹鍒版秷鎭椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+      <param name="message">娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnMessage(System.String)">
+      <summary>褰撴敹鍒版秷鎭椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+      <param name="message">娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnOpen">
+      <summary>褰撴墦寮�姝ゅ疄渚嬫椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.ProcessWebSocketRequestAsync(System.Net.WebSockets.WebSocket,System.Threading.CancellationToken)">
+      <summary>寮傛澶勭悊澶勭悊绋嬪簭鏀跺埌鐨勮姹傘��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="webSocket">Web 濂楁帴瀛椼��</param>
+      <param name="disconnectToken">鏂紑杩炴帴浠ょ墝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Send(System.String)">
+      <summary>鍙戦�佷笌澶勭悊绋嬪簭鍏宠仈鐨勬秷鎭��</summary>
+      <returns>鍙戦�佺殑娑堟伅銆�</returns>
+      <param name="message">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.WebSocket">
+      <summary>鑾峰彇鎴栬缃� Web 濂楁帴瀛椼��</summary>
+      <returns>Web 濂楁帴瀛椼��</returns>
+    </member>
+    <member name="T:Owin.ObsoleteOwinExtensions"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection``1(Owin.IAppBuilder,System.String)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="T:Owin.OwinExtensions">
+      <summary>琛ㄧず Owin 鎵╁睍鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鈥�/signalr鈥濆鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鈥�/signalr鈥濆鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">聽 瑕佹槧灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勮矾寰�</param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏勬寔涔呰繛鎺ョ殑璺緞銆�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鎸囧畾璺緞澶勭殑搴旂敤鐢熸垚鍣ㄧ閬撱��</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏� signalr 闆嗙嚎鍣ㄧ殑璺緞銆�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏勬寔涔呰繛鎺ョ殑璺緞銆�</param>
+      <param name="connectionType">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ坊鍔犲埌搴旂敤鐢熸垚鍣ㄧ閬撲腑銆�</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣�</param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+      <typeparam name="TConnection">灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ坊鍔犲埌搴旂敤绋嬪簭鐢熸垚鍣ㄧ閬撲腑銆�</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="connectionType">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+    </member>
+    <member name="T:System.Diagnostics.TraceSourceExtensions">
+      <summary>Provides extension methods for used by SignalR.</summary>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceError(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace error message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace error message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceError(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace error message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceVerbose(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace verbose message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceVerbose(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace verbose message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceWarning(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace warning message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace warning message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceWarning(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace warning message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/.signature.p7s
new file mode 100644
index 0000000..64e4a2d
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2.nupkg
new file mode 100644
index 0000000..9a97ed6
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml
new file mode 100644
index 0000000..8fd8ccf
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.Core.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.Core.xml
@@ -0,0 +1,4099 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.AspNet.SignalR.Core</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.AspNet.SignalR.AuthorizeAttribute">
+      <summary>搴旂敤浜庨泦绾垮櫒鍜岄泦绾垮櫒鏂规硶锛屼互鎺堟潈瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄥ苟鎺堟潈瀹㈡埛绔皟鐢ㄩ泦绾垮櫒鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.AuthorizeAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.AuthorizeAttribute._requireOutgoing">
+      <summary>鎸囧畾鏄惁浠呭浠讳綍闆嗙嚎鍣ㄦ湇鍔″櫒绔柟娉曠殑璋冪敤搴旂敤鎺堟潈銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">灏濊瘯杩涜杩炴帴鐨勯泦绾垮櫒瀹㈡埛绔殑鎻忚堪銆�</param>
+      <param name="request">鏉ヨ嚜瀹㈡埛绔殑锛堥噸鏂帮級杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+      <summary>纭畾瀹㈡埛绔槸鍚︽湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubIncomingInvokerContext">
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛屾彁渚涙湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶璋冪敤鐨勮缁嗕俊鎭��</param>
+      <param name="appliesToMethod">瑕佹寚绀烘帴鍙e疄渚嬫槸鐩存帴搴旂敤鍒版柟娉曠殑鐗规�э紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.RequireOutgoing">
+      <summary>璁剧疆涓� false 鍙粎瀵逛换浣曢泦绾垮櫒鏈嶅姟鍣ㄧ鏂规硶鐨勮皟鐢ㄥ簲鐢ㄦ巿鏉冦�傛灞炴�у彧褰卞搷搴旂敤浜庨泦绾垮櫒绫荤殑鐗规�с�傛棤娉曡鍙栨灞炴�с��</summary>
+      <returns>濡傛灉浠呭浠讳綍闆嗙嚎鍣ㄦ湇鍔″櫒绔柟娉曠殑璋冪敤搴旂敤鎺堟潈锛屽垯涓� false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Roles">
+      <summary>鑾峰彇鎴栬缃敤鎴疯鑹层��</summary>
+      <returns>鐢ㄦ埛瑙掕壊銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.UserAuthorized(System.Security.Principal.IPrincipal)">
+      <summary>閲嶅啓鏃讹紝鎻愪緵涓�涓叆鍙g偣鐢ㄤ簬杩涜鑷畾涔夋巿鏉冩鏌ャ�傜敱 <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)" /> 鍜� <see cref="M:Microsoft.AspNet.SignalR.AuthorizeAttribute.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)" /> 璋冪敤銆�</summary>
+      <returns>濡傛灉鐢ㄦ埛宸茬粡杩囨巿鏉冿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="user">琚巿鏉冪殑瀹㈡埛绔殑 <see cref="T:System.Security.Principal.IPrincipal" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.AuthorizeAttribute.Users">
+      <summary>鑾峰彇鎴栬缃巿鏉冪敤鎴枫��</summary>
+      <returns>鎺堟潈鐢ㄦ埛銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionConfiguration">
+      <summary>琛ㄧず杩炴帴閰嶇疆銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.EnableJSONP">
+      <summary>鑾峰彇鎴栬缃竴涓竷灏斿�硷紝璇ュ�肩‘瀹氭槸鍚﹀惎鐢� JSONP銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionConfiguration.Resolver">
+      <summary>鑾峰彇鎴栬缃鐢ㄤ簬闆嗙嚎鍣ㄨ繛鎺ョ殑渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</summary>
+      <returns>瑕佺敤浜庨泦绾垮櫒杩炴帴鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionExtensions">
+      <summary>鎻愪緵鎵╁睍鏂规硶锛岀敤浜庡皢娑堟伅鍙戦�佸埌璁㈤槄鐗瑰畾淇″彿鐨勬墍鏈夎繛鎺ャ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Broadcast(Microsoft.AspNet.SignalR.IConnection,System.Object,System.String[])">
+      <summary>灏嗗�煎箍鎾埌鎵�鏈夎繛鎺ワ紝鎸囧畾鐨勮繛鎺� ID 闄ゅ銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴銆�</param>
+      <param name="value">瑕佸箍鎾殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佸湪骞挎挱涓帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.Collections.Generic.IList{System.String},System.Object)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗘寚瀹氫俊鍙风殑鎵�鏈夎繛鎺ャ�備俊鍙风殑绀轰緥鍙互鏄壒瀹氳繛鎺� ID銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴</param>
+      <param name="connectionIds">瑕佸彂閫佸埌鐨勮繛鎺� ID銆�</param>
+      <param name="value">瑕佸彂甯冪殑鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionExtensions.Send(Microsoft.AspNet.SignalR.IConnection,System.String,System.Object)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗘寚瀹氫俊鍙风殑鎵�鏈夎繛鎺ャ�備俊鍙风殑绀轰緥鍙互鏄壒瀹氳繛鎺� ID銆�</summary>
+      <returns>琛ㄧず骞挎挱浣曟椂瀹屾垚鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴</param>
+      <param name="connectionId">瑕佸彂閫佸埌鐨� connectionId銆�</param>
+      <param name="value">瑕佸彂甯冪殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.ConnectionMessage">
+      <summary>鍙戦�佸埌涓�涓垨澶氫釜杩炴帴鐨勬秷鎭��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.Collections.Generic.IList{System.String},System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.Collections.Generic.IList{System.String},System.Object,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="signal">淇″彿銆�</param>
+      <param name="value">娑堟伅鐨勮礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.ConnectionMessage.#ctor(System.String,System.Object,System.Collections.Generic.IList{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.ConnectionMessage" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="signal">淇″彿銆�</param>
+      <param name="value">娑堟伅鐨勮礋杞姐��</param>
+      <param name="excludedSignals">瑕佹帓闄ょ殑淇″彿銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.ExcludedSignals">
+      <summary>琛ㄧず淇″彿鐨勫垪琛紝杩欎簺淇″彿搴旇鐢ㄤ簬绛涢�夊摢浜涜繛鎺ユ帴鏀舵娑堟伅銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Collections.Generic.IList`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signal">
+      <summary>搴斿悜鍏跺彂閫佹娑堟伅鐨勪俊鍙枫�傚凡璁㈤槄姝や俊鍙风殑杩炴帴灏嗘帴鏀舵秷鎭礋杞姐��</summary>
+      <returns>杩斿洖 <see cref="T:System.String" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Signals">
+      <summary>搴斿皢姝ゆ秷鎭紶閫佸埌鐨勪俊鍙风殑鍒楄〃銆傚鏋滀娇鐢ㄦ椤癸紝鍒欎笉鑳戒娇鐢� Signal銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.ConnectionMessage.Value">
+      <summary>娑堟伅鐨勮礋杞姐��</summary>
+      <returns>杩斿洖 <see cref="T:System.Object" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Cookie">
+      <summary>琛ㄧず SignalR 鐨� Cookie銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Cookie.#ctor(System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Cookie" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="name">Cookie 鐨勫睘鎬у悕绉般��</param>
+      <param name="value">Cookie 鐨勫睘鎬у�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Cookie.#ctor(System.String,System.String,System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Cookie" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="name">Cookie 鐨勫睘鎬у悕绉般��</param>
+      <param name="value">Cookie 鐨勫睘鎬у�笺��</param>
+      <param name="domain">Cookie 鐨勫煙灞炴�с��</param>
+      <param name="path">Cookie 鐨勫睘鎬ц矾寰勩��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Domain">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫煙銆�</summary>
+      <returns>Cookie 鐨勫煙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Name">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫悕绉般��</summary>
+      <returns>Cookie 鐨勫悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Path">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勮矾寰勩��</summary>
+      <returns>Cookie 鐨勮矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Cookie.Value">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫�笺��</summary>
+      <returns>Cookie 鐨勫�笺��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver">
+      <summary>琛ㄧず鍏锋湁榛樿琛屼负鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勮祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.DefaultDependencyResolver" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勯潪鎵樼璧勬簮锛屽苟鏈夐�夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.GetService(System.Type)">
+      <summary>瑙f瀽鏀寔浠绘剰瀵硅薄鍒涘缓鐨勪竴娆℃敞鍐岀殑鏈嶅姟銆�</summary>
+      <returns>璇锋眰鐨勬湇鍔℃垨瀵硅薄銆�</returns>
+      <param name="serviceType">鎵�璇锋眰鐨勬湇鍔℃垨瀵硅薄鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.GetServices(System.Type)">
+      <summary>瑙f瀽澶氭娉ㄥ唽鐨勬湇鍔°��</summary>
+      <returns>璇锋眰鐨勬湇鍔°��</returns>
+      <param name="serviceType">鎵�璇锋眰鐨勬湇鍔$殑绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Register(System.Type,System.Collections.Generic.IEnumerable{System.Func{System.Object}})">
+      <summary>灏嗘寚瀹氱殑鏈嶅姟娉ㄥ唽鍒颁緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activators">瑕佹敞鍐屽埌渚濊禆鍏崇郴瑙f瀽绋嬪簭鐨勬湇鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DefaultDependencyResolver.Register(System.Type,System.Func{System.Object})">
+      <summary>灏嗘寚瀹氱殑鏈嶅姟娉ㄥ唽鍒颁緷璧栧叧绯昏В鏋愮▼搴忋��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activator">瑕佹敞鍐屽埌渚濊禆鍏崇郴瑙f瀽绋嬪簭鐨勬湇鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.Resolve``1(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>瑙f瀽鎵╁睍鐨勭被鍨嬨��</summary>
+      <returns>杩斿洖瀵硅薄鏉ヨВ鏋愭墿灞曠殑绫诲瀷銆�</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <typeparam name="T">瑕佽В鏋愮殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.Resolve(Microsoft.AspNet.SignalR.IDependencyResolver,System.Type)">
+      <summary>瑙f瀽鎵╁睍鐨勭被鍨嬨��</summary>
+      <returns>杩斿洖瀵硅薄鏉ヨВ鏋愭墿灞曠殑绫诲瀷銆�</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <param name="type">瑕佽В鏋愮殑绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.ResolveAll``1(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>瑙f瀽鎵�鏈夋墿灞曠殑绫诲瀷銆�</summary>
+      <returns>杩斿洖瑙f瀽绫诲瀷鎵╁睍鐨勯泦鍚堛��</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <typeparam name="T">瑕佽В鏋愮殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.DependencyResolverExtensions.ResolveAll(Microsoft.AspNet.SignalR.IDependencyResolver,System.Type)">
+      <summary>瑙f瀽鎵�鏈夋墿灞曠殑绫诲瀷銆�</summary>
+      <returns>杩斿洖瑙f瀽绫诲瀷鎵╁睍鐨勯泦鍚堛��</returns>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+      <param name="type">瑕佽В鏋愮殑绫诲瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.GlobalHost">
+      <summary>鎻愪緵瀵归粯璁や富鏈轰俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.Configuration">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver">
+      <summary>鑾峰彇鎴栬缃粯璁� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.HubPipeline">
+      <summary>鑾峰彇榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</summary>
+      <returns>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.GlobalHost.TraceManager">
+      <summary>鑾峰彇榛樿 <see cref="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager" /></summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.GroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.#ctor(Microsoft.AspNet.SignalR.IConnection,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.GroupManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="connection">姝ょ粍椹荤暀鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />銆�</param>
+      <param name="groupPrefix">姝ょ粍鐨勫墠缂�銆�<see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鍚嶇О鎴� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绫诲瀷鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Add(System.String,System.String)">
+      <summary>灏嗚繛鎺ユ坊鍔犲埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Remove(System.String,System.String)">
+      <summary>浠庢寚瀹氱殑缁勪腑鍒犻櫎杩炴帴銆�</summary>
+      <returns>琛ㄧず瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.GroupManager.Send(System.String,System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hub">
+      <summary>鎻愪緵涓庤繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 鐨� SignalR 杩炴帴杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Clients">
+      <summary>鑾峰彇鎴栬缃笌 SignalR 杩炴帴閫氫俊鐨勫鎴风銆�</summary>
+      <returns>涓� SignalR 杩炴帴閫氫俊鐨勫鎴风銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Context">
+      <summary>鑾峰彇鎴栬缃湁鍏宠皟鐢ㄥ鎴风鐨勪俊鎭��</summary>
+      <returns>鏈夊叧璋冪敤瀹㈡埛绔殑淇℃伅銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.Dispose">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.Dispose(System.Boolean)">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hub.Groups">
+      <summary>鑾峰彇鎴栬缃闆嗙嚎鍣ㄥ疄渚嬬殑缁勭鐞嗗櫒銆�</summary>
+      <returns>姝ら泦绾垮櫒瀹炰緥鐨勭粍绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnConnected">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnDisconnected">
+      <summary>褰撲粠姝ら泦绾垮櫒瀹炰緥鏂紑杩炴帴鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hub.OnReconnected">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃跺彂鐢熴��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.HubConfiguration">
+      <summary>琛ㄧず闆嗙嚎鍣ㄩ厤缃��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.HubConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors">
+      <summary>纭畾鏄惁灏嗛泦绾垮櫒鏂规硶涓紩鍙戠殑璇︾粏寮傚父鎶ュ憡鍥炶皟鐢ㄥ鎴风銆傞粯璁や负 false銆�</summary>
+      <returns>濡傛灉瑕佸皢闆嗙嚎鍣ㄦ柟娉曚腑寮曞彂鐨勮缁嗗紓甯告姤鍛婂洖璋冪敤瀹㈡埛绔紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableJavaScriptProxies">
+      <summary>纭畾鏄惁搴斿湪 {璺緞}/hubs 鑷姩鐢熸垚鐢ㄤ簬鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄧ殑 JavaScript 浠g悊銆傞粯璁や负 true銆�</summary>
+      <returns>濡傛灉搴斿湪 {璺緞}/hubs 涓嚜鍔ㄧ敓鎴愮敤浜庢湇鍔″櫒绔泦绾垮櫒鐨� JavaScript 浠g悊锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.HubException"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.HubException.#ctor(System.String,System.Object)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.HubException.ErrorData"></member>
+    <member name="T:Microsoft.AspNet.SignalR.HubPipelineExtensions">
+      <summary>鎻愪緵鐢ㄤ簬鍚戞暟鎹被鍨嬫坊鍔犺嚜瀹氫箟鍔熻兘鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.HubPipelineExtensions.RequireAuthentication(Microsoft.AspNet.SignalR.Hubs.IHubPipeline)">
+      <summary>闇�瑕佽繘琛岃韩浠介獙璇佹椂锛屼細鍚� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 涓坊鍔犱竴涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" />锛屽墠鑰呭叿鏈夊皢鍏ㄥ眬搴旂敤浜庢墍鏈夐泦绾垮櫒鍜岄泦绾垮櫒鏂规硶鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection" /> 鍜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation" /> 鎺堟潈鑰呫�傝繖浜涙巿鏉冭�呰姹傚皢 <see cref="T:System.Security.Principal.IPrincipal" /> 鐨� <see cref="T:System.Security.Principal.IIdentity" /> IsAuthenticated 鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曟垨鎺ユ敹瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勪换浣曞鎴风銆�</summary>
+      <param name="pipeline">灏嗗悜鍏朵腑娣诲姞 <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IConnection">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鍙婂叾杩炴帴鐨勪俊閬撱��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IConnection.DefaultSignal">
+      <summary>姝よ繛鎺ョ殑涓昏淇″彿銆傝繖鏄� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪富瑕� signalr銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+      <summary>灏嗘秷鎭彂閫佸埌璁㈤槄浜嗕俊鍙风殑杩炴帴銆�</summary>
+      <returns>杩斿洖娑堟伅浣曟椂宸插彂閫佺殑浠诲姟銆�</returns>
+      <param name="message">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IConnectionGroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍锛屽苟鍏佽灏嗘秷鎭彂閫佸埌缁勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.Collections.Generic.IList{System.String},System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IConnectionGroupManager.Send(System.String,System.Object,System.String[])">
+      <summary>灏嗗�煎彂閫佸埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず鍙戦�佷綍鏃跺畬鎴愮殑浠诲姟銆�</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IDependencyResolver">
+      <summary>鎻愪緵琛ㄧず SignalR 鐨勪緷璧栧叧绯昏В鏋愮▼搴忕殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.GetService(System.Type)">
+      <summary>杩斿洖缁欏畾绫诲瀷鐨勬湇鍔°��</summary>
+      <returns>杩斿洖鐨勬湇鍔°��</returns>
+      <param name="serviceType">瑕佽繑鍥炵殑鏈嶅姟鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.GetServices(System.Type)">
+      <summary>杩斿洖缁欏畾绫诲瀷鐨勬湇鍔°��</summary>
+      <returns>杩斿洖鐨勬湇鍔°��</returns>
+      <param name="serviceType">瑕佽繑鍥炵殑鏈嶅姟鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.Register(System.Type,System.Collections.Generic.IEnumerable{System.Func{System.Object}})">
+      <summary>娉ㄥ唽鎸囧畾绫诲瀷鐨勪竴缁勬湇鍔°��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activators">鍑芥暟濮旀墭鍒楄〃锛岃濮旀墭鎺ュ彈琛ㄧず瑕佹縺娲荤殑鏈嶅姟鐨勫弬鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IDependencyResolver.Register(System.Type,System.Func{System.Object})">
+      <summary>娉ㄥ唽鎸囧畾绫诲瀷鐨勬湇鍔°��</summary>
+      <param name="serviceType">瑕佹敞鍐岀殑鏈嶅姟鐨勭被鍨嬨��</param>
+      <param name="activator">涓�涓嚱鏁板鎵橈紝璇ュ鎵樻帴鍙楄〃绀鸿婵�娲荤殑鏈嶅姟鐨勫弬鏁般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IGroupManager">
+      <summary>绠$悊杩炴帴鐨勭粍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Add(System.String,System.String)">
+      <summary>灏嗚繛鎺ユ坊鍔犲埌鎸囧畾鐨勭粍銆�</summary>
+      <returns>琛ㄧず瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佹坊鍔犲埌缁勪腑鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IGroupManager.Remove(System.String,System.String)">
+      <summary>浠庢寚瀹氱殑缁勪腑鍒犻櫎杩炴帴銆�</summary>
+      <returns>琛ㄧず瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID 鐨勪换鍔°��</returns>
+      <param name="connectionId">瑕佷粠缁勪腑鍒犻櫎鐨勮繛鎺� ID銆�</param>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IHubContext">
+      <summary>鎻愪緵瀵规湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勪俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IHubContext.Clients">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IHubContext.Groups">
+      <summary>鑾峰彇闆嗙嚎鍣ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.IGroupManager" />銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.IGroupManager" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext">
+      <summary>鎻愪緵瀵规湁鍏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪俊鎭殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Connection">
+      <summary>鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IPersistentConnectionContext.Groups">
+      <summary>鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnectionGroupManager" />銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IRequest">
+      <summary>琛ㄧず SignalR 璇锋眰銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Cookies">
+      <summary>鑾峰彇瀹㈡埛绔繛鎺ョ殑 Cookie銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ョ殑 Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Environment">
+      <summary>鑾峰彇 owin 鐜銆�</summary>
+      <returns>owin 鐜銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Headers">
+      <summary>鑾峰彇鎴栬缃姹傜殑鏍囧ご銆�</summary>
+      <returns>璇锋眰鐨勬爣澶淬��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.LocalPath">
+      <summary>鑾峰彇 URL 鐨勬湰鍦拌矾寰勯儴鍒嗐��</summary>
+      <returns>URL 鐨勬湰鍦拌矾寰勯儴鍒嗐��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.QueryString">
+      <summary>鑾峰彇 IRequest 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</summary>
+      <returns>IRequest 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.IRequest.ReadForm">
+      <summary>璇诲彇 http 璇锋眰鐨勬牸寮忋��</summary>
+      <returns>瑕佽鍙栫殑 http 璇锋眰鏍煎紡銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.Url">
+      <summary>鑾峰彇 IRequest 鐨� URI銆�</summary>
+      <returns>IRequest 鐨� URI銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.IRequest.User">
+      <summary>鑾峰彇 IRequest 鐨勪富浣撶敤鎴枫��</summary>
+      <returns>IRequest 鐨勪富浣撶敤鎴枫��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.IUserIdProvider"></member>
+    <member name="M:Microsoft.AspNet.SignalR.IUserIdProvider.GetUserId(Microsoft.AspNet.SignalR.IRequest)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.PersistentConnection">
+      <summary> 琛ㄧず瀹㈡埛绔拰鏈嶅姟鍣ㄤ箣闂寸殑杩炴帴銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.AckHandler">
+      <summary>鑾峰彇鎴栬缃杩炴帴鐨� Ack 澶勭悊绋嬪簭銆�</summary>
+      <returns>姝よ繛鎺ョ殑 Ack 澶勭悊绋嬪簭銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.Authorize(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾鏄惁宸叉巿鏉冩杩炴帴銆�</summary>
+      <returns>濡傛灉杩炴帴宸茶幏寰楁巿鏉冿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>纭畾鏄惁鎺堟潈杩炴帴璇锋眰銆�</summary>
+      <returns>濡傛灉杩炴帴鐨勮姹傚凡鑾峰緱鎺堟潈锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">璇锋眰銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Connection">
+      <summary>鑾峰彇鎴栬缃繛鎺ャ��</summary>
+      <returns>杩炴帴銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Counters">
+      <summary>鑾峰彇鎴栬缃�ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</summary>
+      <returns>鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.GetSignals(System.String,System.String)">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 涓娇鐢ㄧ殑淇″彿銆�</summary>
+      <returns>鐢ㄤ簬姝� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勪俊鍙枫��</returns>
+      <param name="userId">褰撳墠杩炴帴鐨勭敤鎴� ID銆�</param>
+      <param name="connectionId">浼犲叆杩炴帴鐨� ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Groups">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ粍銆�</summary>
+      <returns>杩炴帴缁勩��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.Initialize(Microsoft.AspNet.SignalR.IDependencyResolver)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.JsonSerializer">
+      <summary>鑾峰彇鎴栬缃� JSON 搴忓垪鍖栫▼搴忋��</summary>
+      <returns>JSON 搴忓垪鍖栫▼搴忋��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.MessageBus">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑娑堟伅鎬荤嚎銆�</summary>
+      <returns>杩炴帴鐨勬秷鎭�荤嚎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>寤虹珛鏂拌繛鎺ユ椂璋冪敤銆�</summary>
+      <returns>杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>杩炴帴鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>鏂紑杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">鏂紑杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+      <summary>浠庤繛鎺ユ帴鏀舵暟鎹椂璋冪敤銆�</summary>
+      <returns>鎺ユ敹鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">鍙戦�佹暟鎹殑杩炴帴鐨� ID銆�</param>
+      <param name="data">鍙戦�佸埌杩炴帴鐨勮礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤銆�</summary>
+      <returns>閲嶆柊杩炴帴鎿嶄綔瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤浠ョ‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</summary>
+      <returns>閲嶆柊杩炴帴鏃跺簲鍔犲叆鐨勭粍鍚嶉泦鍚堛��</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+      <param name="groups">杩涜璋冪敤鐨勮繛鎺ュ0鏄庢槸鍏朵竴閮ㄥ垎鐨勭粍銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>澶勭悊 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勬墍鏈夎姹傘��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 绠¢亾瀹屾垚鏃跺皢瀹屾垚鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="context">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+      <exception cref="InvalidOperationException">杩炴帴鏈垵濮嬪寲鏃跺紩鍙戙�傛湭鎸囧畾浼犺緭鏃跺紩鍙戙�傛湭鎸囧畾杩炴帴 ID 鏃跺紩鍙戙��</exception>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>OWIN 鍏ュ彛鐐广��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.ProtectedData">
+      <summary>鑾峰彇鎴栬缃杩炴帴鐨勫彈淇濇姢鏁版嵁銆�</summary>
+      <returns>姝よ繛鎺ョ殑鍙椾繚鎶ゆ暟鎹��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Trace">
+      <summary>鑾峰彇杩炴帴鐨勬簮銆�</summary>
+      <returns>杩炴帴鐨勬簮銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.TraceManager">
+      <summary>鑾峰彇鎴栬缃窡韪鐞嗗櫒銆�</summary>
+      <returns>璺熻釜绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.Transport">
+      <summary>鑾峰彇鎴栬缃笌姝よ繛鎺ュ叧鑱旂殑浼犺緭銆�</summary>
+      <returns>涓庢杩炴帴鍏宠仈鐨勪紶杈撱��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.PersistentConnection.UserIdProvider"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager">
+      <summary>鎻愪緵瀵规湇鍔″櫒榛樿閰嶇疆绠$悊鍣ㄧ殑璁块棶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.ConnectionTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.DefaultMessageBufferSize">
+      <summary>鑾峰彇鎴栬缃涓虹壒瀹氫俊鍙风紦鍐茬殑娑堟伅鏁伴噺銆�</summary>
+      <returns>瑕佷负鐗瑰畾淇″彿缂撳啿鐨勬秷鎭暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.DisconnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.KeepAlive">
+      <summary>鑾峰彇鎴栬缃竴涓� TimeSpan锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</summary>
+      <returns>涓�涓� TimeSpan锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.LongPollDelay"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.DefaultConfigurationManager.TransportConnectTimeout"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager">
+      <summary>鎻愪緵瀵规湇鍔″櫒閰嶇疆鐨勮闂��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.ConnectionTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿闀垮害銆�</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀鸿繛鎺ュ湪瓒呮椂涔嬪墠淇濇寔鎵撳紑鐘舵�佺殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DefaultMessageBufferSize">
+      <summary>鑾峰彇鎴栬缃涓虹壒瀹氫俊鍙风紦鍐茬殑娑堟伅鏁伴噺銆�</summary>
+      <returns>瑕佷负鐗瑰畾淇″彿缂撳啿鐨勬秷鎭暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.DisconnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿闀垮害銆�</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀哄湪杩炴帴鍋滄涔嬪悗寮曞彂鏂紑杩炴帴浜嬩欢涔嬪墠瑕佺瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.KeepAlive">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿闀垮害銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</summary>
+      <returns>涓�涓� <see cref="T:System.TimeSpan" />锛岀敤浜庤〃绀轰袱娆″彂閫佷繚鎸佹椿鍔ㄦ秷鎭箣闂寸殑鏃堕棿銆傚鏋滃惎鐢紝姝ゅ�煎繀椤昏嚦灏戜负涓ょ銆傝缃负 null 鍙鐢ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.LongPollDelay">
+      <summary>鑾峰彇鎴栬缃鍛婄煡瀹㈡埛绔湪浠庢湇鍔″櫒鍙戦�佹暟鎹悗閲嶆柊寤虹珛闀胯疆璇㈣繛鎺ヤ箣鍓嶇瓑寰呯殑 <see cref="T:System.TimeSpan" />銆傞粯璁ゅ�间负 0銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Configuration.IConfigurationManager.TransportConnectTimeout">
+      <summary>鑾峰彇鎴栬缃竴涓� <see cref="T:System.TimeSpan" />锛岃鍊艰〃绀哄鎴风鍦ㄨ浆鑰屼娇鐢ㄥ叾浠栦紶杈撴垨杩炴帴澶辫触涔嬪墠搴斿厑璁歌繛鎺ョ殑鏃堕棿銆傞粯璁ゅ�间负 5 绉掋��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.HostContext">
+      <summary>琛ㄧず SignalR 涓绘満鐨勪笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostContext.#ctor(Microsoft.AspNet.SignalR.IRequest,Microsoft.AspNet.SignalR.Hosting.IResponse)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">SignalR 涓绘満鐨勭幆澧冦��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Environment">
+      <summary>鑾峰彇 SignalR 涓绘満鐨勭幆澧冦��</summary>
+      <returns>SignalR 涓绘満鐨勭幆澧冦��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Request"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.HostContext.Response"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.HostDependencyResolverExtensions">
+      <summary>琛ㄧず渚濊禆鍏崇郴瑙f瀽绋嬪簭鎵╁睍鐨勪富鏈恒��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.HostDependencyResolverExtensions.InitializeHost(Microsoft.AspNet.SignalR.IDependencyResolver,System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栦緷璧栧叧绯昏В鏋愮▼搴忔墿灞曠殑涓绘満銆�</summary>
+      <param name="resolver">IDependencyResolver銆�</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="hostShutdownToken">涓绘満鍏抽棴浠ょ墝銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.INameValueCollection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.Get(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.GetValues(System.String)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.INameValueCollection.Item(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.IResponse">
+      <summary>琛ㄧず涓庡鎴风鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.CancellationToken">
+      <summary>鑾峰彇琛ㄧず瀹㈡埛绔敓瀛樻湡鐨勫彇娑堟爣璁般��</summary>
+      <returns>琛ㄧず瀹㈡埛绔敓瀛樻湡鐨勫彇娑堜护鐗屻��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hosting.IResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃搷搴旂殑鍐呭绫诲瀷銆�</summary>
+      <returns>鍝嶅簲鐨勫唴瀹圭被鍨嬨��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Flush">
+      <summary>灏嗙紦鍐茬殑鍝嶅簲鍒锋柊鍒板鎴风銆�</summary>
+      <returns>琛ㄧず浣曟椂鍒锋柊杩囨暟鎹殑浠诲姟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.IResponse.Write(System.ArraySegment{System.Byte})">
+      <summary>鍐欏叆缂撳啿鐨勬暟鎹��</summary>
+      <param name="data">瑕佸啓鍏ュ埌缂撳啿鍖虹殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory">
+      <summary>璐熻矗鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏃惰浣跨敤鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.PersistentConnectionFactory.CreateInstance(System.Type)">
+      <summary>浣跨敤渚濊禆鍏崇郴瑙f瀽绋嬪簭鎴栫被鍨嬬殑榛樿鏋勯�犲嚱鏁板垱寤烘寚瀹氱被鍨嬬殑瀹炰緥銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勫疄渚嬨��</returns>
+      <param name="connectionType">瑕佸垱寤虹殑 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hosting.ResponseExtensions.End(Microsoft.AspNet.SignalR.Hosting.IResponse,System.String)">
+      <summary>浣跨敤鍙�夋暟鎹叧闂笌瀹㈡埛绔殑杩炴帴銆�</summary>
+      <returns>琛ㄧず杩炴帴浣曟椂鍏抽棴鐨勪换鍔°��</returns>
+      <param name="response">
+        <see cref="T:Microsoft.AspNet.SignalR.Hosting.IResponse" />銆�</param>
+      <param name="data">瑕佸啓鍏ュ埌杩炴帴鐨勬暟鎹��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule">
+      <summary>搴旂敤 <see cref="T:Microsoft.AspNet.SignalR.Hub" /> 绫讳腑鐨勬巿鏉冪壒鎬э紝浠ョ‘瀹氭槸鍚﹀厑璁稿鎴风鎺ユ敹浠庨泦绾垮櫒鍙戦�佺殑娑堟伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.#ctor(Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection,Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="globalConnectionAuthorizer">鍏ㄥ眬杩炴帴鎺堟潈鑰呫��</param>
+      <param name="globalInvocationAuthorizer">鍏ㄥ眬璋冪敤鎺堟潈鑰呫��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪闆嗙嚎鍣ㄤ笂鏌ユ壘鐗规�э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation">
+      <summary>鎻忚堪瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Args">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曟椂灏嗕娇鐢ㄧ殑鍙傛暟鍒楄〃銆�</summary>
+      <returns>涓庡鎴风闆嗙嚎鍣ㄦ柟娉曞叧鑱旂殑鍙傛暟鍒楄〃銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Hub">
+      <summary>鑾峰彇鎴栬缃璋冪敤鏂规硶鎵�灞炵殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</summary>
+      <returns>琚皟鐢ㄦ柟娉曟墍灞炵殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.Method">
+      <summary>鑾峰彇鎴栬缃璋冪敤鐨勫鎴风闆嗙嚎鍣ㄦ柟娉曠殑鍚嶇О銆�</summary>
+      <returns>琚皟鐢ㄧ殑瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ClientHubInvocation.State">
+      <summary>鑾峰彇鎴栬缃〃绀鸿嚜涓婃灏嗛泦绾垮櫒鐘舵�佸彂閫佸埌瀹㈡埛绔互鏉ュ凡鏇存敼鐨勬湇鍔″櫒涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</summary>
+      <returns>琛ㄧず鏈嶅姟鍣ㄤ笂鐨勯泦绾垮櫒鐘舵�佺殑閿�/鍊煎瓨鍌ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ClientProxy">
+      <summary>琛ㄧず瀹㈡埛绔泦绾垮櫒鐨勬湇鍔″櫒绔唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ClientProxy" /> 瀹炰緥琛ㄧず鐨勮繛鎺ョ殑鏂规硶銆�</summary>
+      <returns>琛ㄧず鏁版嵁浣曟椂宸插彂閫佸埌瀹㈡埛绔殑浠诲姟銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶鐨勫悕绉般��</param>
+      <param name="args">瑕佷紶閫掔粰瀹㈡埛绔殑鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)">
+      <summary>鎵ц <see cref="M:Microsoft.AspNet.SignalR.Hubs.ClientProxy.Invoke(System.String,System.Object[])" /> 鏂规硶銆�</summary>
+      <returns>濮嬬粓涓� true銆�</returns>
+      <param name="binder">鍖呭惈缁戝畾璇箟鍜屽鎴风闆嗙嚎鍣ㄦ搷浣滆缁嗕俊鎭殑淇℃伅銆�</param>
+      <param name="args">鍦ㄨ皟鐢ㄦ搷浣滄湡闂翠紶閫掔粰瀵硅薄鎴愬憳鐨勫弬鏁般��</param>
+      <param name="result">褰撴柟娉曡繑鍥炴椂锛屽寘鍚垚鍛樿皟鐢ㄧ殑缁撴灉銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ConnectionIdProxy">
+      <summary>琛ㄧず瀹㈡埛绔泦绾垮櫒鐨勮繛鎺� ID 浠g悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ConnectionIdProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String[])"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator">
+      <summary>琛ㄧず榛樿鐨勭▼搴忛泦瀹氫綅鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultAssemblyLocator.GetAssemblies">
+      <summary>鑾峰彇宸插姞杞藉埌褰撳墠搴旂敤绋嬪簭鍩熶腑鐨勭▼搴忛泦銆�</summary>
+      <returns>褰撳墠搴旂敤绋嬪簭鍩熶腑鐨勭▼搴忛泦鏁扮粍銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator">
+      <summary>琛ㄧず SignalR 闆嗙嚎鍣ㄧ殑榛樿婵�娲诲櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubActivator.Create(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>鍒涘缓鏂扮殑闆嗙嚎鍣ㄦ縺娲诲櫒銆�</summary>
+      <returns>鍒涘缓鐨勯泦绾垮櫒婵�娲诲櫒銆�</returns>
+      <param name="descriptor">鎻忚堪绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager">
+      <summary>琛ㄧず榛樿鐨勯泦绾垮櫒绠$悊鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">闆嗙嚎鍣ㄨВ鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHub(System.String)">
+      <summary>妫�绱㈠崟涓泦绾垮櫒鎻忚堪绗︺��</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒鎻忚堪绗︼紱鍚﹀垯涓� null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄧ粰瀹氶泦绾垮櫒涓婃绱㈠叿鏈夌粰瀹氬悕绉扮殑鏂规硶銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="method">瑕佹煡鎵剧殑鏂规硶鐨勫悕绉般��</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶鐨勫垪琛ㄣ��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="predicate">鐢ㄤ簬绛涢�夌粨鏋滅殑鍙�夎皳璇嶃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+      <summary>妫�绱笌缁欏畾璋撹瘝鍖归厤鐨勬墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勫垪琛ㄣ��</returns>
+      <param name="predicate">璋撹瘝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.ResolveHub(System.String)">
+      <summary>灏嗙粰瀹氶泦绾垮櫒鍚嶇О瑙f瀽涓轰竴涓叿浣撶殑瀵硅薄銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒瀹炵幇瀹炰緥锛涘惁鍒欎负 null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.ResolveHubs">
+      <summary>灏嗘墍鏈夊彲鐢ㄩ泦绾垮櫒瑙f瀽涓哄叾鍏蜂綋瀵硅薄銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬬殑鍒楄〃銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator">
+      <summary>琛ㄧず榛樿 Javascript 浠g悊鐨勭敓鎴愬櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubManager,Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="manager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="javaScriptMinifier">javascript 缂╁噺绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>鐢熸垚鎸囧畾鐨勪唬鐞嗐��</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultJavaScriptProxyGenerator.GenerateProxy(System.String,System.Boolean)">
+      <summary>鐢熸垚鎸囧畾鐨勪唬鐞嗐��</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+      <param name="includeDocComments">鑻ヨ鍖呮嫭 Doc 娉ㄩ噴锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver">
+      <summary>琛ㄧず闆嗙嚎鍣ㄥ弬鏁扮殑榛樿瑙f瀽绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愭柟娉曞弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊肩殑鏁扮粍銆�</returns>
+      <param name="method">鏂规硶鎻忚堪绗︺��</param>
+      <param name="values">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊肩殑鍒楄〃銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver.ResolveParameter(Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor,Microsoft.AspNet.SignalR.Json.IJsonValue)">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愬弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊笺��</returns>
+      <param name="descriptor">鍙傛暟鎻忚堪绗︺��</param>
+      <param name="value">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.Descriptor">
+      <summary>鎻忚堪闆嗙嚎鍣ㄧ殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.Descriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.Descriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.Name">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鍚嶇О銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ悕绉般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.Descriptor.NameSpecified">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚︽寚瀹氫簡闆嗙嚎鍣ㄧ壒鎬у悕绉般��</summary>
+      <returns>濡傛灉鎸囧畾浜嗛泦绾垮櫒鐗规�у悕绉帮紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary">
+      <summary>鍖呭惈鐢ㄤ簬瀛樺偍閿�/鍊煎鐨勫瓧鍏稿璞★紝骞堕噸鍐� TrySetMember 鍜� TryGetMember 鏂规硶浠ユ敮鎸佹柊璇硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="obj">瀛楀吀瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>灏嗘寚瀹氱殑閿�/鍊煎瀵硅薄娣诲姞鍒板瓧鍏搞��</summary>
+      <param name="item">瑕佹坊鍔犵殑閿�/鍊煎瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Add(System.String,System.Object)">
+      <summary>灏嗘寚瀹氱殑閿拰鍊兼坊鍔犲埌瀛楀吀銆�</summary>
+      <param name="key">瑕佹坊鍔犵殑鍏冪礌鐨勯敭銆�</param>
+      <param name="value">瑕佹坊鍔犵殑鍏冪礌鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Clear">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鎵�鏈夐敭鍜屽�笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>纭畾瀛楀吀鏄惁鍖呭惈鐗瑰畾鐨勯敭/鍊煎椤广��</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鍏锋湁鎸囧畾鍊肩殑鍏冪礌锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="item">瑕佸湪瀛楀吀涓煡鎵剧殑閿�/鍊煎椤广��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.ContainsKey(System.String)">
+      <summary>纭畾瀛楀吀鏄惁鍖呭惈鎸囧畾鐨勯敭銆�</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鎸囧畾鐨勯敭锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佸湪瀛楀吀涓煡鎵剧殑閿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Object}[],System.Int32)">
+      <summary>浠庢寚瀹氱殑鏁扮粍绱㈠紩澶勫紑濮嬶紝灏嗛敭/鍊煎鍏冪礌澶嶅埗鍒扮幇鏈夌殑涓�缁存暟缁勪腑銆�</summary>
+      <param name="array">涓�缁存暟缁勶紝鐢ㄤ綔浠庡瓧鍏镐腑澶嶅埗鐨勫厓绱犵殑鐩爣銆�</param>
+      <param name="arrayIndex">鏁扮粍涓粠闆跺紑濮嬬殑绱㈠紩锛屽皢浠庢浣嶇疆寮�濮嬪鍒躲��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Count">
+      <summary>鑾峰彇瀛楀吀涓殑椤规暟銆�</summary>
+      <returns>瀛楀吀涓殑椤规暟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.GetEnumerator">
+      <summary>杩斿洖涓�涓惊鐜闂瓧鍏哥殑鏋氫妇鍣ㄣ��</summary>
+      <returns>寰幆璁块棶瀛楀吀鐨勬灇涓惧櫒銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.IsReadOnly">
+      <summary>鑾峰彇鍔ㄦ�佸瓧鍏告槸鍚︿负鍙銆�</summary>
+      <returns>濡傛灉鍔ㄦ�佸瓧鍏镐负鍙锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Item(System.String)">
+      <summary>鑾峰彇鎴栬缃瓧鍏镐腑鍏锋湁鐗瑰畾閿殑椤广��</summary>
+      <returns>瀛楀吀涓叿鏈夌壒瀹氶敭鐨勯」銆�</returns>
+      <param name="key">椤圭殑閿��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Keys">
+      <summary>鑾峰彇瀛楀吀涓寘鍚殑閿泦鍚堛��</summary>
+      <returns>瀛楀吀涓寘鍚殑閿泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鎸囧畾鐨勯敭/鍊煎椤广��</summary>
+      <returns>宸插湪鍏朵腑鍒犻櫎浜嗛」鐨勫瓧鍏搞��</returns>
+      <param name="item">瑕佸垹闄ょ殑椤广��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Remove(System.String)">
+      <summary>浠庡瓧鍏镐腑鍒犻櫎鐗瑰畾鐨勯敭銆�</summary>
+      <returns>宸插湪鍏朵腑鍒犻櫎浜嗛敭鐨勫瓧鍏搞��</returns>
+      <param name="key">瑕佸垹闄ょ殑閿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.System#Collections#IEnumerable#GetEnumerator">
+      <summary>杩斿洖寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TryGetValue(System.String,System.Object@)">
+      <summary>鑾峰彇涓庢寚瀹氱殑閿叧鑱旂殑鍊笺��</summary>
+      <returns>濡傛灉瀛楀吀鍖呭惈鍏锋湁鎸囧畾閿殑鍏冪礌锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佽幏鍙栫殑鍊肩殑閿��</param>
+      <param name="value">褰撴鏂规硶杩斿洖鏃讹紝濡傛灉鎵惧埌鎸囧畾閿紝鍒欏寘鍚笌璇ラ敭鍏宠仈鐨勫�硷紱鍚﹀垯锛屽皢鍖呭惈 value 鍙傛暟鐨勭被鍨嬬殑榛樿鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
+      <summary>鎻愪緵鐢ㄤ簬璁剧疆鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="value">瑕佽缃埌鎴愬憳鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Unwrap(System.Object)">
+      <summary>瑙e寘涓庡瓧鍏稿叧鑱旂殑鎸囧畾鍊笺��</summary>
+      <returns>瑙e寘鐨勫�笺��</returns>
+      <param name="value">瑕佽В鍖呯殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Values">
+      <summary>鑾峰彇瀛楀吀涓寘鍚殑鍊奸泦鍚堛��</summary>
+      <returns>瀛楀吀涓寘鍚殑鍊奸泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.DynamicDictionary.Wrap(System.Object)">
+      <summary>鍖呰涓庡瓧鍏稿叧鑱旂殑鎸囧畾鍊笺��</summary>
+      <returns>鍖呰鐨勫�笺��</returns>
+      <param name="value">瑕佸寘瑁呯殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator">
+      <summary>琛ㄧず绌� Javascript 浠g悊鐨勭敓鎴愬櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EmptyJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>浣跨敤鎸囧畾鐨� URL 鐢熸垚浠g悊銆�</summary>
+      <returns>鐢熸垚鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">鏈嶅姟 URL銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator">
+      <summary>琛ㄧず涓庣▼搴忛泦瀹氫綅鍣ㄥ叧鑱旂殑鍙灇涓惧�笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator.#ctor(System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="assemblies">绋嬪簭闆嗐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.EnumerableOfAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖绋嬪簭闆嗗垪琛ㄣ��</summary>
+      <returns>绋嬪簭闆嗗垪琛�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ExceptionContext"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.#ctor(System.Exception)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Error">
+      <summary>瑕佸彂閫佸埌璋冪敤瀹㈡埛绔殑寮傚父銆傞櫎闈� Error 鏄� <see cref="T:Microsoft.AspNet.SignalR.HubException" />锛屾垨鑰� <see cref="P:Microsoft.AspNet.SignalR.HubConfiguration.EnableDetailedErrors" /> 璁剧疆涓� true锛屽惁鍒欒繖灏嗚娉涘瀷 Exception 閲嶅啓銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ExceptionContext.Result">
+      <summary>瑕佽繑鍥烇紙鑰屼笉鏄紩鍙� Error锛夌殑鍊笺�傚彧瑕佽缃簡 Result锛孍rror 灏变細璁剧疆涓� null銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.GroupProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑涓�缁勪俊鍙蜂唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.GroupProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext">
+      <summary>琛ㄧず瀹㈡埛绔殑璋冪敤涓婁笅鏂囥��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.#ctor(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="request">褰撳墠鐨� HTTP 璇锋眰銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.ConnectionId">
+      <summary>鑾峰彇璋冪敤瀹㈡埛绔殑杩炴帴 ID銆�</summary>
+      <returns>璋冪敤瀹㈡埛绔殑杩炴帴 ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Headers">
+      <summary>鑾峰彇璇锋眰鐨勬爣澶淬��</summary>
+      <returns>璇锋眰鐨勬爣澶淬��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.QueryString">
+      <summary>鑾峰彇璇锋眰鐨勬煡璇㈠瓧绗︿覆銆�</summary>
+      <returns>璇锋眰鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.Request">
+      <summary>涓哄綋鍓� HTTP 璇锋眰鑾峰彇 <see cref="T:Microsoft.AspNet.SignalR.IRequest" />銆�</summary>
+      <returns>褰撳墠 HTTP 璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.IRequest" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.RequestCookies">
+      <summary>鑾峰彇璇锋眰鐨� Cookie銆�</summary>
+      <returns>璇锋眰鐨� Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubCallerContext.User">
+      <summary>鑾峰彇璇锋眰鐨� <see cref="T:System.Security.Principal.IPrincipal" />銆�</summary>
+      <returns>璇锋眰鐨� <see cref="T:System.Security.Principal.IPrincipal" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勫崟涓� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.#ctor(Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,Microsoft.AspNet.SignalR.IConnection,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="pipelineInvoker">绠¢亾璋冪敤绋嬪簭銆�</param>
+      <param name="connection">鎺ュ彛杩炴帴銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+      <param name="tracker">鐘舵�佹洿鏀硅窡韪▼搴忋��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Caller">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄥ鎴风銆�</summary>
+      <returns>璋冪敤瀹㈡埛绔��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.Others">
+      <summary>鑾峰彇鎴栬缃櫎璋冪敤瀹㈡埛绔互澶栫殑鎵�鏈夊凡杩炴帴瀹㈡埛绔��</summary>
+      <returns>闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊凡杩炴帴瀹㈡埛绔��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroup(System.String)">
+      <summary>杩斿洖缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})">
+      <summary>杩斿洖鎸囧畾缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>缁勪腑闄よ皟鐢ㄥ鎴风涔嬪鐨勬墍鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupNames">缁勭殑鍚嶇О</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.All"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.AllExcept(System.String[])">
+      <summary>杩斿洖闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Client(System.String)">
+      <summary>杩斿洖鍏锋湁鎸囧畾 connectionid 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionId">杩炴帴 ID</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Clients(System.Collections.Generic.IList{System.String})">
+      <summary>杩斿洖鍏锋湁鎸囧畾 connectionid 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionIds">杩炴帴 ID銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Connection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Group(System.String,System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Groups(System.Collections.Generic.IList{System.String},System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupNames">缁勭殑鍚嶇О銆�</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.HubName"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.Invoker"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubConnectionContextBase.User(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄧ殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.CreateQualifiedName(System.String)">
+      <summary>涓轰娇鐢ㄦ寚瀹氱殑闈為檺瀹氬悕绉扮殑闆嗙嚎鍣ㄥ垱寤洪檺瀹氬悕绉般��</summary>
+      <returns>鍒涘缓鐨勯檺瀹氬悕绉般��</returns>
+      <param name="unqualifiedName">闈為檺瀹氬悕绉般��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDescriptor.HubType">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒绫诲瀷銆�</summary>
+      <returns>闆嗙嚎鍣ㄧ被鍨嬨��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher">
+      <summary>澶勭悊閫氳繃闆嗙嚎鍣ㄦ寔涔呮�ц繛鎺ヨ繘琛岀殑鎵�鏈夐�氫俊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.#ctor(Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="configuration">纭畾鏄惁鍚敤 JS 浠g悊骞朵负瀹㈡埛绔彁渚涜缁嗛泦绾垮櫒閿欒鐨勯厤缃缃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.AuthorizeRequest(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鏋勫缓涓鸿繛鎺ョ殑鎸囧畾璇锋眰鎺堟潈鐨勯泦绾垮櫒鍒楄〃銆�</summary>
+      <returns>濡傛灉鏈夊凡鑾峰緱鎺堟潈鐨勯泦绾垮櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨勮姹傘��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.GetSignals(System.String,System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Initialize(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>涓绘満璋冪敤姝ら」鏉ュ垵濮嬪寲 IDependencyResolver 鐨勯泦绾垮櫒璋冨害銆�</summary>
+      <param name="resolver">IDependency 瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnConnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴杩炴帴鍒版闆嗙嚎鍣ㄥ疄渚嬫椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnDisconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ヤ笌姝ら泦绾垮櫒瀹炰緥鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴浠庢闆嗙嚎鍣ㄥ疄渚嬫柇寮�鏃惰皟鐢ㄧ殑浠诲姟銆�</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReceived(Microsoft.AspNet.SignalR.IRequest,System.String,System.String)">
+      <summary>澶勭悊闆嗙嚎鍣ㄧ殑浼犲叆鏂规硶璋冪敤銆�</summary>
+      <returns>浠庢闆嗙嚎鍣ㄥ疄渚嬫敹鍒版暟鎹椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+      <param name="data">鏀跺埌鐨勬暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnReconnected(Microsoft.AspNet.SignalR.IRequest,System.String)">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>杩炴帴閲嶆柊杩炴帴鍒版闆嗙嚎鍣ㄥ疄渚嬫椂璋冪敤鐨勪换鍔°��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.OnRejoiningGroups(Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.String)">
+      <summary>杩炴帴瓒呮椂鍚庨噸鏂拌繛鎺ユ椂璋冪敤浠ョ‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</summary>
+      <returns>瓒呮椂鍚庣敤浜庨噸鏂拌繛鎺ョ殑杩炴帴鍒楄〃锛岀敤浜庣‘瀹氬簲閲嶆柊鍔犲叆鍝簺缁勩��</returns>
+      <param name="request">褰撳墠杩炴帴鐨� IRequest銆�</param>
+      <param name="groups">杩涜璋冪敤鐨勮繛鎺ュ0鏄庢槸鍏朵竴閮ㄥ垎鐨勭粍銆�</param>
+      <param name="connectionId">杩涜閲嶆柊杩炴帴鐨勫鎴风鐨� ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>澶勭悊 HostContext 鐨勬墍鏈夎姹傘��</summary>
+      <returns>澶勭悊 HostContext 鐨勬墍鏈夎姹傜殑浠诲姟銆�</returns>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Trace">
+      <summary>鑾峰彇闆嗙嚎鍣ㄨ繛鎺ワ紝杩欎簺杩炴帴浣垮簲鐢ㄧ▼搴忚兘澶熻窡韪唬鐮佺殑鎵ц锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</summary>
+      <returns>闆嗙嚎鍣ㄨ繛鎺ワ紝杩欎簺杩炴帴浣垮簲鐢ㄧ▼搴忚兘澶熻窡韪唬鐮佺殑鎵ц锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions">
+      <summary>鎻愪緵鏁翠釜闆嗙嚎鍣ㄨ繘绋嬬殑闆嗙嚎鍣ㄧ鐞嗗櫒鎵╁睍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.EnsureHub(Microsoft.AspNet.SignalR.Hubs.IHubManager,System.String,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter[])">
+      <summary>纭鏈夊叧闆嗙嚎鍣ㄦ弿杩扮鐨勬墍鏈変俊鎭��</summary>
+      <returns>鐢ㄤ簬纭鎵�鏈変俊鎭殑闆嗙嚎鍣ㄦ弿杩扮銆�</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="counters">鎬ц兘璁℃暟鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.GetHubMethods(Microsoft.AspNet.SignalR.Hubs.IHubManager,System.String)">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>瑕佸缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鏂规硶闆嗗悎銆�</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.GetHubs(Microsoft.AspNet.SignalR.Hubs.IHubManager)">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>鎵�鏈夊彲鐢ㄩ泦绾垮櫒鐨勬绱€��</returns>
+      <param name="hubManager">闆嗙嚎鍣ㄧ鐞嗗櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute">
+      <summary>琛ㄧず闆嗙嚎鍣ㄧ殑鏂规硶鍚嶇О鐗规�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute.#ctor(System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="methodName">鏂规硶鐨勫悕绉般��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubMethodNameAttribute.MethodName">
+      <summary>鑾峰彇鎴栬缃柟娉曞悕绉般��</summary>
+      <returns>鏂规硶鍚嶇О銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute">
+      <summary>琛ㄧず闆嗙嚎鍣ㄥ悕绉扮殑鐗规�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute.#ctor(System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubNameAttribute.HubName">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勫悕绉般��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule">
+      <summary>鐢ㄤ簬绠�鍖� IHubPipelineModules 鐨勫疄鐜扮殑鍏叡鍩虹被銆傛ā鍧楀彲浠ユ埅鑾峰苟鑷畾涔夊悇绉嶉泦绾垮櫒澶勭悊闃舵锛屽杩炴帴銆侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍銆傚彲浠ラ�氳繃璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 鏉ユ縺娲绘ā鍧椼�傛坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勭粍鍚堟ā鍧楁槸閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 鎺ュ彛璋冪敤鐨勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="connect">瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔墍杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="disconnect">瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</summary>
+      <returns>鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫凡鍖呰鍑芥暟銆�</returns>
+      <param name="send">鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="reconnect">瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁扮敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>涓�涓凡鍖呰鍑芥暟锛岀敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涚粍銆�</returns>
+      <param name="rejoiningGroups">涓�涓嚱鏁帮紝鐢ㄤ簬纭畾搴斿厑璁稿鎴风閲嶆柊鍔犲叆鍝簺缁勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑鏂紑杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterIncoming(System.Object,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>鍦ㄧ◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲叆缁勪欢浠ュ強鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曟墽琛屽畬姣曞悗锛屽皢璋冪敤姝ゆ柟娉曘��</summary>
+      <returns>鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曞彲鑳芥彁渚涚殑鏂扮殑鎴栨洿鏂扮殑杩斿洖鍊�</returns>
+      <param name="result">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑杩斿洖鍊�</param>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲嚭缁勪欢涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曘�傝繖骞朵笉鎰忓懗鐫�鎵�鏈夊鎴风閮藉凡鏀跺埌闆嗙嚎鍣ㄦ柟娉曡皟鐢紝浣嗙‘瀹炶〃绀洪泦绾垮櫒璋冪敤娑堟伅宸叉垚鍔熷彂甯冨埌娑堟伅鎬荤嚎銆�</summary>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnAfterReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑閲嶆柊杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 涔嬪悗锛屽皢璋冪敤姝ゆ柟娉曪紙濡傛灉鍙兘锛夈��</summary>
+      <param name="hub">瀹㈡埛绔凡閲嶆柊杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeAuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑 AuthorizeConnect 缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧楀皢涓嶄細杩愯锛屽苟涓斿皢涓嶅厑璁稿鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�瀹氫箟鐨勯泦绾垮櫒鐨勫鎴风鏂规硶璋冪敤銆�</summary>
+      <returns>濡傛灉瀹㈡埛绔湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡闃呯殑闆嗙嚎鍣ㄧ殑鎻忚堪銆�</param>
+      <param name="request">灏濊瘯璁㈤槄闆嗙嚎鍣ㄧ殑瀹㈡埛绔殑杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeConnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勮繛鎺ョ粍浠朵互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeDisconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑鏂紑杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勬柇寮�杩炴帴缁勪欢浠ュ強 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲叆缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯涓嶄細鎵ц閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙婃湇鍔″櫒绔泦绾垮櫒鏂规硶璋冪敤銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢紝鎴栬�呴�氳繃杩斿洖 false 鍦� <see cref="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeIncoming(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勪紶鍏ョ粍浠朵互鍙婃湇鍔″櫒绔泦绾垮櫒鏂规硶璋冪敤锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeOutgoing(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑浼犲嚭缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯涓嶄細鎵ц閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙婂鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄣ��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勪紶鍑虹粍浠朵互鍙婂鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnBeforeReconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>鍦ㄦ墽琛岀◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勪换浣曟ā鍧楃殑閲嶆柊杩炴帴缁勪欢涔嬪墠锛屽皢璋冪敤姝ゆ柟娉曘�傚鏋滄鏂规硶杩斿洖 false锛屽垯閭d簺涔嬪悗娣诲姞鐨勬ā鍧椾互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 鏂规硶灏嗕笉浼氳繍琛屻��</summary>
+      <returns>濡傛灉搴旀墽琛屼箣鍚庢坊鍔犵殑妯″潡鐨勯噸鏂拌繛鎺ョ粍浠朵互鍙� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瀹㈡埛绔凡閲嶆柊杩炴帴鍒扮殑闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.OnIncomingError(Microsoft.AspNet.SignalR.Hubs.ExceptionContext,Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>褰撴湇鍔″櫒绔泦绾垮櫒鏂规硶鎴栬�呯◢鍚庢坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勬ā鍧楃殑浼犲叆缁勪欢寮曞彂浜嗘湭鎹曡幏鐨勫紓甯告椂锛屽皢璋冪敤姝ゆ柟娉曘�備娇鐢ㄦ鏂规硶瑙傚療寮傚父鏃讹紝涓嶄細闃绘璇ュ紓甯稿悜涓婂啋娉″埌鍏朵粬妯″潡銆�</summary>
+      <param name="exceptionContext">琛ㄧず鍦ㄦ湇鍔″櫒绔皟鐢ㄦ湡闂村紩鍙戠殑寮傚父銆傚彲浠ヤ娇鐢ㄦ涓婁笅鏂囨洿鏀归敊璇垨璁剧疆缁撴灉銆�</param>
+      <param name="invokerContext">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubRequest">
+      <summary>鎻愪緵涓庤繛鎺ュ埌闆嗙嚎鍣ㄧ殑 SignalR 杩炴帴璇锋眰杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubRequest.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Hub">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勮繛鎺ュ�笺��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑杩炴帴鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Id">
+      <summary>鑾峰彇鎴栬缃繛鎺� ID銆�</summary>
+      <returns>杩炴帴 ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.Method">
+      <summary>鑾峰彇鎴栬缃姹傛柟娉曘��</summary>
+      <returns>璇锋眰鏂规硶銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.ParameterValues">
+      <summary>鑾峰彇鎴栬缃弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubRequest.State">
+      <summary>鑾峰彇鎴栬缃姹傜殑褰撳墠鐘舵�併��</summary>
+      <returns>璇锋眰鐨勫綋鍓嶇姸鎬併��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.HubResponse">
+      <summary>琛ㄧず浠庝紶鍏ラ泦绾垮櫒璇锋眰杩斿洖鐨勫搷搴斻��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.HubResponse.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Error">
+      <summary>鑾峰彇鎴栬缃敱浜庤皟鐢ㄩ泦绾垮櫒鏂规硶鑰屽彂鐢熺殑寮傚父銆�</summary>
+      <returns>鐢变簬璋冪敤闆嗙嚎鍣ㄦ柟娉曡�屽彂鐢熺殑寮傚父銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.ErrorData">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.HubException" /> 涓寘鍚殑棰濆閿欒鏁版嵁</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Id">
+      <summary>鑾峰彇鎴栬缃搷浣滅殑 ID銆�</summary>
+      <returns>鎿嶄綔鐨� ID銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.IsHubException">
+      <summary>鎸囩ず Error 鏄惁涓� <see cref="T:Microsoft.AspNet.SignalR.HubException" />銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.Result">
+      <summary>鑾峰彇鎴栬缃皟鐢ㄧ殑缁撴灉銆�</summary>
+      <returns>璋冪敤鐨勭粨鏋溿��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.StackTrace">
+      <summary>鑾峰彇鎴栬缃敱浜庤皟鐢ㄩ泦绾垮櫒鏂规硶鑰屽彂鐢熺殑寮傚父鐨勫爢鏍堣窡韪��</summary>
+      <returns>鐢变簬璋冪敤闆嗙嚎鍣ㄦ柟娉曡�屽彂鐢熺殑寮傚父鐨勫爢鏍堣窡韪��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.HubResponse.State">
+      <summary>鑾峰彇鎴栬缃洿鏀瑰鑷村線杩旂殑鐘舵�併��</summary>
+      <returns>鏇存敼瀵艰嚧寰�杩旂殑鐘舵�併��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAssemblyLocator">
+      <summary>鏌ユ壘鏌愪釜绋嬪簭闆嗗苟杩斿洖鏈夊叧鍏舵ā鍧楃殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖妯″潡寮曠敤鐨勭▼搴忛泦鐨勫垪琛ㄣ��</summary>
+      <returns>妯″潡寮曠敤鐨勭▼搴忛泦鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection">
+      <summary>灏嗙敱 <see cref="T:System.Attribute" /> 瀹炵幇鐨勭鍙o紝鍙巿鏉冨鎴风杩炴帴鍒� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubConnection.AuthorizeHubConnection(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鏍规嵁缁欏畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubCallerContext" />锛岀‘瀹氬鎴风鏄惁鏈夋潈杩炴帴鍒� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭繛鎺ュ埌闆嗙嚎鍣紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡繛鎺ュ埌鐨勯泦绾垮櫒鐨勬弿杩般��</param>
+      <param name="request">鏉ヨ嚜瀹㈡埛绔殑杩炴帴璇锋眰銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation">
+      <summary>灏嗙敱 <see cref="T:System.Attribute" /> 瀹炵幇鐨勬帴鍙o紝鍙互鎺堟潈璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IAuthorizeHubMethodInvocation.AuthorizeHubMethodInvocation(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Boolean)">
+      <summary>鏍规嵁缁欏畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛岀‘瀹氬鎴风鏄惁鏈夋潈璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶銆�</summary>
+      <returns>濡傛灉璋冪敤鏂规湁鏉冭皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubIncomingInvokerContext">
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext" />锛屾彁渚涙湁鍏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鏂规硶璋冪敤鐨勮缁嗕俊鎭��</param>
+      <param name="appliesToMethod">鎸囩ず鎺ュ彛瀹炰緥鏄惁鏄洿鎺ュ簲鐢ㄤ簬鏂规硶鐨勭壒鎬с��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy">
+      <summary>瀹㈡埛绔泦绾垮櫒鐨勬湇鍔″櫒绔唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IClientProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IClientProxy" /> 瀹炰緥琛ㄧず鐨勮繛鎺ョ殑鏂规硶銆�</summary>
+      <returns>琛ㄧず鏁版嵁浣曟椂宸插彂閫佸埌瀹㈡埛绔殑浠诲姟銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶鐨勫悕绉�</param>
+      <param name="args">瑕佷紶閫掔粰瀹㈡埛绔殑鍙傛暟</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHub">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀轰笌杩炴帴鍒伴泦绾垮櫒鐨� SignalR 杩炴帴杩涜閫氫俊鐨勬柟娉曘��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Clients">
+      <summary>鑾峰彇鎴栬缃鍦ㄨ繛鎺ュ埌闆嗙嚎鍣ㄧ殑瀹㈡埛绔��</summary>
+      <returns>姝e湪杩炴帴鍒伴泦绾垮櫒鐨勫鎴风銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Context">
+      <summary>鑾峰彇鎴栬缃湁鍏宠皟鐢ㄥ鎴风鐨勪俊鎭��</summary>
+      <returns>鏈夊叧璋冪敤瀹㈡埛绔殑淇℃伅銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHub.Groups">
+      <summary>鑾峰彇鎴栬缃闆嗙嚎鍣ㄥ疄渚嬬殑缁勭鐞嗗櫒銆�</summary>
+      <returns>姝ら泦绾垮櫒瀹炰緥鐨勭粍绠$悊鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnConnected">
+      <summary>褰撹繛鎺ヨ繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnDisconnected">
+      <summary>褰撹繛鎺ヤ笌姝ら泦绾垮櫒瀹炰緥鏂紑鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず鏂紑杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHub.OnReconnected">
+      <summary>褰撹繛鎺ラ噸鏂拌繛鎺ュ埌姝ら泦绾垮櫒瀹炰緥鏃惰皟鐢ㄣ��</summary>
+      <returns>琛ㄧず閲嶆柊杩炴帴鎿嶄綔鐨勪换鍔″璞°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubActivator">
+      <summary>鎻愪緵鐢ㄤ簬鍒涘缓闆嗙嚎鍣ㄥ疄渚嬬殑鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubActivator.Create(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>鍒涘缓鏂扮殑闆嗙嚎鍣ㄥ疄渚嬨��</summary>
+      <returns>鏂板垱寤虹殑闆嗙嚎鍣ㄣ��</returns>
+      <param name="descriptor">闆嗙嚎鍣ㄦ弿杩扮銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨勫崟涓� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.Caller"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.Others"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.OthersInGroup(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext.OthersInGroups(System.Collections.Generic.IList{System.String})"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext">
+      <summary>灏佽鏈夊叧 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� SignalR 杩炴帴鐨勬墍鏈変俊鎭��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.All">
+      <summary>鑾峰彇鎴栬缃墍鏈夎繛鎺ョ殑瀹㈡埛绔��</summary>
+      <returns>鎵�鏈夊凡杩炴帴鐨勫鎴风銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.AllExcept(System.String[])">
+      <summary>杩斿洖闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</summary>
+      <returns>闄ゆ寚瀹氱殑璋冪敤瀹㈡埛绔箣澶栫殑鎵�鏈夊鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Client(System.String)">
+      <summary>杩斿洖鍏锋湁鎸囧畾杩炴帴 ID 鐨勮繛鎺ョ殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勫鎴风鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Clients(System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Group(System.String,System.String[])">
+      <summary>杩斿洖鎸囧畾缁勭殑鍔ㄦ�佽〃绀哄舰寮忋��</summary>
+      <returns>鎸囧畾鐨勭粍鐨勫姩鎬佽〃绀哄舰寮忋��</returns>
+      <param name="groupName">缁勭殑鍚嶇О銆�</param>
+      <param name="excludeConnectionIds">瑕佹帓闄ょ殑杩炴帴 ID 鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.Groups(System.Collections.Generic.IList{System.String},System.String[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext.User(System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider">
+      <summary>鎻忚堪闆嗙嚎鍣ㄦ弿杩扮鎻愪緵绋嬪簭锛岃绋嬪簭鎻愪緵鍙敤闆嗙嚎鍣ㄧ殑鐩稿叧淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.GetHubs">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勯泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+      <summary>灏濊瘯妫�绱㈠叿鏈夌粰瀹氬悕绉扮殑闆嗙嚎鍣ㄣ��</summary>
+      <returns>濡傛灉鎵惧埌浜嗛泦绾垮櫒锛屽垯涓� True</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="descriptor">妫�绱㈠埌鐨勬弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext">
+      <summary>婧愯嚜瀹㈡埛绔殑鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Args">
+      <summary>鑾峰彇瑕佷紶閫掔粰琚皟鐢ㄦ柟娉曠殑鍙傛暟銆�</summary>
+      <returns>瑕佷紶閫掔粰琚皟鐢ㄦ柟娉曠殑鍙傛暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.Hub">
+      <summary>鑾峰彇闆嗙嚎鍣ㄥ疄渚嬶紝璇ュ疄渚嬩腑鍖呭惈鎴愬憳褰㈠紡鐨勮璋冪敤鏂规硶銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬶紝鍏朵腑鍖呭惈鎴愬憳褰㈠紡鐨勮璋冪敤鏂规硶銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.MethodDescriptor">
+      <summary>鑾峰彇瀹㈡埛绔墍璋冪敤鐨勬柟娉曠殑璇存槑銆�</summary>
+      <returns>瀹㈡埛绔墍璋冪敤鐨勬柟娉曠殑璇存槑銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext.StateTracker">
+      <summary>鑾峰彇琛ㄧず璋冪敤鏃跺鎴风涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</summary>
+      <returns>琛ㄧず璋冪敤鏃跺鎴风涓婄殑闆嗙嚎鍣ㄧ姸鎬佺殑閿�/鍊煎瓨鍌ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubManager">
+      <summary>鎻忚堪闆嗙嚎鍣ㄧ鐞嗗櫒 - 鏁翠釜闆嗙嚎鍣ㄥ拰鏂规硶鏌ユ壘杩囩▼涓殑瑕佺偣銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHub(System.String)">
+      <summary>妫�绱㈠崟涓泦绾垮櫒鎻忚堪绗︺��</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒鎻忚堪绗︼紱鍚﹀垯涓� Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethod(System.String,System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄧ粰瀹氶泦绾垮櫒涓婃绱㈠叿鏈夌粰瀹氬悕绉扮殑鏂规硶銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="method">瑕佹煡鎵剧殑鏂规硶鐨勫悕绉般��</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubMethods(System.String,System.Func{Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Boolean})">
+      <summary>鑾峰彇鍙缁欏畾闆嗙嚎鍣ㄨ皟鐢ㄧ殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶鐨勫垪琛ㄣ��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="predicate">鐢ㄤ簬绛涢�夌粨鏋滅殑鍙�夎皳璇嶃��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.GetHubs(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.Boolean})">
+      <summary>妫�绱笌缁欏畾璋撹瘝鍖归厤鐨勬墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮鐨勫垪琛ㄣ��</returns>
+      <param name="predicate">璋撹瘝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHub(System.String)">
+      <summary>灏嗙粰瀹氶泦绾垮櫒鍚嶇О瑙f瀽涓轰竴涓叿浣撶殑瀵硅薄銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓洪泦绾垮櫒瀹炵幇瀹炰緥锛涘惁鍒欎负 Null銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubManager.ResolveHubs">
+      <summary>灏嗘墍鏈夊彲鐢ㄩ泦绾垮櫒瑙f瀽涓哄叾鍏蜂綋瀵硅薄銆�</summary>
+      <returns>闆嗙嚎鍣ㄥ疄渚嬬殑鍒楄〃銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext">
+      <summary>婧愯嚜鏈嶅姟鍣ㄧ殑瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Connection">
+      <summary>鑾峰彇涓庡凡璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曪紙璇ユ柟娉曡皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曪級鐨勫鎴风瀵瑰簲鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />锛堝鏋滄湁锛夈��</summary>
+      <returns>涓庡凡璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曪紙璇ユ柟娉曡皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曪級鐨勫鎴风瀵瑰簲鐨� <see cref="T:Microsoft.AspNet.SignalR.IConnection" />锛堝鏋滄湁锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.ExcludedSignals">
+      <summary>鑾峰彇淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�<see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal" /> 涓轰綍鍊奸兘涓嶅簲鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+      <returns>灞炰簬鏃犺<see cref="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal" /> 涓轰綍鍊奸兘涓嶅簲鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Invocation">
+      <summary>鑾峰彇瑕佸瀹㈡埛绔繘琛岀殑鏂规硶璋冪敤鐨勮鏄庛��</summary>
+      <returns>瑕佸瀹㈡埛绔繘琛岀殑鏂规硶璋冪敤鐨勮鏄庛��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signal">
+      <summary>鑾峰彇淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥濇帴鏀舵柟娉曡皟鐢ㄧ殑瀹㈡埛绔殑淇″彿锛圕onnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+      <returns>灞炰簬鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext.Signals">
+      <summary>灞炰簬鏃犺鎺ユ敹鏂规硶璋冪敤鐨勫鎴风鐨勪俊鍙凤紙ConnectionId銆侀泦绾垮櫒绫诲瀷鍚嶇О鎴栭泦绾垮櫒绫诲瀷鍚嶇О +鈥�.鈥�+ 缁勫悕锛夈��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline">
+      <summary>鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夌殑妯″潡闆嗗悎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)">
+      <summary>灏� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule" /> 娣诲姞鍒伴泦绾垮櫒绠¢亾銆傚厛娣诲姞鍒扮閬撶殑妯″潡灏嗗寘瑁呭悗娣诲姞鍒扮閬撶殑妯″潡銆傚湪璋冪敤 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 涓殑浠讳綍鏂规硶涔嬪墠锛屽繀椤诲厛灏嗘墍鏈夋ā鍧楁坊鍔犲埌绠¢亾銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鏈韩鍔犱笂鏂版坊鍔犵殑妯″潡浣� <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 璋冪敤鍙互杩涜閾炬帴銆傛鏂规硶鍙浆鍙樿皟鐢ㄥ畠鏃舵墍浣跨敤鐨勭閬擄紝鍥犳鏃犻渶瀛樺偍鍏剁粨鏋溿��</returns>
+      <param name="pipelineModule">鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夌殑妯″潡銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker">
+      <summary>姝ゆ帴鍙g殑瀹炵幇璐熻矗鎵ц瀹屾垚鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紙濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍锛夋墍闇�鐨勬搷浣溿��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.AuthorizeConnect(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest)">
+      <summary>鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆�</summary>
+      <returns>濡傛灉瀹㈡埛绔湁鏉冭闃呭鎴风闆嗙嚎鍣ㄦ柟娉曡皟鐢紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曡繛鎺ュ埌鐨勯泦绾垮櫒鐨勬弿杩般��</param>
+      <param name="request">鐢卞鎴风鍙戝嚭鐨勮繛鎺ヨ姹傦紝鍏朵腑搴斿寘鎷鎴风鐨� <see cref="T:System.Security.Principal.IPrincipal" /> 鐢ㄦ埛銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Connect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔墍杩炴帴鍒扮殑 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Disconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔繛鎺ュ埌鐨勬瘡涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔凡涓庝箣鏂紑杩炴帴鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Invoke(Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext)">
+      <summary>璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曘��</summary>
+      <returns>鎻愪緵鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑杩斿洖鍊肩殑寮傛鎿嶄綔銆�</returns>
+      <param name="context">鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曡皟鐢ㄧ殑璇存槑銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Reconnect(Microsoft.AspNet.SignalR.Hubs.IHub)">
+      <summary>瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="hub">瀹㈡埛绔噸鏂拌繛鎺ュ埌鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.RejoiningGroups(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String})">
+      <summary>姝ゆ柟娉曠敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>鍏佽瀹㈡埛绔噸鏂板姞鍏ョ殑缁勭殑鍒楄〃銆�</returns>
+      <param name="hubDescriptor">瀹㈡埛绔皾璇曢噸鏂板姞鍏ュ叾缁勭殑闆嗙嚎鍣ㄧ殑鎻忚堪銆�</param>
+      <param name="request">鐢卞皾璇曢噸鏂板姞鍏ョ粍鐨勫鎴风鍙戝嚭鐨勯噸鏂拌繛鎺ヨ姹傘��</param>
+      <param name="groups">瀹㈡埛绔湪閲嶆柊杩炴帴涔嬪墠澹扮О鏄叾鎴愬憳鐨勭粍鐨勫垪琛紝灞炰簬鐩稿叧闆嗙嚎鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker.Send(Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext)">
+      <summary>璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="context">瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤鐨勮鏄庛��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule">
+      <summary>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule" /> 鍙互鎴幏骞惰嚜瀹氫箟鍚勭闆嗙嚎鍣ㄥ鐞嗛樁娈碉紝濡傝繛鎺ャ�侀噸鏂拌繛鎺ャ�佹柇寮�杩炴帴銆佽皟鐢ㄦ湇鍔″櫒绔泦绾垮櫒鏂规硶銆佽皟鐢ㄥ鎴风闆嗙嚎鍣ㄦ柟娉曘�佹巿鏉冮泦绾垮櫒瀹㈡埛绔拰閲嶆柊鍔犲叆闆嗙嚎鍣ㄧ粍銆傚彲浠ラ�氳繃璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipeline.AddModule(Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule)" /> 鏉ユ縺娲昏繖浜涙ā鍧椼�傛坊鍔犲埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipeline" /> 鐨勭粍鍚堟ā鍧楁槸閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker" /> 鎺ュ彛璋冪敤鐨勩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildAuthorizeConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Boolean})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板皢鍦ㄥ鎴风璁㈤槄灞炰簬 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勪俊鍙蜂箣鍓嶈皟鐢ㄣ�傞粯璁ゆ儏鍐典笅锛�<see cref="T:Microsoft.AspNet.SignalR.Hubs.AuthorizeModule" /> 灏嗗湪 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 涓婃煡鎵剧壒鎬э紝杩欐湁鍔╀簬纭畾瀹㈡埛绔槸鍚︽湁鏉冭闃呮墍鎻忚堪闆嗙嚎鍣ㄧ殑鏂规硶璋冪敤銆傚鏋滃鎴风鏈夋潈璁㈤槄瀹㈡埛绔泦绾垮櫒鏂规硶璋冪敤锛屽垯璇ュ嚱鏁拌繑鍥� true锛涘惁鍒欒繑鍥� false銆�</summary>
+      <returns>涓�涓凡鍖呰鐨勫嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</returns>
+      <param name="authorizeConnect">涓�涓嚱鏁帮紝鐢ㄤ簬鎸囩ず瀹㈡埛绔槸鍚︽湁鏉冭繛鎺ュ埌鎵�鎻忚堪鐨勯泦绾垮櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildConnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnConnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="connect">瀹㈡埛绔繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildDisconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔柇寮�涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鐨勮繛鎺ユ椂閽堝瀹㈡埛绔墍杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnDisconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="disconnect">瀹㈡埛绔柇寮�涓庨泦绾垮櫒鐨勮繛鎺ユ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆傚嵆浣垮皻鏈巿鏉冨鎴风杩炴帴鍒版煇涓�闆嗙嚎鍣紝瀹㈡埛绔篃鏈夋潈璋冪敤璇ラ泦绾垮櫒鐨勬湇鍔″櫒绔柟娉曪紝闄ら潪閫氳繃涓嶆墽琛岃皟鐢ㄥ弬鏁板湪 <see cref="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildIncoming(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubIncomingInvokerContext,System.Threading.Tasks.Task{System.Object}})" /> 涓樆姝㈣皟鐢ㄣ��</summary>
+      <returns>鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="invoke">鐢ㄤ簬璋冪敤鏈嶅姟鍣ㄧ闆嗙嚎鍣ㄦ柟娉曠殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildOutgoing(System.Func{Microsoft.AspNet.SignalR.Hubs.IHubOutgoingInvokerContext,System.Threading.Tasks.Task})">
+      <summary>鍖呰鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</summary>
+      <returns>鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫凡鍖呰鍑芥暟銆�</returns>
+      <param name="send">鐢ㄤ簬璋冪敤瀹㈡埛绔泦绾垮櫒鏂规硶鐨勫嚱鏁般��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildReconnect(System.Func{Microsoft.AspNet.SignalR.Hubs.IHub,System.Threading.Tasks.Task})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁板湪瀹㈡埛绔噸鏂拌繛鎺ュ埌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 鏃堕拡瀵瑰鎴风鎵�杩炴帴鍒扮殑姣忎釜 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 璋冪敤銆傞粯璁ゆ儏鍐典笅锛岃繖灏嗗鑷磋皟鐢� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IHub" /> 鐨� OnReconnected 鏂规硶銆�</summary>
+      <returns>瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑宸插寘瑁呭嚱鏁般��</returns>
+      <param name="reconnect">瀹㈡埛绔噸鏂拌繛鎺ュ埌闆嗙嚎鍣ㄦ椂瑕佽皟鐢ㄧ殑鍑芥暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubPipelineModule.BuildRejoiningGroups(System.Func{Microsoft.AspNet.SignalR.Hubs.HubDescriptor,Microsoft.AspNet.SignalR.IRequest,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String}})">
+      <summary>鍖呰涓�涓嚱鏁帮紝璇ュ嚱鏁扮敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涘睘浜� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDescriptor" /> 鎵�鎻忚堪鐨勯泦绾垮櫒鐨勭粍銆傞粯璁ゆ儏鍐典笅锛屼細灏嗘鍦ㄩ噸鏂拌繛鎺ュ埌鏈嶅姟鍣ㄧ殑瀹㈡埛绔粠瀹冧滑浠ュ墠鍙兘鏄叾鎴愬憳鐨勬墍鏈夌粍涓垹闄わ紝鍥犱负涓嶅彈淇′换鐨勫鎴风鍙兘浼氬0绉板畠浠槸鏌愪簺缁勭殑鎴愬憳锛屼絾杩欎簺瀹㈡埛绔嵈浠庢湭鑾峰緱鍔犲叆杩欎簺缁勭殑鎺堟潈銆�</summary>
+      <returns>涓�涓凡鍖呰鍑芥暟锛岀敤浜庣‘瀹氬簲鍏佽瀹㈡埛绔噸鏂板姞鍏ュ摢浜涚粍銆�</returns>
+      <param name="rejoiningGroups">涓�涓嚱鏁帮紝鐢ㄤ簬纭畾搴斿厑璁稿鎴风閲嶆柊鍔犲叆鍝簺缁勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser">
+      <summary>閫氳繃 <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubDispatcher" /> 澶勭悊鍒嗘瀽浼犲叆璇锋眰銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IHubRequestParser.Parse(System.String,Newtonsoft.Json.JsonSerializer)">
+      <summary>灏嗕紶鍏ラ泦绾垮櫒璐熻浇鍒嗘瀽涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" />銆�</summary>
+      <returns>鐢熸垚鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.HubRequest" />銆�</returns>
+      <param name="data">鍘熷闆嗙嚎鍣ㄨ礋杞姐��</param>
+      <param name="serializer">鐢ㄤ簬鍒嗘瀽鏁版嵁鐨� JsonSerializer銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier">
+      <summary>鍚堝苟銆佺缉鍑忓拰缂撳瓨闆嗙嚎鍣ㄧ殑 JavaScript銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier.Minify(System.String)">
+      <summary>缂╁噺 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier" /> 鐨勬寚瀹氭簮銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptMinifier" /> 鐨勬寚瀹氭簮銆�</returns>
+      <param name="source">缂╁噺鐨勬簮銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator">
+      <summary>涓� JavaScript 鎺ュ彛鐢熸垚浠g悊鏈嶅姟銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator.GenerateProxy(System.String)">
+      <summary>涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator" /> 鐨勬湇鍔� URL 鐢熸垚浠g悊銆�</summary>
+      <returns>鐢ㄤ簬鐢熸垚 <see cref="T:Microsoft.AspNet.SignalR.Hubs.IJavaScriptProxyGenerator" /> 鐨勬湇鍔� URL 鐨勪唬鐞嗐��</returns>
+      <param name="serviceUrl">URL 鐨勬湇鍔°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider">
+      <summary>鎻忚堪鐢ㄤ簬鐢熸垚缁欏畾闆嗙嚎鍣ㄤ笂鐨勫彲鐢ㄦ柟娉曢泦鍚堢殑闆嗙嚎鍣ㄦ柟娉曟彁渚涚▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>妫�绱㈢粰瀹氶泦绾垮櫒涓婄殑鎵�鏈夋柟娉曘��</summary>
+      <returns>鍙敤鏂规硶銆�</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>灏濊瘯妫�绱㈡柟娉曘��</summary>
+      <returns>濡傛灉鎵惧埌浜嗘柟娉曪紝鍒欎负 True銆�</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮瀵硅薄</param>
+      <param name="method">鏂规硶鐨勫悕绉般��</param>
+      <param name="descriptor">濡傛灉鎵惧埌锛屽垯涓鸿鏂规硶鐨勬弿杩扮锛涘惁鍒欎负 Null銆�</param>
+      <param name="parameters">瑕佸尮閰嶇殑鏂规硶鍙傛暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.IParameterResolver">
+      <summary>鎻忚堪涓�涓彲鍩轰簬鎻愪緵鐨勪俊鎭В鏋愪笌鍙傛暟鍖归厤鐨勫�肩殑鍙傛暟瑙f瀽绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.IParameterResolver.ResolveMethodParameters(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍩轰簬鎻愪緵鐨勫璞¤В鏋愭柟娉曞弬鏁板�笺��</summary>
+      <returns>鍙傛暟鍊肩殑鏁扮粍銆�</returns>
+      <param name="method">鏂规硶鎻忚堪绗︺��</param>
+      <param name="values">瑕佷粠涓В鏋愬弬鏁板�肩殑鍊肩殑鍒楄〃銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄦ柟娉曠殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Attributes">
+      <summary>鑾峰彇鎴栬缃檮鍔犲埌姝ゆ柟娉曠殑鐗规�с��</summary>
+      <returns>闄勫姞鍒版鏂规硶鐨勭壒鎬с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Hub">
+      <summary>鑾峰彇闆嗙嚎鍣ㄦ弿杩扮瀵硅薄锛屽嵆姝ゆ柟娉曠殑鐩爣銆�</summary>
+      <returns>闆嗙嚎鍣ㄦ弿杩扮瀵硅薄锛屽嵆姝ゆ柟娉曠殑鐩爣銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Invoker">
+      <summary>鑾峰彇鎴栬缃柟娉曡皟鐢ㄥ鎵樸�備娇鐢ㄧ洰鏍囬泦绾垮櫒鍜岃皟鐢ㄥ弬鏁版暟缁勪綔涓哄畠鐨勫弬鏁般��</summary>
+      <returns>鏂规硶璋冪敤濮旀墭銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.Parameters">
+      <summary>鑾峰彇鎴栬缃彲鐢ㄧ殑鏂规硶鍙傛暟銆�</summary>
+      <returns>鍙敤鐨勬柟娉曞弬鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor.ReturnType">
+      <summary>鑾峰彇鎴栬缃鏂规硶鐨勮繑鍥炵被鍨嬨��</summary>
+      <returns>姝ゆ柟娉曠殑杩斿洖绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MethodExtensions">
+      <summary>琛ㄧず SignalR 闆嗙嚎鍣ㄧ殑鏂规硶鎵╁睍銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MethodExtensions.Matches(Microsoft.AspNet.SignalR.Hubs.MethodDescriptor,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鎸囧畾鏂规硶鎵╁睍鏄惁涓庡叾浠栨柟娉曟弿杩扮鍖归厤銆�</summary>
+      <returns>濡傛灉鏂规硶鎵╁睍涓庡叾浠栨柟娉曟弿杩扮鍖归厤锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="methodDescriptor">鏂规硶鎻忚堪绗︺��</param>
+      <param name="parameters">鍙傛暟鍒楄〃銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.Collections.Generic.IList{System.String},System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.GetInvocationData(System.String,System.Object[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.Invoke(System.String,System.Object[])"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.MultipleSignalProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException">
+      <summary>琛ㄧず褰撳鎴风鏃犳潈杩炴帴鍒伴泦绾垮櫒鏃跺紩鍙戠殑寮傚父銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+      <summary>浣跨敤搴忓垪鍖栨暟鎹垵濮嬪寲 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="info">鏈夊叧寮傚父鐨勫簭鍒楀寲淇℃伅銆�</param>
+      <param name="context">鏈夊叧婧愭垨鐩爣鐨勪笂涓嬫枃淇℃伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.String)">
+      <summary>浣跨敤閿欒娑堟伅鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="message">鏈夊叧寮傚父鐨勬秷鎭��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException.#ctor(System.String,System.Exception)">
+      <summary>浣跨敤閿欒娑堟伅鍜屽唴閮ㄥ紓甯稿垵濮嬪寲 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NotAuthorizedException" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="message">鏈夊叧寮傚父鐨勬秷鎭��</param>
+      <param name="inner">瀵艰嚧寮傚父鐨勯敊璇��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier">
+      <summary>琛ㄧず鍊间负 null 鐨� Javascript 缂╁噺绋嬪簭銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.Instance">
+      <summary>鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier" /> 瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullJavaScriptMinifier.Minify(System.String)">
+      <summary>缂╁噺 Javascript 鐨勬寚瀹氭簮銆�</summary>
+      <returns>缂╁噺鐨勬簮銆�</returns>
+      <param name="source">瑕佺缉鍑忕殑婧愩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor">
+      <summary>Provides details about the null method.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.#ctor(System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor" /> class.</summary>
+      <param name="methodName">The name for this null method.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Attributes">
+      <summary>Gets or sets the attributes attached to this method.</summary>
+      <returns>The attributes attached to this method.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Invoker">
+      <summary>Gets or sets the method invocation delegate. Takes a target hub and an array of invocation arguments as it's arguments.</summary>
+      <returns>The method invocation delegate.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.NullMethodDescriptor.Parameters">
+      <summary>Gets or sets the available method parameters.</summary>
+      <returns>The available method parameters.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor">
+      <summary>琛ㄧず鏈夊叧鍗曚釜闆嗙嚎鍣ㄦ柟娉曞弬鏁扮殑淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.Name">
+      <summary>鑾峰彇鎴栬缃弬鏁板悕绉般��</summary>
+      <returns>鍙傛暟鍚嶇О銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor.ParameterType">
+      <summary>鑾峰彇鎴栬缃弬鏁扮被鍨嬨��</summary>
+      <returns>鍙傛暟绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider">
+      <summary>鎻忚堪闆嗙嚎鍣ㄦ弿杩扮鎻愪緵绋嬪簭锛屽苟鎻愪緵鏈夊叧鍙敤闆嗙嚎鍣ㄧ殑鍙嶅皠淇℃伅銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.BuildHubsCache">
+      <summary>妫�绱㈢敤浜庣敓鎴愰泦绾垮櫒缂撳瓨鐨勮繛鎺ラ泦鍚堛��</summary>
+      <returns>鐢ㄤ簬鐢熸垚闆嗙嚎鍣ㄧ紦瀛樼殑杩炴帴闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.GetHubs">
+      <summary>妫�绱㈡墍鏈夊彲鐢ㄩ泦绾垮櫒銆�</summary>
+      <returns>鍙敤闆嗙嚎鍣ㄧ殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.TryGetHub(System.String,Microsoft.AspNet.SignalR.Hubs.HubDescriptor@)">
+      <summary>灏濊瘯妫�绱㈠叿鏈夌粰瀹氬悕绉扮殑闆嗙嚎鍣ㄣ��</summary>
+      <returns>濡傛灉鎵惧埌浜嗛泦绾垮櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hubName">瑕佹绱㈢殑闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+      <param name="descriptor">姝ゆ柟娉曡繑鍥炴椂锛屽皢鍖呭惈妫�绱㈠埌鐨勬弿杩扮瀵硅薄銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider">
+      <summary>琛ㄧず鎻忚堪绗︽彁渚涚▼搴忕殑鍙嶅皠鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.GetMethods(Microsoft.AspNet.SignalR.Hubs.HubDescriptor)">
+      <summary>杩斿洖鎻愪緵绋嬪簭鐨勬柟娉曢泦鍚堛��</summary>
+      <returns>鎻愪緵绋嬪簭鐨勬柟娉曢泦鍚堛��</returns>
+      <param name="hub">闆嗙嚎鍣ㄦ弿杩扮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectedMethodDescriptorProvider.TryGetMethod(Microsoft.AspNet.SignalR.Hubs.HubDescriptor,System.String,Microsoft.AspNet.SignalR.Hubs.MethodDescriptor@,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Json.IJsonValue})">
+      <summary>鍦ㄦ寚瀹氱殑 <paramref name="hub" /> 涓悳绱㈡寚瀹氱殑 <paramref name="method" />銆�</summary>
+      <returns>濡傛灉鍦ㄩ泦绾垮櫒涓壘鍒颁笌鍚嶇О/鍙傛暟闆嗗尮閰嶇殑鏂规硶锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="hub">瑕佸湪鍏朵腑鎼滅储鎸囧畾 <paramref name="method" /> 鐨勯泦绾垮櫒銆�</param>
+      <param name="method">瑕佹悳绱㈢殑鏂规硶鍚嶃��</param>
+      <param name="descriptor">濡傛灉鎴愬姛锛屽垯涓哄凡瑙f瀽鐨� <see cref="T:Microsoft.AspNet.SignalR.Hubs.MethodDescriptor" />銆�</param>
+      <param name="parameters">灏嗙敤浜庡府鍔╂煡鎵炬寚瀹� <paramref name="method" /> 鐨勭壒瀹氶噸杞界殑鍙傛暟闆嗐��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper">
+      <summary>琛ㄧず鍙嶅皠甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper.GetAttributeValue``2(System.Reflection.ICustomAttributeProvider,System.Func{``0,``1})">
+      <summary>鑾峰彇姝ゅ府鍔╁櫒鐨勭壒鎬у�笺��</summary>
+      <returns>姝ゅ府鍔╁櫒鐨勭壒鎬у�笺��</returns>
+      <param name="source">瑕佷粠涓幏鍙栧�肩殑婧愩��</param>
+      <param name="valueGetter">鍊� getter銆�</param>
+      <typeparam name="TAttribute">鐗规�х殑绫诲瀷銆�</typeparam>
+      <typeparam name="TResult">缁撴灉鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.ReflectionHelper.GetExportedHubMethods(System.Type)">
+      <summary>鑾峰彇宸插鍑洪泦绾垮櫒鏂规硶鐨勫垪琛ㄣ��</summary>
+      <returns>宸插鍑虹殑闆嗙嚎鍣ㄦ柟娉曠殑鍒楄〃銆�</returns>
+      <param name="type">瑕佽幏鍙栫殑鏂规硶鐨勭被鍨嬨��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑淇″彿浠g悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String,System.Collections.Generic.IList{System.String})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Connection"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.GetInvocationData(System.String,System.Object[])">
+      <summary>鑾峰彇涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</summary>
+      <returns>涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</returns>
+      <param name="method">鏂规硶銆�</param>
+      <param name="args">鍙傛暟銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.HubName">
+      <summary>鑾峰彇鎴栬缃泦绾垮櫒鐨勫悕绉般��</summary>
+      <returns>闆嗙嚎鍣ㄧ殑鍚嶇О銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Invoke(System.String,System.Object[])">
+      <summary>璋冪敤鏂规硶骞惰繑鍥炴柟娉曡皟鐢ㄧ殑缁撴灉銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="method">瑕佽皟鐢ㄧ殑鏂规硶銆�</param>
+      <param name="args">鍙傛暟鐨勬暟缁勩��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Invoker"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.SignalProxy.Signal">
+      <summary>鑾峰彇鎴栬缃笌 <see cref="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy" /> 鍏宠仈鐨勪俊鍙枫��</summary>
+      <returns>涓� <see cref="T:Microsoft.AspNet.SignalR.Hubs.SignalProxy" /> 鍏宠仈鐨勪俊鍙枫��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.SignalProxy.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬璋冪敤鎴愬憳鐨勬搷浣滅殑瀹炵幇銆�</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鎻愪緵鏈夊叧鍔ㄦ�佹搷浣滅殑淇℃伅銆�</param>
+      <param name="args">鍦ㄨ皟鐢ㄦ搷浣滄湡闂翠紶閫掔粰瀵硅薄鎴愬憳鐨勫弬鏁般��</param>
+      <param name="result">鎴愬憳璋冪敤鐨勭粨鏋溿��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker">
+      <summary>琛ㄧず鏇存敼璺熻釜瀛楀吀銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="values">瀛楀吀鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.GetChanges">
+      <summary>鑾峰彇涓庤窡韪▼搴忓叧鑱旂殑鏇存敼銆�</summary>
+      <returns>涓庤窡韪▼搴忓叧鑱旂殑鏇存敼銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Hubs.StateChangeTracker.Item(System.String)">
+      <summary>鑾峰彇鎴栬缃笌浣跨敤鎸囧畾閿殑璺熻釜绋嬪簭鍏宠仈鐨勯」銆�</summary>
+      <returns>涓庝娇鐢ㄦ寚瀹氶敭鐨勮窡韪▼搴忓叧鑱旂殑椤广��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy">
+      <summary>琛ㄧず闆嗙嚎鍣ㄤ娇鐢ㄧ殑鐘舵�佷俊鍙蜂唬鐞嗐��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String,System.String,Microsoft.AspNet.SignalR.Hubs.StateChangeTracker)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.GetInvocationData(System.String,System.Object[])">
+      <summary>鑾峰彇涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</summary>
+      <returns>涓庝唬鐞嗗叧鑱旂殑瀹㈡埛绔泦绾垮櫒璋冪敤鏁版嵁銆�</returns>
+      <param name="method">鏂规硶銆�</param>
+      <param name="args">鍙傛暟銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
+      <summary>鎻愪緵鐢ㄤ簬鑾峰彇鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="result">get 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.StatefulSignalProxy.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
+      <summary>鎻愪緵鐢ㄤ簬璁剧疆鎴愬憳鍊肩殑鎿嶄綔鐨勫疄鐜般��</summary>
+      <returns>濡傛灉鎿嶄綔鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="binder">鏈夊叧璋冪敤鍔ㄦ�佹搷浣滅殑瀵硅薄鐨勪俊鎭��</param>
+      <param name="value">set 鎿嶄綔鐨勭粨鏋溿��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Hubs.UserProxy"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Hubs.UserProxy.#ctor(Microsoft.AspNet.SignalR.IConnection,Microsoft.AspNet.SignalR.Hubs.IHubPipelineInvoker,System.String,System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler">
+      <summary>琛ㄧず鐢ㄤ簬澶勭悊搴旂敤璁よ瘉宸ュ叿鍖� (ACK) 鐨勫疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="completeAcksOnTimeout">濡傛灉 ACK 鍦ㄨ秴鏃舵椂宸插畬鎴愶紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+      <param name="ackThreshold">ACK 闃堝�笺��</param>
+      <param name="ackInterval">ACK 闂撮殧銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.CreateAck(System.String)">
+      <summary>鍒涘缓鏂扮殑 ACK 瀵硅薄銆�</summary>
+      <returns>鍒涘缓鐨� ACK 瀵硅薄銆�</returns>
+      <param name="id">鏍囪瘑绗︺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.AckHandler" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.Dispose(System.Boolean)">
+      <summary>閲婃斁姝ゅ疄渚嬩娇鐢ㄧ殑鎵�鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.AckHandler.TriggerAck(System.String)">
+      <summary>瑙﹀彂鎸囧畾鐨� ACK 瀵硅薄銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="id">ACK 鏍囪瘑绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader">
+      <summary>琛ㄧず涓庢暟缁勬鍏宠仈鐨勬枃鏈鍙栧櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader.#ctor(System.ArraySegment{System.Byte},System.Text.Encoding)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="buffer">鏁扮粍娈电紦鍐插尯銆�</param>
+      <param name="encoding">缂栫爜銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ArraySegmentTextReader.Read(System.Char[],System.Int32,System.Int32)">
+      <summary>浠庡綋鍓嶈鍙栧櫒涓鍙栨寚瀹氱殑鏈�澶у瓧绗︽暟锛屽苟浠庢寚瀹氱殑绱㈠紩澶勫紑濮嬶紝灏嗘暟鎹啓鍏ョ紦鍐插尯銆�</summary>
+      <returns>宸茶鍙栫殑瀛楃鏁般��</returns>
+      <param name="buffer">鍖呭惈鍏锋湁绱㈠紩涔嬮棿鐨勫�肩殑鎸囧畾瀛楃鏁扮粍锛岃繖浜涘瓧绗﹀皢鏇挎崲涓轰粠褰撳墠婧愯鍙栫殑瀛楃銆�</param>
+      <param name="index">缂撳啿鍖轰腑寮�濮嬪啓鍏ョ殑浣嶇疆銆�</param>
+      <param name="count">瑕佽鍙栫殑鏈�澶у瓧绗︽暟銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Connection">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.#ctor(Microsoft.AspNet.SignalR.Messaging.IMessageBus,Newtonsoft.Json.JsonSerializer,System.String,System.String,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IAckHandler,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Infrastructure.IProtectedData)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.Connection" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="newMessageBus">鏂版秷鎭�荤嚎銆�</param>
+      <param name="jsonSerializer">json 搴忓垪鍖栫▼搴忋��</param>
+      <param name="baseSignal">鍩烘湰淇″彿銆�</param>
+      <param name="connectionId">杩炴帴 ID銆�</param>
+      <param name="signals">淇″彿闆嗗悎銆�</param>
+      <param name="groups">缁勯泦鍚堛��</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+      <param name="ackHandler">ack 澶勭悊绋嬪簭銆�</param>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="protectedData">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.DefaultSignal">
+      <summary>鑾峰彇姝よ繛鎺ョ殑涓昏淇″彿銆�</summary>
+      <returns>姝よ繛鎺ョ殑涓昏淇″彿銆�</returns>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Infrastructure.Connection.EventKeyAdded">
+      <summary>鍦ㄤ簨浠舵坊鍔犱簡鏌愪釜閿椂鍙戠敓銆�</summary>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Infrastructure.Connection.EventKeyRemoved">
+      <summary>鍦ㄤ簨浠跺垹闄や簡璇ラ敭鏃跺彂鐢熴��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Identity">
+      <summary>鑾峰彇姝よ繛鎺ョ殑鏍囪瘑灞炴�с��</summary>
+      <returns>姝よ繛鎺ョ殑鏍囪瘑灞炴�с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Microsoft#AspNet#SignalR#Messaging#ISubscriber#EventKeys">
+      <summary>鑾峰彇鍙敱绱㈠紩鍗曠嫭璁块棶鐨勫璞$殑鍒楄〃銆�</summary>
+      <returns>鍙敱绱㈠紩鍗曠嫭璁块棶鐨勫璞$殑鍒楄〃銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.Receive(System.String,System.Func{Microsoft.AspNet.SignalR.Transports.PersistentResponse,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>鎺ユ敹杩炴帴鏂规硶鐨勬秷鎭搷搴斻��</summary>
+      <returns>瑕佹帴鏀剁殑杩炴帴鏂规硶鐨勬秷鎭搷搴斻��</returns>
+      <param name="messageId">娑堟伅 id銆�</param>
+      <param name="callback">纭畾杩炴帴鏄惁杩涜鍥炶皟鍝嶅簲銆�</param>
+      <param name="maxMessages">娑堟伅鐨勬渶澶ф暟鐩��</param>
+      <param name="state">杩炴帴鐘舵�併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.Connection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)">
+      <summary>灏嗘煇涓秷鎭彂閫佸埌涓�涓垨澶氫釜杩炴帴銆�</summary>
+      <returns>鍙戦�佸埌涓�涓垨澶氫釜杩炴帴鐨勬秷鎭��</returns>
+      <param name="message">娑堟伅鍙戦�佺殑杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.Subscription">
+      <summary>鑾峰彇鎴栬缃杩炴帴灞炴�х殑璁㈤槄銆�</summary>
+      <returns>姝よ繛鎺ュ睘鎬х殑璁㈤槄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.Connection.WriteCursor">
+      <summary>鑾峰彇鎴栬缃厜鏍囦互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒椼��</summary>
+      <returns>鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑鍏夋爣銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager">
+      <summary>鎻愪緵榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnection(System.Type)">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <param name="type">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetConnectionContext``1">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext``1">
+      <summary>杩斿洖姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</summary>
+      <returns>姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</returns>
+      <typeparam name="T">闆嗙嚎鍣ㄧ殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(System.String)">
+      <summary>杩斿洖姝よ繛鎺ョ殑鍏锋湁鎸囧畾鍚嶇О鐨勯泦绾垮櫒涓婁笅鏂囥��</summary>
+      <returns>姝よ繛鎺ョ殑闆嗙嚎鍣ㄤ笂涓嬫枃銆�</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData">
+      <summary>鎻愪緵鐢ㄤ簬淇濇姢鏁版嵁鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtectionProvider)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="provider">鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍒犻櫎瀵规寚瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData">
+      <summary>鎻愪緵鐢ㄤ簬淇濇姢鏁版嵁鐨勬柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.DefaultProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍒犻櫎瀵规寚瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀虹敤浜庡鐞嗗簲鐢ㄨ璇佸伐鍏峰寘 (ACK) 鐨勫疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler.CreateAck(System.String)">
+      <summary>鍒涘缓鏂扮殑 ACK 瀵硅薄銆�</summary>
+      <returns>鍒涘缓鐨� ACK 瀵硅薄銆�</returns>
+      <param name="id">鏍囪瘑绗︺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IAckHandler.TriggerAck(System.String)">
+      <summary>瑙﹀彂鎸囧畾鐨� ACK 瀵硅薄銆�</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="id">ACK 鏍囪瘑绗︺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter">
+      <summary>Represents the base interface for class that has the ability to write raw binary data.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IBinaryWriter.Write(System.ArraySegment{System.Byte})">
+      <summary>Writes raw binary data to underlying stream.</summary>
+      <param name="data">The raw binary data to write.</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager">
+      <summary>鎻愪緵瀵归泦绾垮櫒鍜屾寔涔呮�ц繛鎺ヤ笌寮曠敤鐨勮闂��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetConnectionContext``1">
+      <summary>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.IPersistentConnectionContext" />銆�</returns>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext``1">
+      <summary>杩斿洖涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</summary>
+      <returns>涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</returns>
+      <typeparam name="T">闆嗙嚎鍣ㄧ殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext(System.String)">
+      <summary>杩斿洖涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</summary>
+      <returns>涓庤繛鎺ュ叧鑱旂殑闆嗙嚎鍣ㄤ俊鎭��</returns>
+      <param name="hubName">闆嗙嚎鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.InterlockedHelper">
+      <summary>琛ㄧず瀵圭敱澶氫釜绾跨▼鍏变韩鐨勫彉閲忔墽琛屽師瀛愭搷浣滅殑甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.InterlockedHelper.CompareExchangeOr(System.Int32@,System.Int32,System.Int32,System.Int32)">
+      <summary>姣旇緝寮曠敤鐩哥瓑鐨勪袱涓璞℃槸鍚︾浉绛夈��</summary>
+      <returns>濡傛灉涓や釜瀵硅薄鐩哥瓑锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="location">涓庢瘮杈冨璞℃瘮杈冨苟鍙兘琚浛鎹㈢殑鐩爣瀵硅薄銆�</param>
+      <param name="value">姣旇緝缁撴灉鐩哥瓑鏃舵浛鎹㈢洰鏍囧璞$殑瀵硅薄銆�</param>
+      <param name="comparandA">绗竴涓瘮杈冨璞°��</param>
+      <param name="comparandB">绗簩涓瘮杈冨璞°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Close">
+      <summary>鍏抽棴鎬ц兘璁℃暟鍣紝骞堕噴鏀剧敱姝ゆ�ц兘璁℃暟鍣ㄥ疄渚嬪垎閰嶇殑鎵�鏈夎祫婧愩��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.CounterName"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Decrement">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滐紝灏嗗叧鑱旂殑鎬ц兘璁℃暟鍣ㄥ噺鍘讳竴銆�</summary>
+      <returns>鍑忓皯鐨勮鏁板櫒鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.Increment">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滐紝灏嗗叧鑱旂殑鎬ц兘璁℃暟鍣ㄥ姞涓婁竴銆�</summary>
+      <returns>澧炲姞鐨勮鏁板櫒鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.IncrementBy(System.Int64)">
+      <summary>閫氳繃鏈夋晥鐨勫師瀛愭搷浣滄寜鎸囧畾鐨勯噺澧炲姞鎴栧噺灏戝叧鑱旂殑鎬ц兘璁℃暟鍣ㄧ殑鍊笺��</summary>
+      <returns>鏂拌鏁板櫒鍊笺��</returns>
+      <param name="value">瑕侀�掑鐨勫�笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.NextSample">
+      <summary>鑾峰彇璁℃暟鍣ㄧず渚嬶紝骞朵负鍏惰繑鍥炲師濮嬬殑鎴栨湭璁$畻鐨勫�笺��</summary>
+      <returns>杩斿洖璁℃暟鍣ㄧず渚嬶紝骞朵负鍏惰繑鍥炲師濮嬬殑鎴栨湭璁$畻鐨勫�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.RawValue">
+      <summary>鑾峰彇鎴栬缃璁℃暟鍣ㄧ殑鍘熷鐨勬垨鏈绠楃殑鍊笺��</summary>
+      <returns>璁℃暟鍣ㄧ殑鍘熷鍊笺��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter.RemoveInstance">
+      <summary>鍒犻櫎鐢� PerformanceCounter 瀵硅薄 InstanceName 灞炴�ф寚瀹氱殑绫诲埆瀹炰緥銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager">
+      <summary>鎻愪緵瀵规�ц兘璁℃暟鍣ㄧ殑璁块棶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夋瘡绉掓帴鏀剁殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鎺ユ敹鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夋瘡绉掑彂閫佺殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionMessagesSentTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鍙戦�佺殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsConnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滆繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsCurrent">
+      <summary>鑾峰彇琛ㄧず褰撳墠宸茶繛鎺ョ殑杩炴帴鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsDisconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滄柇寮�杩炴帴鈥濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ConnectionsReconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滈噸鏂拌繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕澶勭悊鐨勬墍鏈夐敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsAllTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑鎵�鏈夐敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubInvocationTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨВ鏋愰敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsHubResolutionTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨВ鏋愰敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕浼犺緭閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ErrorsTransportTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑浼犺緭閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栨�ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="instanceName">涓绘満瀹炰緥鍚嶃��</param>
+      <param name="hostShutdownToken">琛ㄧず涓绘満鍏抽棴鐨� CancellationToken銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+      <summary>鍔犺浇鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="categoryName">绫诲埆鍚嶇О銆�</param>
+      <param name="counterName">璁℃暟鍣ㄥ悕绉般��</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="isReadOnly">璁℃暟鍣ㄦ槸鍚︿负鍙銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusAllocatedWorkers">
+      <summary>鑾峰彇琛ㄧず鍒嗛厤鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusBusyWorkers">
+      <summary>鑾峰彇琛ㄧず褰撳墠蹇欎簬鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鍙戝竷鍒版秷鎭�荤嚎鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesPublishedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂甯冨埌娑堟伅鎬荤嚎鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず璁㈡埛姣忕鎺ユ敹鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ鎴锋敹鍒扮殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎鐨勫綋鍓嶈鎴锋暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersPerSec">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎姣忕鐨勬柊璁㈡埛鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusSubscribersTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ユ秷鎭�荤嚎鐨勮鎴锋�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.MessageBusTopicsCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎涓殑褰撳墠涓婚鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鎵╁睍閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutErrorsTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂鐢熺殑鎵╁睍閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず鎵╁睍娑堟伅鎬荤嚎姣忕鏀跺埌鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutSendQueueLength">
+      <summary>鑾峰彇琛ㄧず褰撳墠鎵╁睍鍙戦�侀槦鍒楅暱搴︾殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountBuffering">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庣紦鍐茬姸鎬佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountOpen">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庢墦寮�鐘舵�佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager.ScaleoutStreamCountTotal">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData">
+      <summary>琛ㄧず涓�涓帴鍙o紝璇ユ帴鍙f彁渚涚殑鏂规硶鐢ㄤ簬鍔犲瘑鍜岃В瀵嗕笌 SignalR 鍩虹缁撴瀯鍏宠仈鐨勬暟鎹��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IProtectedData.Unprotect(System.String,System.String)">
+      <summary>瑙i櫎瀵圭壒瀹氭暟鎹殑淇濇姢銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">瑕佸彇娑堜繚鎶ょ殑鍙椾繚鎶ゅ�笺��</param>
+      <param name="purpose">瑙i櫎淇濇姢鐨勫師鍥犮��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager">
+      <summary>鐢熸垚鏈嶅姟鍣� ID</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager.ServerId">
+      <summary>鏈嶅姟鍣ㄧ殑 ID銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier">
+      <summary>鎻愪緵涓�涓帴鍙o紝璇ユ帴鍙h〃绀虹敤浜庡噺灏忓瓧绗︿覆澶у皬鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)">
+      <summary>浠ユ <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥鍙互鍙嶈浆鐨勬柟寮忕缉鍑忓瓧绗︿覆銆�</summary>
+      <returns>
+        <paramref name="value" /> 鐨勭缉鍑忚〃绀哄舰寮忥紝涓嶅寘鍚互涓嬪瓧绗︼細,|\</returns>
+      <param name="value">瑕佺缉鍑忕殑瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)">
+      <summary>璋冪敤姝ゅ嚱鏁版寚绀哄皢鏉ュ浠ュ墠浠� <paramref name="value" /> 缂╁噺鐨勫瓧绗︿覆杩涜鍙栨秷缂╁噺灏濊瘯鏃讹紝鍙兘浼氶亣鍒扮┖杩斿洖鍊笺�傝繖鏄竴涓竻鐞嗗紩鐢� <paramref name="value" /> 鐨勪换浣曞唴閮ㄦ暟鎹粨鏋勭殑鏈轰細銆�</summary>
+      <param name="value">浠ュ墠鍙兘宸茬缉鍑忕殑瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)">
+      <summary>鍙嶈浆 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 璋冪敤锛屼互鍓嶈嚦灏戝姝� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥鎵ц杩囦竴娆¤璋冪敤锛屼笖鍚庢潵鏈皟鐢ㄤ笌杩斿洖 <paramref name="value" /> 鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 璋冪敤鍏变韩鍚屼竴鍙傛暟鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)" />銆�</summary>
+      <returns>浠ュ墠瀵� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 杩涜鐨勮繑鍥� <paramref name="value" /> 鐨勬墍鏈夎皟鐢ㄧ殑鍙傛暟銆傚鏋滃湪姝� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier" /> 瀹炰緥涓 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 杩涜鐨勬瘡涓皟鐢ㄩ兘浠庢湭杩斿洖 <paramref name="value" /> 鎴栬�呭浜庤繑鍥� <paramref name="value" /> 鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 鐨勬渶鏂拌皟鐢ㄥ悗璺熷鍏变韩鍚屼竴鍙傛暟鐨� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.RemoveUnminified(System.String)" /> 鐨勮皟鐢紝鍒� <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Unminify(System.String)" /> 鍙兘杩斿洖绌哄�硷紝浣嗕笉寰楀紩鍙戙��</returns>
+      <param name="value">浠ュ墠璋冪敤 <see cref="M:Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier.Minify(System.String)" /> 鏃惰繑鍥炵殑缂╁噺瀛楃涓层��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager">
+      <summary>浣跨敤 Windows 鎬ц兘璁℃暟鍣ㄧ鐞嗘�ц兘璁℃暟鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.DefaultDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">榛樿鐨勪緷璧栧叧绯昏В鏋愮▼搴忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.#ctor(Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.CategoryName">
+      <summary>涓烘鎬ц兘璁℃暟鍣ㄦ寚瀹氭�ц兘璁℃暟鍣ㄧ被鍒殑鍚嶇О銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夋瘡绉掓帴鏀剁殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堟湇鍔″櫒鍒板鎴风锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鎺ユ敹鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentPerSec">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夋瘡绉掑彂閫佺殑娑堟伅鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionMessagesSentTotal">
+      <summary>鑾峰彇琛ㄧず杩炴帴锛堝鎴风鍒版湇鍔″櫒锛夎嚜搴旂敤绋嬪簭鍚姩浠ユ潵鍙戦�佺殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsConnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滆繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsCurrent">
+      <summary>鑾峰彇琛ㄧず褰撳墠宸茶繛鎺ョ殑杩炴帴鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsDisconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滄柇寮�杩炴帴鈥濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ConnectionsReconnected">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ繛鎺モ�滈噸鏂拌繛鎺モ�濅簨浠舵�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕澶勭悊鐨勬墍鏈夐敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsAllTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑鎵�鏈夐敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubInvocationTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨ皟鐢ㄩ敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕闆嗙嚎鍣ㄨВ鏋愰敊璇暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsHubResolutionTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑闆嗙嚎鍣ㄨВ鏋愰敊璇�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕浼犺緭閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ErrorsTransportTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ鐞嗙殑浼犺緭閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.Initialize(System.String,System.Threading.CancellationToken)">
+      <summary>鍒濆鍖栨�ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="instanceName">涓绘満瀹炰緥鍚嶃��</param>
+      <param name="hostShutdownToken">琛ㄧず涓绘満鍏抽棴鐨� CancellationToken銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.LoadCounter(System.String,System.String,System.String,System.Boolean)">
+      <summary>鍔犺浇鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <param name="categoryName">绫诲埆鍚嶇О銆�</param>
+      <param name="counterName">璁℃暟鍣ㄥ悕绉般��</param>
+      <param name="instanceName">瀹炰緥鍚嶇О銆�</param>
+      <param name="isReadOnly">濡傛灉璁℃暟鍣ㄦ槸鍙鐨勶紝鍒欎负 true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusAllocatedWorkers">
+      <summary>鑾峰彇琛ㄧず鍒嗛厤鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusBusyWorkers">
+      <summary>鑾峰彇琛ㄧず褰撳墠蹇欎簬鍦ㄦ秷鎭�荤嚎涓紶閫佹秷鎭殑杈呭姪绾跨▼鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鍙戝竷鍒版秷鎭�荤嚎鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesPublishedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂甯冨埌娑堟伅鎬荤嚎鐨勬秷鎭�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず璁㈡埛姣忕鎺ユ敹鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusMessagesReceivedTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ヨ鎴锋敹鍒扮殑娑堟伅鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎鐨勫綋鍓嶈鎴锋暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersPerSec">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎姣忕鐨勬柊璁㈡埛鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusSubscribersTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ユ秷鎭�荤嚎鐨勮鎴锋�绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.MessageBusTopicsCurrent">
+      <summary>鑾峰彇琛ㄧず娑堟伅鎬荤嚎涓殑褰撳墠涓婚鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsPerSec">
+      <summary>鑾峰彇琛ㄧず姣忕鎵╁睍閿欒鏁扮殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutErrorsTotal">
+      <summary>鑾峰彇琛ㄧず鑷簲鐢ㄧ▼搴忓惎鍔ㄤ互鏉ュ彂鐢熺殑鎵╁睍閿欒鎬绘暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutMessageBusMessagesReceivedPerSec">
+      <summary>鑾峰彇琛ㄧず鎵╁睍娑堟伅鎬荤嚎姣忕鏀跺埌鐨勬秷鎭暟鐨勬�ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutSendQueueLength">
+      <summary>鑾峰彇琛ㄧず褰撳墠鎵╁睍鍙戦�侀槦鍒楅暱搴︾殑鎬ц兘璁℃暟鍣ㄣ��</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountBuffering">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庣紦鍐茬姸鎬佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountOpen">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓浜庢墦寮�鐘舵�佺殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager.ScaleoutStreamCountTotal">
+      <summary>鑾峰彇鎬ц兘璁℃暟鍣紝璇ヨ鏁板櫒琛ㄧず褰撳墠閰嶇疆鐨勬墿灞曟秷鎭�荤嚎鎻愪緵绋嬪簭涓殑閫昏緫娴佹暟銆�</summary>
+      <returns>杩斿洖 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounter" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider.#ctor"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.PrincipalUserIdProvider.GetUserId(Microsoft.AspNet.SignalR.IRequest)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver">
+      <summary>Provides method for resolving protocol.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.#ctor(System.Version,System.Version)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver" /> class.</summary>
+      <param name="min">The minimum version of the protocol to resolve.</param>
+      <param name="max">The maximum version of the protocol to resolve.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ProtocolResolver.Resolve(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>Resolves the protocol in the specified SignalR request.</summary>
+      <param name="request">The request to resolve.</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.Purposes">
+      <summary>鎸囧畾鐩殑甯搁噺銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.Purposes.ConnectionToken">
+      <summary>ConnectionToken 甯搁噺銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.Purposes.Groups">
+      <summary>Groups 甯搁噺銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ServerCommandType">
+      <summary>鎸囧畾鏈嶅姟鍣ㄥ懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Infrastructure.ServerCommandType.RemoveConnection">
+      <summary>RemoveConnection 鍛戒护銆�</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager">
+      <summary>榛樿 <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.IServerIdManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Infrastructure.ServerIdManager.ServerId">
+      <summary>鑾峰彇鎴栬缃湇鍔″櫒鐨� ID銆�</summary>
+      <returns>鏈嶅姟鍣ㄧ殑 ID銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.IJsonValue">
+      <summary>琛ㄧず涓�涓� JSON 鍊笺��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.CanConvertTo(System.Type)">
+      <summary>灏嗗弬鏁板�艰浆鎹负鎸囧畾鐨� <see cref="T:System.Type" />銆�</summary>
+      <returns>杞崲鍚庣殑鍙傛暟鍊笺��</returns>
+      <param name="type">瑕佸皢鍙傛暟杞崲鎴愮殑 <see cref="T:System.Type" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonValue.ConvertTo(System.Type)">
+      <summary>灏嗗弬鏁板�艰浆鎹负鎸囧畾鐨� <see cref="T:System.Type" />銆�</summary>
+      <returns>杞崲鍚庣殑鍙傛暟鍊笺��</returns>
+      <param name="type">瑕佸皢鍙傛暟杞崲鎴愮殑 <see cref="T:System.Type" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.IJsonWritable">
+      <summary>瀹炵幇鍙鐞嗚嚜宸辩殑鍒� JSON 鐨勫簭鍒楀寲銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.IJsonWritable.WriteJson(System.IO.TextWriter)">
+      <summary>閫氳繃 <see cref="T:System.IO.TextWriter" /> 灏嗚嚜韬簭鍒楀寲涓� JSON銆�</summary>
+      <param name="writer">鎺ユ敹 JSON 搴忓垪鍖栧璞$殑 <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions">
+      <summary>
+        <see cref="T:Newtonsoft.Json.JsonSerializer" /> 鐨勬墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.ArraySegment{System.Byte},System.Text.Encoding)">
+      <summary>灏� JSON 鍙嶅簭鍒楀寲涓� .NET 瀵硅薄銆�</summary>
+      <returns>浠� JSON 瀛楃涓插弽搴忓垪鍖栧悗鐨勫璞°��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="jsonBuffer">瑕佸弽搴忓垪鍖栫殑 JSON 缂撳啿鍖�</param>
+      <param name="encoding">瑕佷娇鐢ㄧ殑缂栫爜銆�</param>
+      <typeparam name="T">瑕佸弽搴忓垪鍖栫殑瀵硅薄鐨� <see cref="T:System.Type" />銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Parse``1(Newtonsoft.Json.JsonSerializer,System.String)">
+      <summary>灏� JSON 鍙嶅簭鍒楀寲涓� .NET 瀵硅薄銆�</summary>
+      <returns>浠� JSON 瀛楃涓插弽搴忓垪鍖栧悗鐨勫璞°��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="json">瑕佸弽搴忓垪鍖栫殑 JSON</param>
+      <typeparam name="T">瑕佸弽搴忓垪鍖栫殑瀵硅薄鐨� <see cref="T:System.Type" />銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Serialize(Newtonsoft.Json.JsonSerializer,System.Object,System.IO.TextWriter)">
+      <summary>灏嗘寚瀹氱殑瀵硅薄搴忓垪鍖栦负 <see cref="T:System.IO.TextWriter" />銆�</summary>
+      <param name="serializer">JSON 搴忓垪鍖栫▼搴�</param>
+      <param name="value">瑕佸簭鍒楀寲鐨勫璞�</param>
+      <param name="writer">瑕佸皢瀵硅薄搴忓垪鍖栦负鐨� <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonSerializerExtensions.Stringify(Newtonsoft.Json.JsonSerializer,System.Object)">
+      <summary>灏嗘寚瀹氱殑瀵硅薄搴忓垪鍖栦负 JSON 瀛楃涓层��</summary>
+      <returns>瀵硅薄鐨� JSON 瀛楃涓茶〃绀哄舰寮忋��</returns>
+      <param name="serializer">搴忓垪鍖栫▼搴�</param>
+      <param name="value">瑕佸簭鍒楀寲鐨勫璞°��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Json.JsonUtility">
+      <summary> 甯歌 JSON 鎿嶄綔鐨勫府鍔╁櫒绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CamelCase(System.String)">
+      <summary>灏嗘寚瀹氱殑鍚嶇О杞崲涓烘贩鍚堝ぇ灏忓啓鏍煎紡銆�</summary>
+      <returns>鎸囧畾鐨� <paramref name="name" /> 鐨勬贩鍚堝ぇ灏忓啓鏍煎紡鍊笺��</returns>
+      <param name="name">瑕佽浆鎹㈢殑鍊笺��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializer">
+      <summary>浣跨敤榛樿璁剧疆鍒涘缓涓�涓� <see cref="T:Newtonsoft.Json.JsonSerializer" /> 瀹炰緥銆�</summary>
+      <returns>鏂板缓鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateDefaultSerializerSettings">
+      <summary>鍒涘缓榛樿鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" /> 瀹炰緥銆�</summary>
+      <returns>鏂板缓鐨� <see cref="T:Newtonsoft.Json.JsonSerializerSettings" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Json.JsonUtility.CreateJsonpCallback(System.String,System.String)">
+      <summary>鍒涘缓 JSONP 鍥炶皟銆�</summary>
+      <returns>琛ㄧず鍥炶皟鐨� <see cref="T:System.String" />銆�</returns>
+      <param name="callback">瑕佸垱寤虹殑鍥炶皟銆�</param>
+      <param name="payload">璐熻浇銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JavaScriptMimeType">
+      <summary>鑾峰彇 Javascript 鐨� MIME 绫诲瀷銆�</summary>
+      <returns>Javascript 鐨� MIME 绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Json.JsonUtility.JsonMimeType">
+      <summary>鑾峰彇姝� JSON 瀹炵敤宸ュ叿鐨� MIME 绫诲瀷銆�</summary>
+      <returns>姝� JSON 瀹炵敤宸ュ叿鐨� MIME 绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Command">
+      <summary>琛ㄧず缁撳悎 SignalR 娑堟伅浣跨敤鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Command.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Command" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.CommandType">
+      <summary>鑾峰彇鎴栬缃懡浠ょ殑绫诲瀷銆�</summary>
+      <returns>鍛戒护鐨勭被鍨嬨��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.Id">
+      <summary>鑾峰彇鎴栬缃懡浠ゆ爣璇嗙銆�</summary>
+      <returns>鍛戒护鏍囪瘑绗︺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.Value">
+      <summary>鑾峰彇鎴栬缃懡浠ゅ�笺��</summary>
+      <returns>鍛戒护鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Command.WaitForAck">
+      <summary>鑾峰彇鎴栬缃懡浠ゅ湪鎵ц涔嬪墠鏄惁瑕佺瓑寰呰璇併��</summary>
+      <returns>濡傛灉鍛戒护鍦ㄦ墽琛屼箣鍓嶈绛夊緟璁よ瘉锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.CommandType">
+      <summary>鏋氫妇杩炴帴娑堟伅鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Abort">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.AddToGroup">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Disconnect">
+      <summary />
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.Initializing">
+      <summary>鎸囧畾瑕佸垵濮嬪寲杩炴帴鐨勫懡浠ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.CommandType.RemoveFromGroup">
+      <summary />
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.IMessageBus">
+      <summary>鎻愪緵鐢ㄤ簬浠� SignalR 娑堟伅鎬荤嚎鍙戝竷鍜岃闃呮秷鎭殑鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.IMessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓烘秷鎭�荤嚎鐨勮闃呰�呭缓绔嬩富棰樿闃呫��</summary>
+      <returns>璁㈤槄鐨勭姸鎬併��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ISubscriber">
+      <summary>鎻愪緵鏈夊叧 SignalR 娑堟伅鎬荤嚎璁㈤槄鑰呯殑璇︾粏淇℃伅銆�</summary>
+    </member>
+    <member name="E:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeyAdded"></member>
+    <member name="E:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeyRemoved"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.EventKeys"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.Identity"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.Subscription">
+      <summary>鑾峰彇鎴栬缃闃呫��</summary>
+      <returns>璁㈤槄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscriber.WriteCursor">
+      <summary>鑾峰彇鎴栬缃啓鍏ュ厜鏍囥��</summary>
+      <returns>鍐欏叆鍏夋爣銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ISubscription">
+      <summary>鎻愪緵鎵ц宸ヤ綔鍜屾帶鍒惰闃呯姸鎬佺殑鏂规硶銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ISubscription.Identity">
+      <summary>鑾峰彇鎴栬缃闃呯殑鏍囪瘑銆�</summary>
+      <returns>璁㈤槄鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.SetQueued">
+      <summary>璁剧疆宸ヤ綔鐘舵�佺殑璁㈤槄銆�</summary>
+      <returns>濡傛灉璁㈤槄宸茶缃负宸ヤ綔鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.UnsetQueued">
+      <summary>灏嗚闃呰缃负绌洪棽鐘舵�併��</summary>
+      <returns>濡傛灉璁㈤槄宸茶缃负绌洪棽鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ISubscription.Work">
+      <summary>閫氳繃姝よ闃呮墽琛屽宸茶闃呮秷鎭殑澶勭悊銆�</summary>
+      <returns>琛ㄧず瀵瑰凡璁㈤槄娑堟伅杩涜鎿嶄綔鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.#ctor(System.String,System.UInt64,Microsoft.AspNet.SignalR.Messaging.MessageStore{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="key">涓庢湰鍦颁簨浠跺叧鑱旂殑閿��</param>
+      <param name="id">涓庨敭淇℃伅鍏宠仈鐨勬爣璇嗙銆�</param>
+      <param name="store">涓庢湰鍦颁簨浠堕敭鍏宠仈鐨勬秷鎭瓨鍌ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.Id">
+      <summary>鑾峰彇鎴栬缃笌閿俊鎭叧鑱旂殑鏍囪瘑绗︺��</summary>
+      <returns>涓庨敭淇℃伅鍏宠仈鐨勬爣璇嗙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.Key">
+      <summary>鑾峰彇鎴栬缃笌鏈湴浜嬩欢鍏宠仈鐨勯敭銆�</summary>
+      <returns>涓庢湰鍦颁簨浠跺叧鑱旂殑閿��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo.MessageStore">
+      <summary>鑾峰彇閿殑娑堟伅銆�</summary>
+      <returns>閿殑娑堟伅銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Message">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Message" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor(System.String,System.String,System.ArraySegment{System.Byte})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.#ctor(System.String,System.String,System.String)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Message" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="source">娑堟伅鐨勬簮銆�</param>
+      <param name="key">閿秷鎭��</param>
+      <param name="value">娑堟伅鐨勫�笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.CommandId">
+      <summary>鑾峰彇鎴栬缃秷鎭殑鍛戒护鏍囪瘑绗︺��</summary>
+      <returns>娑堟伅鐨勫懡浠ゆ爣璇嗙銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Encoding">
+      <summary>娑堟伅鐨勭紪鐮�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Filter">
+      <summary>鑾峰彇鎴栬缃秷鎭瓫閫夊櫒銆�</summary>
+      <returns>娑堟伅绛涢�夊櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.GetString"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsAck">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︿负纭娑堟伅銆�</summary>
+      <returns>濡傛灉娑堟伅鏄‘璁ゆ秷鎭紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.IsCommand">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︿负鍛戒护娑堟伅銆�</summary>
+      <returns>濡傛灉娑堟伅鏄懡浠ゆ秷鎭紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Key">
+      <summary>鑾峰彇鎴栬缃秷鎭殑閿��</summary>
+      <returns>娑堟伅鐨勯敭銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.MappingId">
+      <summary>璐熻浇 ID銆傚彧鍦ㄦ墿灞曟柟妗堜腑浣跨敤</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.ReadFrom(System.IO.Stream)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Source">
+      <summary>鑾峰彇鎴栬缃秷鎭殑婧愩��</summary>
+      <returns>娑堟伅鐨勬簮銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.StreamIndex">
+      <summary>姝ゆ秷鎭殑鏉ユ簮娴佺储寮曘�傚彧鍦ㄦ墿灞曟柟妗堜腑浣跨敤銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.Value">
+      <summary>鑾峰彇鎴栬缃秷鎭殑鍊笺��</summary>
+      <returns>娑堟伅鐨勫�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Message.WaitForAck">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘秷鎭槸鍚︾瓑寰呯‘璁ゃ��</summary>
+      <returns>濡傛灉娑堟伅绛夊緟纭锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Message.WriteTo(System.IO.Stream)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker">
+      <summary>璁″垝瑕佷负鐗瑰畾璁㈤槄瀹屾垚鐨勫伐浣滐紝鏈変竴涓敤浜庨�夋嫨瑕佸鐞嗚鍒掑伐浣滅殑宸ヤ綔绾跨▼锛堢嚎绋嬫睜绾跨▼锛夋暟鐨勭畻娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Dispose">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageBroker" /> 浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+      <param name="disposing">濡傛灉瑕侀噴鏀炬墭绠″拰闈炴墭绠¤祫婧愶紝鍒欎负 true锛涘鏋滀粎閲婃斁闈炴墭绠¤祫婧愶紝鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Schedule(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>瀵规寚瀹氱殑璁㈤槄璁″垝宸ヤ綔銆�</summary>
+      <param name="subscription">瑕佽鍒掔殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBroker.Trace">
+      <summary>鑾峰彇鎴栬缃唬鐞嗙殑璺熻釜婧愩��</summary>
+      <returns>浠g悊鐨勮窡韪簮銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBus">
+      <summary>琛ㄧず SignalR 鐨勬秷鎭�荤嚎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.#ctor(Microsoft.AspNet.SignalR.Infrastructure.IStringMinifier,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager,System.Int32)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Counters"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓鸿闃呰�呭垱寤烘柊璁㈤槄銆�</summary>
+      <returns>鏂板缓鐨勮闃呫��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="messageBufferSize">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateTopic(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Dispose"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Dispose(System.Boolean)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Save(Microsoft.AspNet.SignalR.Messaging.Message)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.ScheduleEvent(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBus.Subscribe(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>涓烘秷鎭�荤嚎鐨勮闃呰�呭缓绔嬩富棰樿闃呫��</summary>
+      <returns>璁㈤槄鐨勭姸鎬併��</returns>
+      <param name="subscriber">璁㈤槄鑰呫��</param>
+      <param name="cursor">琛ㄧず閫傜敤浜庤闃呯殑璇诲彇鍏夋爣銆�</param>
+      <param name="callback">鍥炶皟鍑芥暟銆�</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖虹殑澶у皬銆�</param>
+      <param name="state">鍥炶皟鎿嶄綔鐨勭姸鎬併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Topics"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageBus.Trace">
+      <summary>鑾峰彇鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勮窡韪簮銆�</summary>
+      <returns>鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勮窡韪簮銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions">
+      <summary>鎻愪緵 SignalR 娑堟伅鎬荤嚎鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Enumerate(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Action{Microsoft.AspNet.SignalR.Messaging.Message})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Enumerate``1(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{``0,Microsoft.AspNet.SignalR.Messaging.Message},``0)">
+      <summary>鏋氫妇娑堟伅銆�</summary>
+      <param name="messages">鍖呭惈瑕佹灇涓炬秷鎭殑鍒楄〃銆�</param>
+      <param name="filter">绛涢�夎鏋氫妇鐨勬秷鎭殑鏂规硶銆�</param>
+      <param name="onMessage">澶勭悊琚灇涓剧殑姣忎釜娑堟伅鐨勬柟娉曘��</param>
+      <param name="state">琛ㄧず鎿嶄綔鐘舵�佺殑瀵硅薄銆�</param>
+      <typeparam name="T">
+        <paramref name="state" /> 鍙傛暟鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageBusExtensions.Publish(Microsoft.AspNet.SignalR.Messaging.IMessageBus,System.String,System.String,System.String)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageResult">
+      <summary>琛ㄧず娑堟伅缁撴灉銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Boolean)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="terminal">鑻ヨ鎸囩ず杩欐槸缁堢娑堟伅缁撴灉锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageResult.#ctor(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="messages">涓庢 <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageResult" /> 鍏宠仈鐨勬秷鎭殑鏁扮粍銆�</param>
+      <param name="totalCount">娑堟伅鏁扮粍涓~鍏呯殑娑堟伅閲忋��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Messages">
+      <summary>鑾峰彇涓庣粨鏋滃叧鑱旂殑 <see cref="T:System.Collections.Generic.IList`1" />銆�</summary>
+      <returns>涓庣粨鏋滃叧鑱旂殑 <see cref="T:System.Collections.Generic.IList`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.Terminal">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀鸿繖鏄惁涓虹粓绔秷鎭粨鏋溿��</summary>
+      <returns>濡傛灉杩欐槸缁堢娑堟伅缁撴灉锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.MessageResult.TerminalMessage">
+      <summary>鎸囧畾杩欐槸鍚︿负缁堢娑堟伅缁撴灉銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageResult.TotalCount">
+      <summary>鑾峰彇鎴栬缃秷鎭暟缁勪腑濉厖鐨勬秷鎭噺銆�</summary>
+      <returns>娑堟伅鏁扮粍涓~鍏呯殑娑堟伅閲忋��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1">
+      <summary>琛ㄧず鐢辩幆褰㈢紦鍐插尯鏀寔鐨勬秷鎭瓨鍌ㄣ��</summary>
+      <typeparam name="T">瀛樺偍涓厓绱犵殑绫诲瀷銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.#ctor(System.UInt32)">
+      <summary>浣跨敤鎸囧畾瀹归噺鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="capacity">瀛樺偍鐨勬渶灏忓閲忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.#ctor(System.UInt32,System.UInt32)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStore`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="capacity">瀛樺偍鐨勬渶灏忓閲忋��</param>
+      <param name="offset">瀛樺偍涓涓�鏉℃秷鎭殑鍋忕Щ閲忋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.Add(`0)">
+      <summary>灏嗘秷鎭坊鍔犲埌瀛樺偍锛屽苟杩斿洖鏂版坊鍔犳秷鎭殑 ID銆�</summary>
+      <returns>鏂版坊鍔犳秷鎭殑 ID銆�</returns>
+      <param name="message">瑕佹坊鍔犵殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.GetMessageCount">
+      <summary>鑾峰彇瀛樺偍涓殑娑堟伅鏁般��</summary>
+      <returns>瀛樺偍涓殑娑堟伅鏁般��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStore`1.GetMessages(System.UInt64,System.Int32)">
+      <summary>鑾峰彇涓嬩竴鎵规秷鎭紝浠ユ寚瀹氱殑 ID 寮�澶淬��</summary>
+      <returns>涓嬩竴鎵规秷鎭�</returns>
+      <param name="firstMessageId">绗竴鏉℃秷鎭� ID銆�</param>
+      <param name="maxMessages">瑕佽繑鍥炵殑娑堟伅鐨勬渶澶ф暟鐩��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1">
+      <summary>琛ㄧず涓庢秷鎭瓨鍌ㄥ叧鑱旂殑缁撴灉銆�</summary>
+      <typeparam name="T">缁撴灉鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.#ctor(System.UInt64,System.ArraySegment{`0},System.Boolean)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="firstMessageId">绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</param>
+      <param name="messages">涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</param>
+      <param name="hasMoreData">濡傛灉缁撴灉鍖呭惈鏇村鏁版嵁锛屽垯涓� true锛涘惁鍒欎负 false銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.FirstMessageId">
+      <summary>鑾峰彇绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</summary>
+      <returns>绗竴鏉℃秷鎭殑鏍囪瘑绗︺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.HasMoreData">
+      <summary>鑾峰彇缁撴灉鏄惁鍖呭惈鏇村鏁版嵁銆�</summary>
+      <returns>濡傛灉缁撴灉鍖呭惈鏇村鏁版嵁锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.MessageStoreResult`1.Messages">
+      <summary>鑾峰彇涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</summary>
+      <returns>涓庣粨鏋滃叧鑱旂殑娑堟伅銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration">
+      <summary>琛ㄧず鎵╁睍娑堟伅鎬荤嚎瀹炵幇鐨勯�氱敤璁剧疆銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.DisableQueuing">
+      <summary>褰撳墠宸茬鐢ㄦ帓闃熴��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration.MaxQueueLength">
+      <summary>鑾峰彇鎴栬缃紶鍑哄彂閫侀槦鍒楃殑鏈�澶ч暱搴︺��</summary>
+      <returns>浼犲嚭鍙戦�侀槦鍒楃殑鏈�澶ч暱搴︺��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.#ctor(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.#ctor(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.Id"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.LocalKeyInfo"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping.ServerCreationTime"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore">
+      <summary>Represents a scale out mapping store on SignalR messaging.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.Add(System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.LocalEventKeyInfo})">
+      <summary>Adds a new scaleout mapping store.</summary>
+      <param name="id">The identifier.</param>
+      <param name="message">The message.</param>
+      <param name="localKeyInfo">The local key information.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.GetEnumerator(System.UInt64)">
+      <summary>Gets the enumerator for the mapping store.</summary>
+      <returns>The enumerator for the mapping store.</returns>
+      <param name="id">The identifier.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore.MaxMapping">
+      <summary>Gets the maximum numbers of mapping for this instance.</summary>
+      <returns>The maximum numbers of mapping for this instance.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage">
+      <summary>Represents a message to the scaleout backplane.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.#ctor(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class.</summary>
+      <param name="messages">The messages from SignalR.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.FromBytes(System.Byte[])">
+      <summary>Creates a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> class from the specified data in bytes.</summary>
+      <returns>The created instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" />.</returns>
+      <param name="data">The data in bytes.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.Messages">
+      <summary>Gets or sets the messages from SignalR.</summary>
+      <returns>The messages from SignalR.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ServerCreationTime">
+      <summary>Gets or sets the time the message was created on the origin server.</summary>
+      <returns>The time the message was created on the origin server.</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage.ToBytes">
+      <summary>Converts a <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> object to bytes.</summary>
+      <returns>The converted <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage" /> object to bytes.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus">
+      <summary>琛ㄧず鐢ㄤ簬鎵╁睍娑堟伅鎬荤嚎瀹炵幇鐨勫叕鍏卞熀绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver,Microsoft.AspNet.SignalR.Messaging.ScaleoutConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Close(System.Int32)">
+      <param name="streamIndex">瑕佸叧闂殑娴佺殑绱㈠紩銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.CreateSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscriber,System.String,System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Dispose(System.Boolean)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnError(System.Int32,System.Exception)">
+      <summary>鍏抽棴鐢ㄤ簬鍙戦�佹秷鎭殑鎸囧畾闃熷垪锛屼娇鎵�鏈夊彂閫佹搷浣滃紓姝ュけ璐ャ��</summary>
+      <param name="streamIndex">瑕佸叧闂殑娴佺殑绱㈠紩銆�</param>
+      <param name="exception">鍙戠敓鐨勯敊璇��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.OnReceived(System.Int32,System.UInt64,Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage)">
+      <summary>浠庡簳鏉挎敹鍒拌礋杞芥椂璋冪敤銆備换浣曟椂鍊欏彧搴旀湁涓�涓椿鍔ㄨ皟鐢ㄣ��</summary>
+      <param name="streamIndex">娴佺殑 ID銆�</param>
+      <param name="id">璇ユ祦鍐呯殑璐熻浇鐨� ID銆�</param>
+      <param name="message">鎵╁睍娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Open(System.Int32)">
+      <param name="streamIndex">瑕佹墦寮�鐨勬祦鐨勭储寮曘��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Publish(Microsoft.AspNet.SignalR.Messaging.Message)">
+      <summary>浠庢墿灞曟秷鎭�荤嚎鍙戝竷娑堟伅銆�</summary>
+      <returns>琛ㄧず娑堟伅鍙戝竷鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="message">瑕佸彂甯冪殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})">
+      <summary>浠� SignalR 鎵╁睍娑堟伅鎬荤嚎鍙戦�佹秷鎭��</summary>
+      <returns>琛ㄧず娑堟伅鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="messages">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.Send(System.Int32,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.Message})"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutMessageBus.StreamCount">
+      <summary>涓嶈兘鏇存敼姝ゅ疄渚嬬敓瀛樻湡鐨勬祦鏁般��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore">
+      <summary>Represents a message store that is backed by a ring buffer.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.#ctor(System.UInt32)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore" /> class.</summary>
+      <param name="capacity">The minimum capacity of the store.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.Add(Microsoft.AspNet.SignalR.Messaging.ScaleoutMapping)">
+      <summary>Adds a message to the store and returns the ID of the newly added message.</summary>
+      <returns>The ID of the newly added message.</returns>
+      <param name="mapping">The mapping used in the store.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.FragmentCount">
+      <summary>Gets or sets the number of message fragments in the store.</summary>
+      <returns>The number of message fragments.</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.FragmentSize">
+      <summary>Gets or sets the size of the message fragment.</summary>
+      <returns>The size of the message fragment.</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.GetMessages(System.UInt64)">
+      <summary>Gets the next batch of messages, beginning with the specified ID. </summary>
+      <returns>The next batch of messages.</returns>
+      <param name="firstMessageIdRequestedByClient">The first message ID requested by the client.</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.GetMessagesByMappingId(System.UInt64)">
+      <summary>Gets the next batch of messages for the specified mapping ID.</summary>
+      <returns>The next batch of messages.</returns>
+      <param name="mappingId">The mapping ID.</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.ScaleoutStore.MaxMapping">
+      <summary>Gets or sets the maximum mapping ID.</summary>
+      <returns>The maximum mapping ID.</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription">
+      <summary>琛ㄧず鎵╁睍鐨勮闃呫��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.#ctor(System.String,System.Collections.Generic.IList{System.String},System.String,System.Collections.Generic.IList{Microsoft.AspNet.SignalR.Messaging.ScaleoutMappingStore},System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="identity">璁㈤槄鏍囪瘑銆�</param>
+      <param name="eventKeys">璁㈤槄鐨勪簨浠堕敭銆�</param>
+      <param name="cursor">鍐欏叆鍏夋爣銆�</param>
+      <param name="streams">鐢ㄤ簬鍏宠仈鍐欏叆鍏夋爣鐨勬祦銆�</param>
+      <param name="callback">璁㈤槄鐘舵�佹洿鏀规椂鎵ц鐨勫洖璋冨嚱鏁般��</param>
+      <param name="maxMessages">涓烘璁㈤槄鍒嗛厤鐨勬秷鎭殑鏈�澶ф暟鐩��</param>
+      <param name="counters">鐢ㄤ簬璁块棶璁㈤槄鐨勬�ц兘璁℃暟鍣ㄧ殑瀵硅薄銆�</param>
+      <param name="state">璁㈤槄鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.BeforeInvoke(System.Object)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.PerformWork(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32@,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.ScaleoutSubscription.WriteCursor(System.IO.TextWriter)">
+      <summary>浣跨敤鎸囧畾鐨勬枃鏈紪鍐欏櫒鍐欏叆鍏夋爣銆�</summary>
+      <param name="textWriter">鐢ㄤ簬鍐欏叆鍏夋爣鐨勬枃鏈紪鍐欏櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Subscription">
+      <summary>琛ㄧず <see cref="T:Microsoft.AspNet.SignalR.Messaging.ISubscription" /> 绫荤殑瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.#ctor(System.String,System.Collections.Generic.IList{System.String},System.Func{Microsoft.AspNet.SignalR.Messaging.MessageResult,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,System.Object)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Subscription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="identity">璁㈤槄鐨勬爣璇嗐��</param>
+      <param name="eventKeys">鍖呭惈璁㈤槄鐨勪簨浠堕敭鐨勫垪琛ㄣ��</param>
+      <param name="callback">璁㈤槄鐘舵�佹洿鏀规椂鎵ц鐨勫洖璋冨嚱鏁般��</param>
+      <param name="maxMessages">涓烘璁㈤槄鍒嗛厤鐨勬秷鎭殑鏈�澶ф暟鐩��</param>
+      <param name="counters">鐢ㄤ簬璁块棶璁㈤槄鐨勬�ц兘璁℃暟鍣ㄧ殑瀵硅薄銆�</param>
+      <param name="state">璁㈤槄鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.AddEvent(System.String,Microsoft.AspNet.SignalR.Messaging.Topic)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.BeforeInvoke(System.Object)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.Disposable">
+      <summary>鑾峰彇鎴栬缃敤浜庨噴鏀捐闃呰祫婧愮殑鏂规硶銆�</summary>
+      <returns>鐢ㄤ簬閲婃斁璁㈤槄璧勬簮鐨勬柟娉曘��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Dispose"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Dispose(System.Boolean)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.EventKeys"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.Identity"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Invoke(Microsoft.AspNet.SignalR.Messaging.MessageResult)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Subscription.MaxMessages"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.PerformWork(System.Collections.Generic.IList{System.ArraySegment{Microsoft.AspNet.SignalR.Messaging.Message}},System.Int32@,System.Object@)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.RemoveEvent(System.String)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.SetEventTopic(System.String,Microsoft.AspNet.SignalR.Messaging.Topic)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.SetQueued"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.UnsetQueued"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.Work"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Subscription.WriteCursor(System.IO.TextWriter)">
+      <summary>浣跨敤鎸囧畾鐨勬枃鏈紪鍐欏櫒鍐欏叆鍏夋爣銆�</summary>
+      <param name="textWriter">鐢ㄤ簬鍐欏叆鍏夋爣鐨勬枃鏈紪鍐欏櫒銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.Topic">
+      <summary>琛ㄧず SignalR 娑堟伅鎬荤嚎鐨勪富棰樸��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.#ctor(System.UInt32,System.TimeSpan)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.Topic" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="storeSize">娑堟伅瀛樺偍鐨勫ぇ灏忋��</param>
+      <param name="lifespan">涓婚鐢熷懡鏈熴��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.AddSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>灏嗘寚瀹氱殑璁㈤槄娣诲姞鍒板垪琛ㄣ��</summary>
+      <param name="subscription">瑕佹坊鍔犵殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.IsExpired">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀轰富棰樻槸鍚﹀凡杩囨湡銆�</summary>
+      <returns>濡傛灉涓婚宸茶繃鏈燂紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.LastUsed">
+      <summary>鑾峰彇鎴栬缃娇鐢ㄨ闃呯殑鏈�鏅氭椂闂淬��</summary>
+      <returns>浣跨敤璁㈤槄鐨勬渶鏅氭椂闂淬��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.MarkUsed"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.Topic.RemoveSubscription(Microsoft.AspNet.SignalR.Messaging.ISubscription)">
+      <summary>浠庡垪琛ㄤ腑鍒犻櫎鎸囧畾鐨勮闃呫��</summary>
+      <param name="subscription">瑕佸垹闄ょ殑璁㈤槄銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.Store">
+      <summary>鑾峰彇鎴栬缃秷鎭瓨鍌ㄣ��</summary>
+      <returns>娑堟伅瀛樺偍銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.SubscriptionLock">
+      <summary>鑾峰彇鎴栬缃敤浜庨攣瀹氫富棰樼殑瀵硅薄銆�</summary>
+      <returns>鐢ㄤ簬閿佸畾涓婚鐨勫璞°��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.Topic.Subscriptions">
+      <summary>鑾峰彇鎴栬缃寘鍚富棰樿闃呯殑鍒楄〃銆�</summary>
+      <returns>鍖呭惈涓婚璁㈤槄鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Messaging.TopicLookup">
+      <summary>琛ㄧず鐢ㄤ綔鏌ユ壘鐨勪富棰樼殑闆嗗悎銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Messaging.TopicLookup" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Clear">
+      <summary>浠庨泦鍚堜腑绉婚櫎鎵�鏈変富棰樸��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.ContainsKey(System.String)">
+      <summary>纭畾闆嗗悎涓槸鍚﹀寘鍚叿鏈夋寚瀹氶敭鐨勪富棰樸��</summary>
+      <returns>濡傛灉闆嗗悎涓寘鍚叿鏈夋寚瀹氶敭鐨勪富棰橈紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">涓婚鐨勯敭銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Count">
+      <summary>鑾峰彇闆嗗悎涓墍鏈夛紙涓�鑸拰缁勶級涓婚鐨勬暟閲忋��</summary>
+      <returns>闆嗗悎涓墍鏈夛紙涓�鑸拰缁勶級涓婚鐨勬暟閲忋��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.GetEnumerator">
+      <summary>鑾峰彇寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>鍙敤浜庡惊鐜闂泦鍚堢殑鏋氫妇鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.GetOrAdd(System.String,System.Func{System.String,Microsoft.AspNet.SignalR.Messaging.Topic})">
+      <summary>閫氳繃浣跨敤鎸囧畾鐨勫嚱鏁板悜闆嗗悎涓坊鍔犱富棰橈紙濡傛灉璇ラ敭灏氫笉瀛樺湪锛夈��</summary>
+      <returns>閽堝鎸囧畾鐨勯敭鐢熸垚鐨勪富棰樸��</returns>
+      <param name="key">瑕佹坊鍔犵殑涓婚鐨勯敭銆�</param>
+      <param name="factory">鐢ㄤ簬鐢熸垚閿墍瀵瑰簲鐨勪富棰樼殑鍑芥暟銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Messaging.TopicLookup.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁鎸囧畾閿殑涓婚銆�</summary>
+      <returns>濡傛灉鎵惧埌锛屽垯涓哄叿鏈夋寚瀹氶敭鐨勪富棰橈紱濡傛灉鎵句笉鍒颁富棰橈紝鍒欎负 null銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.System#Collections#IEnumerable#GetEnumerator">
+      <summary>鑾峰彇寰幆璁块棶闆嗗悎鐨勬灇涓惧櫒銆�</summary>
+      <returns>鍙敤浜庡惊鐜闂泦鍚堢殑鏋氫妇鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.TryGetValue(System.String,Microsoft.AspNet.SignalR.Messaging.Topic@)">
+      <summary>灏濊瘯浠庨泦鍚堜腑鑾峰彇鍏锋湁鎸囧畾閿殑涓婚銆�</summary>
+      <returns>濡傛灉鎵惧埌浜嗚閿紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">瑕佽幏鍙栫殑閿��</param>
+      <param name="topic">姝ゆ柟娉曡繑鍥炴椂锛屽皢鍖呭惈妫�绱㈠埌鐨勪富棰樸�傝鍙傛暟鏈粡鍒濆鍖栧嵆琚紶閫掋��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Messaging.TopicLookup.TryRemove(System.String)">
+      <summary>灏濊瘯浠庨泦鍚堜腑绉婚櫎骞惰繑鍥炲叿鏈夋寚瀹氶敭鐨勪富棰樸��</summary>
+      <returns>宸茬Щ闄ょ殑涓婚銆�</returns>
+      <param name="key">瑕佺Щ闄ょ殑涓婚鐨勯敭銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.ServerRequest">
+      <summary>琛ㄧず鏈嶅姟鍣ㄨ姹傘��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Owin.ServerRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Cookies">
+      <summary>鑾峰彇涓庢湇鍔″櫒鍏宠仈鐨� Cookie銆�</summary>
+      <returns>涓庢湇鍔″櫒鍏宠仈鐨� Cookie銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Environment"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Headers">
+      <summary>鑾峰彇涓庤姹傚叧鑱旂殑鏍囧ご銆�</summary>
+      <returns>涓庤姹傚叧鑱旂殑鏍囧ご銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.LocalPath"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.QueryString">
+      <summary>鑾峰彇鏈嶅姟鍣ㄦ煡璇㈠瓧绗︿覆鍙橀噺鐨勯泦鍚堛��</summary>
+      <returns>鏈嶅姟鍣ㄦ煡璇㈠瓧绗︿覆鍙橀噺鐨勯泦鍚堛��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerRequest.ReadForm"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.Url">
+      <summary>鑾峰彇鏈夊叧褰撳墠璇锋眰鐨� URL 鐨勪俊鎭��</summary>
+      <returns>鍖呭惈鏈夊叧褰撳墠璇锋眰鐨� URL 淇℃伅鐨� <see cref="T:System.Uri" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerRequest.User">
+      <summary>鑾峰彇姝ゆ湇鍔″櫒鐨勭敤鎴枫��</summary>
+      <returns>姝ゆ湇鍔″櫒鐨勭敤鎴枫��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.ServerResponse">
+      <summary>琛ㄧず鍝嶅簲璇锋眰鏃跺彂閫佺殑鏈嶅姟鍣ㄥ弽棣堛��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Owin.ServerResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerResponse.CancellationToken">
+      <summary>鑾峰彇涓庡搷搴斿叧鑱旂殑鍙栨秷鏍囪銆�</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鍙栨秷鏍囪銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Owin.ServerResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃笌鍝嶅簲鍏宠仈鐨勫唴瀹圭被鍨嬨��</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鍐呭绫诲瀷銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.Flush">
+      <summary>鍒锋柊姝ゅ疄渚嬨��</summary>
+      <returns>鍒锋柊鐨勫疄渚嬨��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.ServerResponse.Write(System.ArraySegment{System.Byte})">
+      <summary>浣跨敤鍏宠仈鐨勬暟缁勬鍐欏叆鍝嶅簲銆�</summary>
+      <param name="data">鏁扮粍娈点��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware">
+      <summary>Represents the middleware used by the hub dispatcher.</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware">
+      <summary>琛ㄧず鎸佷箙杩炴帴鐨勪腑闂翠欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Owin.Middleware.PersistentConnectionMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Tracing.ITraceManager">
+      <summary>琛ㄧず鎻愪緵鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勫睘鎬х殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.ITraceManager.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</summary>
+      <returns>鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.ITraceManager.Switch">
+      <summary>鑾峰彇鐢ㄤ簬鎺у埗浠g爜鎵ц鍜岃皟璇曡緭鍑虹殑璺熻釜鐨勫紑鍏炽��</summary>
+      <returns>
+        <see cref="T:System.Diagnostics.SourceSwitch" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Tracing.TraceManager">
+      <summary>鎻愪緵鍙敤浜庤窡韪唬鐮佹墽琛岀殑灞炴�с��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Tracing.TraceManager.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Tracing.TraceManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Tracing.TraceManager.#ctor(System.Diagnostics.TextWriterTraceListener)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.TraceManager.Item(System.String)">
+      <summary>鑾峰彇鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</summary>
+      <returns>鍏锋湁婧愮殑鎸囧畾鍚嶇О鐨� <see cref="T:System.Diagnostics.TraceSource" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Tracing.TraceManager.Switch">
+      <summary>鑾峰彇鐢ㄤ簬鎺у埗浠g爜鎵ц鍜岃皟璇曡緭鍑虹殑璺熻釜鐨勫紑鍏炽��</summary>
+      <returns>
+        <see cref="T:System.Diagnostics.SourceSwitch" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport">
+      <summary>琛ㄧず姘镐箙甯т紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖栧搷搴斿璞°��</summary>
+      <returns>鐢ㄤ簬琛ㄧず鍒濆鍖栧搷搴旀搷浣滅殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.KeepAlive">
+      <summary>淇濇寔杩炴帴鐨勬椿鍔ㄧ姸鎬併��</summary>
+      <returns>鐢ㄤ簬琛ㄧず淇濇寔娲诲姩鎿嶄綔鐨� <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.OutputWriter">
+      <summary>鑾峰彇鐢ㄤ簬缂栧啓杈撳嚭娴佷笂涓嬫枃鍝嶅簲鐨� HTML 鏂囨湰缂栧啓鍣ㄣ��</summary>
+      <returns>鐢ㄤ簬缂栧啓杈撳嚭娴佷笂涓嬫枃鍝嶅簲鐨� HTML 鏂囨湰缂栧啓鍣ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverFrameTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�佹寚瀹氱殑涓婁笅鏂囧搷搴斻��</summary>
+      <returns>鐢ㄤ簬琛ㄧず鍙戦�佹搷浣滅殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="jsonSerializer">jsonSerializer銆�</param>
+      <param name="heartbeat">浼犺緭妫�娴嬩俊鍙枫��</param>
+      <param name="performanceCounterWriter">鎬ц兘璁℃暟鍣ㄧ紪鍐欏櫒銆�</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Connected">
+      <summary>鑾峰彇鎴栬缃� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ュ嚱鏁般��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ュ嚱鏁般��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.EnqueueOperation(System.Func{System.Object,System.Threading.Tasks.Task},System.Object)">
+      <summary>鎻愪緵浼犺緭鐨勬帓闃熸搷浣溿��</summary>
+      <returns>浼犺緭鐨勬帓闃熸搷浣溿��</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+      <param name="state">鐘舵�佸璞°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.InitializePersistentState">
+      <summary>鍒濆鍖栨案涔呬紶杈撶殑鎸佷箙鐘舵�併��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖栨案涔呬紶杈撶殑杩炴帴鍝嶅簲銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.JsonSerializer">
+      <summary>鑾峰彇姘镐箙浼犺緭鐨� JsonSerializer銆�</summary>
+      <returns>姘镐箙浼犺緭鐨� JsonSerializer銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.LastMessageId">
+      <summary>鑾峰彇姘镐箙浼犺緭鐨勬渶鍚庝竴涓秷鎭� ID銆�</summary>
+      <returns>姘镐箙浼犺緭鐨勬渶鍚庝竴涓秷鎭� ID銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.OnSending(System.String)">
+      <summary>鎻愪緵鍙戦�佷紶杈撶殑璐熻浇銆�</summary>
+      <param name="payload">瀛楃涓茶礋杞姐��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.OnSendingResponse(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鎻愪緵鍙戦�佹柟娉曠殑鍝嶅簲銆�</summary>
+      <param name="response">杩炴帴鐨勫搷搴斻��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鎻愪緵澶勭悊璇锋眰鐨勮繛鎺ャ��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.ProcessRequestCore(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鎻愪緵璇锋眰鏉ュ鐞嗕紶杈撶殑杩炴帴銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">浼犺緭杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Received">
+      <summary>鑾峰彇鎴栬缃竴涓嚱鏁版潵鎺ユ敹姘镐箙浼犺緭銆�</summary>
+      <returns>瑕佹帴鏀舵案涔呬紶杈撶殑鍑芥暟銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃案涔呬紶杈撶殑閲嶆柊杩炴帴鐨勫嚱鏁般��</summary>
+      <returns>姘镐箙浼犺緭鐨勯噸鏂拌繛鎺ョ殑鍑芥暟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍚戞案涔呬紶杈撶殑杩炴帴鍙戦�佸搷搴斻��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="response">鎸佷箙鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ForeverTransport.Send(System.Object)">
+      <summary>灏嗗璞″彂閫佸埌姘镐箙浼犺緭銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ForeverTransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃� <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ForeverTransport" /> 鐨勮繛鎺ョ殑浼犺緭銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITrackingConnection">
+      <summary> 琛ㄧず鍙互鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat" /> 璺熻釜鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+      <summary> 涓鸿繛鎺ュ簲鐢ㄦ柊鐘舵�併��</summary>
+      <param name="states">
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates" /> 鏋氫妇鐨勫�间箣涓�銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.CancellationToken"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectionId"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.ConnectTask"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Disconnect"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.DisconnectThreshold"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.End"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsAlive"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.IsTimedOut"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.KeepAlive"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.SupportsKeepAlive"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Timeout"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITrackingConnection.Url"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransport">
+      <summary>琛ㄧず杩涜閫氫俊鐨勪紶杈�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Connected">
+      <summary>鑾峰彇鎴栬缃湪鍒濆杩炴帴杩炴帴鍒颁紶杈撴椂璋冪敤鐨勫洖璋冦��</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.ConnectionId">
+      <summary>鑾峰彇鎴栬缃紶杈撶殑杩炴帴 ID銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.String" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Disconnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭鏂紑杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊涓烘浼犺緭鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" />銆�</summary>
+      <returns>浼犺緭澶勭悊瀹岃繛鎺ユ椂灏嗗畬鎴愮殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="connection">瑕佸鐞嗙殑 <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Received">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭鎺ユ敹鏁版嵁鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`2" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭閲嶆柊杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransport.Send(System.Object)">
+      <summary>閫氳繃浼犺緭鍙戦�佹暟鎹��</summary>
+      <returns>鍙戦�佸畬鎴愭椂灏嗗畬鎴愮殑 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.ITransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃湪浼犺緭杩涜杩炴帴鏃惰皟鐢ㄧ殑鍥炶皟銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Func`1" />銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection">
+      <summary>琛ㄧず杩炴帴鐨勪紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportConnection.Receive(System.String,System.Func{Microsoft.AspNet.SignalR.Transports.PersistentResponse,System.Object,System.Threading.Tasks.Task{System.Boolean}},System.Int32,System.Object)">
+      <summary>浠庝紶杈撴帴鏀惰闃呮暟鎹��</summary>
+      <returns>浼犺緭鐨勮闃呮暟鎹��</returns>
+      <param name="messageId">璁㈤槄鐨勬秷鎭� ID銆�</param>
+      <param name="callback">澶勭悊鎵�鎺ユ敹娑堟伅鐨勬柟娉曘��</param>
+      <param name="maxMessages">娑堟伅缂撳啿鍖哄ぇ灏忋��</param>
+      <param name="state">浼犺緭杩炴帴鐨勭姸鎬併��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportConnection.Send(Microsoft.AspNet.SignalR.ConnectionMessage)"></member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat">
+      <summary>绠$悊杩炴帴鐘舵�佺殑璺熻釜銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗘柊杩炴帴娣诲姞鍒板彈璺熻釜杩炴帴鍒楄〃銆�</summary>
+      <returns>鎵�鏇挎崲鐨勮繛鎺ワ紙濡傛灉鏈夛級銆�</returns>
+      <param name="connection">瑕佹坊鍔犵殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.GetConnections">
+      <summary>鑾峰彇琚窡韪殑杩炴帴鐨勫垪琛ㄣ��</summary>
+      <returns>杩炴帴鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗙幇鏈夎繛鎺ユ爣璁颁负娲诲姩銆�</summary>
+      <param name="connection">瑕佹爣璁扮殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>浠庡彈璺熻釜杩炴帴鍒楄〃涓垹闄よ繛鎺ャ��</summary>
+      <param name="connection">瑕佸垹闄ょ殑杩炴帴銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ITransportManager">
+      <summary>绠$悊杩炴帴鐨勪紶杈撱��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>鑾峰彇鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨勬寚瀹氫紶杈撱��</summary>
+      <returns>鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport" />銆�</returns>
+      <param name="hostContext">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ITransportManager.SupportsTransport(System.String)">
+      <summary>纭畾鏄惁鏀寔鎸囧畾鐨勪紶杈撱��</summary>
+      <returns>濡傛灉鏀寔璇ヤ紶杈擄紝鍒欎负 True锛涘惁鍒欎负 False銆�</returns>
+      <param name="transportName">瑕佹祴璇曠殑浼犺緭鐨勫悕绉般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.LongPollingTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.LongPollingTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager,Microsoft.AspNet.SignalR.Configuration.IConfigurationManager)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Connected">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑鍑芥暟銆�</summary>
+      <returns>杩炴帴鐨勫嚱鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.DisconnectThreshold">
+      <summary>鑾峰彇鏂紑杩炴帴闃堝�笺��</summary>
+      <returns>鏂紑杩炴帴闃堝�笺��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.IsConnectRequest">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀轰紶杈撴槸鍚︿负杩炴帴璇锋眰銆�</summary>
+      <returns>濡傛灉浼犺緭涓鸿繛鎺ヨ姹傦紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊杩炴帴璇锋眰銆�</summary>
+      <returns>琛ㄧず璇锋眰鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="connection">瑕佸鐞嗙殑杩炴帴銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Received">
+      <summary>鑾峰彇鎴栬缃帴鏀剁殑鍑芥暟銆�</summary>
+      <returns>鎺ユ敹鐨勫嚱鏁般��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Reconnected">
+      <summary>鑾峰彇鎴栬缃噸鏂拌繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>閲嶆柊杩炴帴浼犺緭鐨勪换鍔°��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�佷紶杈撶殑鍝嶅簲銆�</summary>
+      <returns>琛ㄧず鍝嶅簲鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.Send(System.Object)">
+      <summary>鍙戦�佸叿鏈夌粰瀹氬�肩殑闀胯疆璇紶杈撱��</summary>
+      <returns>琛ㄧず闀胯疆璇紶杈撳彂閫佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="value">鍊笺��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.SupportsKeepAlive">
+      <summary>鑾峰彇涓�涓寚绀轰紶杈撴槸鍚︽敮鎸佷繚鎸佹椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭鏀寔淇濇寔娲诲姩锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.LongPollingTransport.TransportConnected">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑浼犺緭銆�</summary>
+      <returns>杩炴帴浼犺緭鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse">
+      <summary> 琛ㄧず瀵硅繛鎺ョ殑鍝嶅簲銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.#ctor(System.Func{Microsoft.AspNet.SignalR.Messaging.Message,System.Boolean},System.Action{System.IO.TextWriter})">
+      <summary>鍒涘缓 <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 鐨勬柊瀹炰緥銆�</summary>
+      <param name="exclude">鐢ㄤ簬纭畾鏄惁搴斿皢娑堟伅鍐欏叆瀹㈡埛绔殑绛涢�夊櫒銆�</param>
+      <param name="writeCursor">鍏夋爣鍐欏叆鍣ㄣ��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Aborted">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝鎸囩ず鏄惁宸插己琛屽叧闂繛鎺ャ��</summary>
+      <returns>濡傛灉宸插己琛屽叧闂繛鎺ワ紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Disconnect">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀鸿繛鎺ユ槸鍚︽帴鏀舵柇寮�杩炴帴鍛戒护銆�</summary>
+      <returns>濡傛灉杩炴帴鎺ユ敹鏂紑杩炴帴鍛戒护锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.GroupsToken">
+      <summary>鑾峰彇鎴栬缃〃绀虹粍鍒楄〃鐨勭鍚嶄护鐗屻��</summary>
+      <returns>浠ょ墝缁勩��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Initializing">
+      <summary>濡傛灉杩炴帴姝e湪杩涜鍒濆鍖栵紝鍒欎负 true</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.LongPollDelay">
+      <summary>鑾峰彇鎴栬缃暱杞瀹㈡埛绔湪鏈敹鍒颁换浣曟暟鎹殑鎯呭喌涓嬮噸鏂板缓绔嬭繛鎺ヤ箣鍓嶅簲绛夊緟鐨勬椂闂淬��</summary>
+      <returns>闀胯疆璇㈠鎴风鍦ㄦ湭鏀跺埌浠讳綍鏁版嵁鐨勬儏鍐典笅閲嶆柊寤虹珛杩炴帴涔嬪墠搴旂瓑寰呯殑鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Messages">
+      <summary>鑾峰彇鎴栬缃鍙戦�佸埌鎺ユ敹杩炴帴鐨勬秷鎭垪琛ㄣ��</summary>
+      <returns>瑕佸彂閫佸埌鎺ユ敹杩炴帴鐨勬秷鎭垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Microsoft#AspNet#SignalR#Json#IJsonWritable#WriteJson(System.IO.TextWriter)">
+      <summary>涓烘彁楂樻�ц兘锛屽彧浣跨敤 Json.NET 鐨� JsonTextWriter 鏉ュ簭鍒楀寲閽堝 JSON 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.PersistentResponse" /> 鐨勫繀瑕佺粍浠躲��</summary>
+      <param name="writer">鎺ユ敹 JSON 搴忓垪鍖栫殑 <see cref="T:System.IO.TextWriter" />銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Reconnect">
+      <summary>濡傛灉瀹㈡埛绔簲灏濊瘯閲嶆柊杩炴帴锛屽垯涓� True銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.Terminal"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.PersistentResponse.TotalCount">
+      <summary>鑾峰彇鎴栬缃彂閫佸埌鎺ユ敹杩炴帴鐨勬秷鎭殑鎬绘暟銆�</summary>
+      <returns>鍙戦�佸埌鎺ユ敹杩炴帴鐨勬秷鎭殑鎬绘暟銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport">
+      <summary>鎻愪緵浼犺緭浠ヤ粠 SignalR 鐨勬湇鍔″櫒鍙戦�佷簨浠躲��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">IDependency 瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.InitializeResponse(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" /> 鐨勫搷搴斻��</summary>
+      <returns>
+        <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportConnection" /> 鐨勫垵濮嬪寲鍝嶅簲銆�</returns>
+      <param name="connection">浼犺緭杩炴帴鐨勫垵濮嬪寲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.KeepAlive">
+      <summary>杩斿洖淇濇寔娲诲姩鏂规硶浠ュ缓绔嬩笌 Internet 璧勬簮鐨勬寔涔呰繛鎺ャ��</summary>
+      <returns>鐢ㄤ簬涓� Internet 璧勬簮寤虹珛鎸佷箙杩炴帴鐨勪繚鎸佹椿鍔ㄦ柟娉曘��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍚� <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 鍙戦�佹寔涔呭搷搴斻��</summary>
+      <returns>瑕佸彂閫佸埌 <see cref="T:Microsoft.AspNet.SignalR.Transports.ServerSentEventsTransport" /> 鐨勬寔涔呭搷搴斻��</returns>
+      <param name="response">鎸佷箙鍝嶅簲銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates">
+      <summary>鏋氫妇 TransportConnectionState 鐨勭壒鎬с��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Aborted">
+      <summary>杩炴帴鐘舵�佷负宸蹭腑姝€��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Added">
+      <summary>杩炴帴鐘舵�佷负宸叉坊鍔犮��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Disconnected">
+      <summary>杩炴帴鐘舵�佷负宸叉柇寮�杩炴帴銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.DisconnectMessageReceived">
+      <summary>鐘舵�佷负宸叉敹鍒版柇寮�杩炴帴娑堟伅銆�</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Disposed">
+      <summary>杩炴帴鐘舵�佷负宸查噴鏀俱��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.HttpRequestEnded">
+      <summary>杩炴帴鐘舵�佷负 HTTP 璇锋眰宸茬粨鏉熴��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.None">
+      <summary>鏃犺繛鎺ョ姸鎬併��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.QueueDrained">
+      <summary>杩炴帴鐘舵�佷负宸叉帓鏀鹃槦鍒椼��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Removed">
+      <summary>杩炴帴鐘舵�佷负宸插垹闄ゃ��</summary>
+    </member>
+    <member name="F:Microsoft.AspNet.SignalR.Transports.TransportConnectionStates.Replaced">
+      <summary>杩炴帴鐘舵�佷负宸叉浛鎹€��</summary>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="heartbeat">浼犺緭妫�娴嬩俊鍙枫��</param>
+      <param name="performanceCounterManager">鎬ц兘璁℃暟鍣ㄧ鐞嗗櫒銆�</param>
+      <param name="traceManager">璺熻釜绠$悊鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Abort">
+      <summary>涓 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 褰撳墠浠诲姟澶勭悊銆�</summary>
+      <returns>瑕侀拡瀵� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 涓鐨勫綋鍓嶄换鍔″鐞嗐��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Abort(System.Boolean)">
+      <summary>涓 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 褰撳墠浠诲姟澶勭悊銆�</summary>
+      <returns>瑕侀拡瀵� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 涓鐨勫綋鍓嶄换鍔″鐞嗐��</returns>
+      <param name="clean">鎸囩ず鏄惁娓呯悊宸蹭腑姝㈠鐞嗕腑鐨勬墍鏈変换鍔°��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ApplyState(Microsoft.AspNet.SignalR.Transports.TransportConnectionStates)">
+      <summary>搴旂敤鏂紑杩炴帴鍩虹鐨勪紶杈撹繛鎺ョ姸鎬併��</summary>
+      <param name="states">浼犺緭杩炴帴鐘舵�併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.CancellationToken">
+      <summary>鑾峰彇琛ㄧず杩炴帴鐢熷瓨鏈熺殑鍙栨秷鏍囪銆�</summary>
+      <returns>琛ㄧず杩炴帴鐢熷瓨鏈熺殑鍙栨秷浠ょ墝銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Connection">
+      <summary>鑾峰彇鎴栬缃紶杈撶殑鏂紑杩炴帴鍩虹鐨勪紶杈撹繛鎺ャ��</summary>
+      <returns>浼犺緭鐨勬柇寮�杩炴帴鍩虹鐨勪紶杈撹繛鎺ャ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectionEndToken">
+      <summary>鑾峰彇杩炴帴鏉ョ粨鏉熸浠ょ墝鐨勬搷浣溿��</summary>
+      <returns>缁撴潫姝や护鐗屾搷浣滅殑杩炴帴銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectionId">
+      <summary>鑾峰彇鎴栬缃繛鎺ョ殑 ID銆�</summary>
+      <returns>鍖呭惈杩炴帴鐨� ID 鐨勫瓧绗︿覆銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.ConnectTask"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Context">
+      <summary>鑾峰彇涓庝紶杈撴柇寮�杩炴帴鍩虹鍏宠仈鐨勪富鏈轰笂涓嬫枃銆�</summary>
+      <returns>涓庝紶杈撴柇寮�杩炴帴鍩虹鍏宠仈鐨勪富鏈轰笂涓嬫枃銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.CreateResponseWriter">
+      <summary>琛ㄧず鐢ㄤ簬涓轰紶杈撴柇寮�杩炴帴鍩虹鍒涘缓鍝嶅簲鐨勭紪鍐欏櫒銆�</summary>
+      <returns>鐢ㄤ簬涓轰紶杈撴柇寮�杩炴帴鍩虹鍒涘缓鍝嶅簲鐨勭紪鍐欏櫒銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Disconnect">
+      <summary>瀵艰嚧杩炴帴鏂紑銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Disconnected">
+      <summary>鑾峰彇鎴栬缃繛鎺ヤ紶杈撶殑鏂紑杩炴帴灞炴�с��</summary>
+      <returns>杩炴帴浼犺緭鐨勬柇寮�杩炴帴灞炴�с��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.DisconnectThreshold">
+      <summary>鑾峰彇鍦ㄨ繛鎺ョ粓姝㈠悗瑙﹀彂鏂紑杩炴帴鎿嶄綔涔嬪墠瑕佺瓑寰呯殑鏃堕棿璺ㄥ害銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.TimeSpan" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Dispose">
+      <summary>閲婃斁鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase" /> 绫讳娇鐢ㄧ殑闈炴墭绠¤祫婧愬苟閫夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.End">
+      <summary>缁堟杩炴帴銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.EnqueueOperation(System.Func{System.Threading.Tasks.Task})">
+      <summary>琛ㄧず缁撴潫闃熷垪鎿嶄綔鐨勫璞°��</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.EnqueueOperation(System.Func{System.Object,System.Threading.Tasks.Task},System.Object)">
+      <summary>琛ㄧず缁撴潫闃熷垪鎿嶄綔鐨勫璞°��</summary>
+      <returns>琛ㄧず闃熷垪鎿嶄綔缁撴潫鐨勫璞°��</returns>
+      <param name="writeAsync">寮傛鍐欏叆銆�</param>
+      <param name="state">鐘舵�併��</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Heartbeat">
+      <summary>鑾峰彇浼犺緭妫�娴嬩俊鍙锋潵绠$悊杩炴帴鐨勮窡韪姸鎬併��</summary>
+      <returns>鐢ㄤ簬绠$悊杩炴帴鐨勮窡韪姸鎬佺殑浼犺緭妫�娴嬩俊鍙枫��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.HostShutdownToken"></member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IncrementErrors">
+      <summary>澧炲姞浼犺緭鏂紑杩炴帴鍩虹鐨勯敊璇暟閲忋��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.InitializePersistentState">
+      <summary>鍒濆鍖栦紶杈撴柇寮�杩炴帴鍩虹鐨勬寔涔呯姸鎬併��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsAbortRequest">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�艰〃绀鸿繛鎺ュ彂鍑轰腑姝㈣姹傘��</summary>
+      <returns>濡傛灉杩炴帴鍙戝嚭涓璇锋眰锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsAlive">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹀浜庢椿鍔ㄧ姸鎬佺殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴澶勪簬娲诲姩鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsConnectRequest">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹀彂鍑鸿姹傜殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴鍙戝嚭璇锋眰锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.IsTimedOut">
+      <summary>鑾峰彇涓�涓〃绀鸿繛鎺ユ槸鍚﹁秴鏃剁殑鍊笺��</summary>
+      <returns>濡傛灉杩炴帴宸茶秴鏃讹紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.KeepAlive">
+      <summary>閫氳繃杩炴帴鍙戦�佷繚鎸佹椿鍔� ping銆�</summary>
+      <returns>杩斿洖 <see cref="T:System.Threading.Tasks.Task" />銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.OutputWriter">
+      <summary>鑾峰彇鍙互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑杈撳嚭缂栧啓鍣ㄣ��</summary>
+      <returns>鍙互鍐欏叆杩炵画鐨勫瓧绗︾郴鍒楃殑杈撳嚭缂栧啓鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.SupportsKeepAlive">
+      <summary>鑾峰彇涓�涓〃绀轰紶杈撴槸鍚︽敮鎸佷繚鎸佹椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭鏀寔淇濇寔娲诲姩锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Timeout">
+      <summary>瀵艰嚧杩炴帴瓒呮椂銆�</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Trace">
+      <summary>鑾峰彇婧愭潵璺熻釜浠g爜鐨勬墽琛岋紝骞跺皢璺熻釜娑堟伅涓庡叾婧愬叧鑱斻��</summary>
+      <returns>鐢ㄤ簬璺熻釜浠g爜鎵ц鐨勬簮锛屽苟灏嗚窡韪秷鎭笌鍏舵簮鍏宠仈銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.TransportDisconnectBase.Url">
+      <summary>鑾峰彇杩炴帴鐨� URI銆�</summary>
+      <returns>杩炴帴鐨� URI銆�</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat">
+      <summary>琛ㄧず <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat" /> 鐨勯粯璁ゅ疄鐜般��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">
+        <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.AddOrUpdateConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗘柊杩炴帴娣诲姞鍒板彈璺熻釜杩炴帴鍒楄〃銆�</summary>
+      <param name="connection">瑕佹坊鍔犵殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.Dispose">
+      <summary>閲婃斁鐢� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫荤殑褰撳墠瀹炰緥浣跨敤鐨勬墍鏈夎祫婧愩��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.Dispose(System.Boolean)">
+      <summary>閲婃斁 <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat" /> 绫讳娇鐢ㄧ殑闈炴墭绠¤祫婧愬苟閫夋嫨鎬у湴閲婃斁鎵樼璧勬簮銆�</summary>
+      <param name="disposing">鑻ヤ负 true锛屽垯鍚屾椂閲婃斁鎵樼璧勬簮鍜岄潪鎵樼璧勬簮锛涜嫢涓� false锛屽垯浠呴噴鏀鹃潪鎵樼璧勬簮銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.GetConnections">
+      <summary>鑾峰彇琚窡韪殑杩炴帴鐨勫垪琛ㄣ��</summary>
+      <returns>杩炴帴鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.MarkConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>灏嗙幇鏈夎繛鎺ユ爣璁颁负娲诲姩銆�</summary>
+      <param name="connection">瑕佹爣璁扮殑杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.RemoveConnection(Microsoft.AspNet.SignalR.Transports.ITrackingConnection)">
+      <summary>浠庡彈璺熻釜杩炴帴鍒楄〃涓垹闄よ繛鎺ャ��</summary>
+      <param name="connection">瑕佸垹闄ょ殑杩炴帴銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.TransportManager">
+      <summary>榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransportManager" /> 瀹炵幇銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.#ctor(Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.TransportManager" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="resolver">榛樿鐨� <see cref="T:Microsoft.AspNet.SignalR.IDependencyResolver" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.GetTransport(Microsoft.AspNet.SignalR.Hosting.HostContext)">
+      <summary>鑾峰彇鎸囧畾 <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨勬寚瀹氫紶杈撱��</summary>
+      <returns>鎸囧畾鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" /> 鐨� <see cref="T:Microsoft.AspNet.SignalR.Transports.ITransport" />銆�</returns>
+      <param name="hostContext">褰撳墠璇锋眰鐨� <see cref="T:Microsoft.AspNet.SignalR.Hosting.HostContext" />銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Register(System.String,System.Func{Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.Transports.ITransport})">
+      <summary>灏嗘柊浼犺緭娣诲姞鍒板彈鏀寔浼犺緭鐨勫垪琛ㄣ��</summary>
+      <param name="transportName">鎸囧畾鐨勪紶杈撱��</param>
+      <param name="transportFactory">鎸囧畾鐨勪紶杈撶殑宸ュ巶鏂规硶銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.Remove(System.String)">
+      <summary>浠庡彈鏀寔浼犺緭鐨勫垪琛ㄤ腑鍒犻櫎浼犺緭銆�</summary>
+      <param name="transportName">鎸囧畾鐨勪紶杈撱��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.TransportManager.SupportsTransport(System.String)">
+      <summary>纭畾鏄惁鏀寔鎸囧畾鐨勪紶杈撱��</summary>
+      <returns>濡傛灉鏀寔璇ヤ紶杈擄紝鍒欎负 True锛涘惁鍒欎负 False銆�</returns>
+      <param name="transportName">瑕佹祴璇曠殑浼犺緭鐨勫悕绉般��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.Transports.WebSocketTransport">
+      <summary>姝ゅ鐨勫唴瀹瑰皢涓嶄細鏇存柊锛涜涓嶈鍦ㄦ澶勬坊鍔犳潗鏂欍��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Microsoft.AspNet.SignalR.IDependencyResolver)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.Transports.WebSocketTransport" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="context">涓绘満涓婁笅鏂囥��</param>
+      <param name="resolver">渚濊禆鍏崇郴瑙f瀽绋嬪簭銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.#ctor(Microsoft.AspNet.SignalR.Hosting.HostContext,Newtonsoft.Json.JsonSerializer,Microsoft.AspNet.SignalR.Transports.ITransportHeartbeat,Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager,Microsoft.AspNet.SignalR.Tracing.ITraceManager)"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.CancellationToken">
+      <summary>鑾峰彇鐢ㄤ簬浼犺緭鐨勫彇娑堜护鐗屻��</summary>
+      <returns>鐢ㄤ簬浼犺緭鐨勫彇娑堜护鐗屻��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.CreateResponseWriter"></member>
+    <member name="P:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.IsAlive">
+      <summary>鑾峰彇涓�涓寚绀轰紶杈撴槸鍚︽椿鍔ㄧ殑鍊笺��</summary>
+      <returns>濡傛灉浼犺緭澶勪簬娲诲姩鐘舵�侊紝鍒欎负 true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.KeepAlive">
+      <summary>淇濇寔浼犺緭鐨勬椿鍔ㄧ姸鎬併��</summary>
+      <returns>淇濇寔浼犺緭鐨勬椿鍔ㄧ姸鎬佺殑浠诲姟銆�</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.ProcessRequest(Microsoft.AspNet.SignalR.Transports.ITransportConnection)">
+      <summary>澶勭悊杩炴帴璇锋眰銆�</summary>
+      <returns>琛ㄧず杩炴帴璇锋眰鎿嶄綔鐨勪换鍔°��</returns>
+      <param name="connection">杩炴帴銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.Send(Microsoft.AspNet.SignalR.Transports.PersistentResponse)">
+      <summary>鍙戦�� Web 濂楁帴鍝嶅簲銆�</summary>
+      <returns>琛ㄧず鍝嶅簲鍙戦�佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="response">瑕佸彂閫佺殑鍝嶅簲銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.Transports.WebSocketTransport.Send(System.Object)">
+      <summary>鍙戦�佷紶杈撶殑鍊笺��</summary>
+      <returns>琛ㄧず浼犺緭鍊煎彂閫佹搷浣滅殑浠诲姟銆�</returns>
+      <param name="value">瑕佸彂閫佺殑鍊笺��</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler">
+      <summary>琛ㄧず鐢ㄤ簬绠$悊 SignalR Web 濂楁帴瀛楃殑瀹炰緥銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.#ctor(System.Nullable{System.Int32})"></member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Close">
+      <summary>鍏抽棴姝ゅ疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Error">
+      <summary>鑾峰彇鎴栬缃湪澶勭悊 Web 濂楁帴瀛楁湡闂村彂鐢熺殑閿欒銆�</summary>
+      <returns>鍦ㄥ鐞� Web 濂楁帴瀛楁湡闂村彂鐢熺殑閿欒銆�</returns>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.MaxIncomingMessageSize">
+      <summary>鑾峰彇鏈�澶т紶鍏ユ秷鎭ぇ灏忋��</summary>
+      <returns>鏈�澶т紶鍏ユ秷鎭ぇ灏忋��</returns>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnClose(System.Boolean)">
+      <summary>褰撳叧闂瀹炰緥鏃跺彂鐢熴��</summary>
+      <param name="clean">濡傛灉瑕佹竻鐞嗚窡韪紝鍒欎负 true銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnError">
+      <summary>鍦ㄦ墽琛屽鐞嗙▼搴忔搷浣滄湡闂村彂鐢熼敊璇椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnMessage(System.Byte[])">
+      <summary>褰撴敹鍒版秷鎭椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+      <param name="message">娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnMessage(System.String)">
+      <summary>褰撴敹鍒版秷鎭椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+      <param name="message">娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.OnOpen">
+      <summary>褰撴墦寮�姝ゅ疄渚嬫椂寮曞彂鏌愪釜浜嬩欢銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.ProcessWebSocketRequestAsync(System.Net.WebSockets.WebSocket,System.Threading.CancellationToken)">
+      <summary>寮傛澶勭悊澶勭悊绋嬪簭鏀跺埌鐨勮姹傘��</summary>
+      <returns>鎿嶄綔缁撴灉銆�</returns>
+      <param name="webSocket">Web 濂楁帴瀛椼��</param>
+      <param name="disconnectToken">鏂紑杩炴帴浠ょ墝銆�</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.Send(System.String)">
+      <summary>鍙戦�佷笌澶勭悊绋嬪簭鍏宠仈鐨勬秷鎭��</summary>
+      <returns>鍙戦�佺殑娑堟伅銆�</returns>
+      <param name="message">瑕佸彂閫佺殑娑堟伅銆�</param>
+    </member>
+    <member name="P:Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.WebSocket">
+      <summary>鑾峰彇鎴栬缃� Web 濂楁帴瀛椼��</summary>
+      <returns>Web 濂楁帴瀛椼��</returns>
+    </member>
+    <member name="T:Owin.ObsoleteOwinExtensions"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection``1(Owin.IAppBuilder,System.String)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapConnection(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="M:Owin.ObsoleteOwinExtensions.MapHubs(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)"></member>
+    <member name="T:Owin.OwinExtensions">
+      <summary>琛ㄧず Owin 鎵╁睍鐨勮繛鎺ャ��</summary>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鈥�/signalr鈥濆鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鈥�/signalr鈥濆鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">聽 瑕佹槧灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勮矾寰�</param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR``1(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏勬寔涔呰繛鎺ョ殑璺緞銆�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ槧灏勫埌鎸囧畾璺緞澶勭殑搴旂敤鐢熸垚鍣ㄧ閬撱��</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏� signalr 闆嗙嚎鍣ㄧ殑璺緞銆�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.MapSignalR(Owin.IAppBuilder,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氳矾寰勫鐨勫簲鐢ㄧ敓鎴愬櫒绠¢亾銆�</summary>
+      <returns>杩斿洖 <see cref="T:Owin.IAppBuilder" />銆�</returns>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="path">瑕佹槧灏勬寔涔呰繛鎺ョ殑璺緞銆�</param>
+      <param name="connectionType">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ坊鍔犲埌搴旂敤鐢熸垚鍣ㄧ閬撲腑銆�</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣�</param>
+      <typeparam name="TConnection">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR``1(Owin.IAppBuilder,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+      <typeparam name="TConnection">灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</typeparam>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>灏� SignalR 闆嗙嚎鍣ㄦ坊鍔犲埌搴旂敤绋嬪簭鐢熸垚鍣ㄧ閬撲腑銆�</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.HubConfiguration" /></param>
+    </member>
+    <member name="M:Owin.OwinExtensions.RunSignalR(Owin.IAppBuilder,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>灏嗘寚瀹氱殑 SignalR <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 娣诲姞鍒板簲鐢ㄧ敓鎴愬櫒涓��</summary>
+      <param name="builder">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="connectionType">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨�</param>
+      <param name="configuration">瑕佷娇鐢ㄧ殑 <see cref="T:Microsoft.AspNet.SignalR.ConnectionConfiguration" /></param>
+    </member>
+    <member name="T:System.Diagnostics.TraceSourceExtensions">
+      <summary>Provides extension methods for used by SignalR.</summary>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceError(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace error message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace error message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceError(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace error message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceVerbose(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace verbose message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceVerbose(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace verbose message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceWarning(System.Diagnostics.TraceSource,System.String)">
+      <summary>Writes trace warning message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="msg">The trace warning message to write.</param>
+    </member>
+    <member name="M:System.Diagnostics.TraceSourceExtensions.TraceWarning(System.Diagnostics.TraceSource,System.String,System.Object[])">
+      <summary>Writes trace warning message to the specified trace source.</summary>
+      <param name="traceSource">The trace source to write to.</param>
+      <param name="format">The message format to write to.</param>
+      <param name="args">The arguments associated with the <paramref name="format" />.</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.JS.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/.signature.p7s
new file mode 100644
index 0000000..a247829
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.JS.2.2.2/Microsoft.AspNet.SignalR.JS.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/Microsoft.AspNet.SignalR.JS.2.2.2.nupkg
new file mode 100644
index 0000000..0f5c4da
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/Microsoft.AspNet.SignalR.JS.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.js b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.js
new file mode 100644
index 0000000..9859301
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.js
@@ -0,0 +1,2958 @@
+/* jquery.signalR.core.js */
+/*global window:false */
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+
+/// <reference path="Scripts/jquery-1.6.4.js" />
+/// <reference path="jquery.signalR.version.js" />
+(function ($, window, undefined) {
+
+    var resources = {
+        nojQuery: "jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",
+        noTransportOnInit: "No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",
+        errorOnNegotiate: "Error during negotiation request.",
+        stoppedWhileLoading: "The connection was stopped during page load.",
+        stoppedWhileNegotiating: "The connection was stopped during the negotiate request.",
+        errorParsingNegotiateResponse: "Error parsing negotiate response.",
+        errorDuringStartRequest: "Error during start request. Stopping the connection.",
+        stoppedDuringStartRequest: "The connection was stopped during the start request.",
+        errorParsingStartResponse: "Error parsing start response: '{0}'. Stopping the connection.",
+        invalidStartResponse: "Invalid start response: '{0}'. Stopping the connection.",
+        protocolIncompatible: "You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",
+        sendFailed: "Send failed.",
+        parseFailed: "Failed at parsing response: {0}",
+        longPollFailed: "Long polling request failed.",
+        eventSourceFailedToConnect: "EventSource failed to connect.",
+        eventSourceError: "Error raised by EventSource",
+        webSocketClosed: "WebSocket closed.",
+        pingServerFailedInvalidResponse: "Invalid ping response when pinging server: '{0}'.",
+        pingServerFailed: "Failed to ping server.",
+        pingServerFailedStatusCode: "Failed to ping server.  Server responded with status code {0}, stopping the connection.",
+        pingServerFailedParse: "Failed to parse ping server response, stopping the connection.",
+        noConnectionTransport: "Connection is in an invalid state, there is no transport active.",
+        webSocketsInvalidState: "The Web Socket transport is in an invalid state, transitioning into reconnecting.",
+        reconnectTimeout: "Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",
+        reconnectWindowTimeout: "The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."
+    };
+
+    if (typeof ($) !== "function") {
+        // no jQuery!
+        throw new Error(resources.nojQuery);
+    }
+
+    var signalR,
+        _connection,
+        _pageLoaded = (window.document.readyState === "complete"),
+        _pageWindow = $(window),
+        _negotiateAbortText = "__Negotiate Aborted__",
+        events = {
+            onStart: "onStart",
+            onStarting: "onStarting",
+            onReceived: "onReceived",
+            onError: "onError",
+            onConnectionSlow: "onConnectionSlow",
+            onReconnecting: "onReconnecting",
+            onReconnect: "onReconnect",
+            onStateChanged: "onStateChanged",
+            onDisconnect: "onDisconnect"
+        },
+        ajaxDefaults = {
+            processData: true,
+            timeout: null,
+            async: true,
+            global: false,
+            cache: false
+        },
+        log = function (msg, logging) {
+            if (logging === false) {
+                return;
+            }
+            var m;
+            if (typeof (window.console) === "undefined") {
+                return;
+            }
+            m = "[" + new Date().toTimeString() + "] SignalR: " + msg;
+            if (window.console.debug) {
+                window.console.debug(m);
+            } else if (window.console.log) {
+                window.console.log(m);
+            }
+        },
+
+        changeState = function (connection, expectedState, newState) {
+            if (expectedState === connection.state) {
+                connection.state = newState;
+
+                $(connection).triggerHandler(events.onStateChanged, [{ oldState: expectedState, newState: newState }]);
+                return true;
+            }
+
+            return false;
+        },
+
+        isDisconnecting = function (connection) {
+            return connection.state === signalR.connectionState.disconnected;
+        },
+
+        supportsKeepAlive = function (connection) {
+            return connection._.keepAliveData.activated &&
+                   connection.transport.supportsKeepAlive(connection);
+        },
+
+        configureStopReconnectingTimeout = function (connection) {
+            var stopReconnectingTimeout,
+                onReconnectTimeout;
+
+            // Check if this connection has already been configured to stop reconnecting after a specified timeout.
+            // Without this check if a connection is stopped then started events will be bound multiple times.
+            if (!connection._.configuredStopReconnectingTimeout) {
+                onReconnectTimeout = function (connection) {
+                    var message = signalR._.format(signalR.resources.reconnectTimeout, connection.disconnectTimeout);
+                    connection.log(message);
+                    $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                    connection.stop(/* async */ false, /* notifyServer */ false);
+                };
+
+                connection.reconnecting(function () {
+                    var connection = this;
+
+                    // Guard against state changing in a previous user defined even handler
+                    if (connection.state === signalR.connectionState.reconnecting) {
+                        stopReconnectingTimeout = window.setTimeout(function () { onReconnectTimeout(connection); }, connection.disconnectTimeout);
+                    }
+                });
+
+                connection.stateChanged(function (data) {
+                    if (data.oldState === signalR.connectionState.reconnecting) {
+                        // Clear the pending reconnect timeout check
+                        window.clearTimeout(stopReconnectingTimeout);
+                    }
+                });
+
+                connection._.configuredStopReconnectingTimeout = true;
+            }
+        };
+
+    signalR = function (url, qs, logging) {
+        /// <summary>Creates a new SignalR connection for the given url</summary>
+        /// <param name="url" type="String">The URL of the long polling endpoint</param>
+        /// <param name="qs" type="Object">
+        ///     [Optional] Custom querystring parameters to add to the connection URL.
+        ///     If an object, every non-function member will be added to the querystring.
+        ///     If a string, it's added to the QS as specified.
+        /// </param>
+        /// <param name="logging" type="Boolean">
+        ///     [Optional] A flag indicating whether connection logging is enabled to the browser
+        ///     console/log. Defaults to false.
+        /// </param>
+
+        return new signalR.fn.init(url, qs, logging);
+    };
+
+    signalR._ = {
+        defaultContentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+        ieVersion: (function () {
+            var version,
+                matches;
+
+            if (window.navigator.appName === 'Microsoft Internet Explorer') {
+                // Check if the user agent has the pattern "MSIE (one or more numbers).(one or more numbers)";
+                matches = /MSIE ([0-9]+\.[0-9]+)/.exec(window.navigator.userAgent);
+
+                if (matches) {
+                    version = window.parseFloat(matches[1]);
+                }
+            }
+
+            // undefined value means not IE
+            return version;
+        })(),
+
+        error: function (message, source, context) {
+            var e = new Error(message);
+            e.source = source;
+
+            if (typeof context !== "undefined") {
+                e.context = context;
+            }
+
+            return e;
+        },
+
+        transportError: function (message, transport, source, context) {
+            var e = this.error(message, source, context);
+            e.transport = transport ? transport.name : undefined;
+            return e;
+        },
+
+        format: function () {
+            /// <summary>Usage: format("Hi {0}, you are {1}!", "Foo", 100) </summary>
+            var s = arguments[0];
+            for (var i = 0; i < arguments.length - 1; i++) {
+                s = s.replace("{" + i + "}", arguments[i + 1]);
+            }
+            return s;
+        },
+
+        firefoxMajorVersion: function (userAgent) {
+            // Firefox user agents: http://useragentstring.com/pages/Firefox/
+            var matches = userAgent.match(/Firefox\/(\d+)/);
+            if (!matches || !matches.length || matches.length < 2) {
+                return 0;
+            }
+            return parseInt(matches[1], 10 /* radix */);
+        },
+
+        configurePingInterval: function (connection) {
+            var config = connection._.config,
+                onFail = function (error) {
+                    $(connection).triggerHandler(events.onError, [error]);
+                };
+
+            if (config && !connection._.pingIntervalId && config.pingInterval) {
+                connection._.pingIntervalId = window.setInterval(function () {
+                    signalR.transports._logic.pingServer(connection).fail(onFail);
+                }, config.pingInterval);
+            }
+        }
+    };
+
+    signalR.events = events;
+
+    signalR.resources = resources;
+
+    signalR.ajaxDefaults = ajaxDefaults;
+
+    signalR.changeState = changeState;
+
+    signalR.isDisconnecting = isDisconnecting;
+
+    signalR.connectionState = {
+        connecting: 0,
+        connected: 1,
+        reconnecting: 2,
+        disconnected: 4
+    };
+
+    signalR.hub = {
+        start: function () {
+            // This will get replaced with the real hub connection start method when hubs is referenced correctly
+            throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.");
+        }
+    };
+
+    // .on() was added in version 1.7.0, .load() was removed in version 3.0.0 so we fallback to .load() if .on() does
+    // not exist to not break existing applications
+    if (typeof _pageWindow.on == "function") {
+        _pageWindow.on("load", function () { _pageLoaded = true; });
+    }
+    else {
+        _pageWindow.load(function () { _pageLoaded = true; });
+    }
+
+    function validateTransport(requestedTransport, connection) {
+        /// <summary>Validates the requested transport by cross checking it with the pre-defined signalR.transports</summary>
+        /// <param name="requestedTransport" type="Object">The designated transports that the user has specified.</param>
+        /// <param name="connection" type="signalR">The connection that will be using the requested transports.  Used for logging purposes.</param>
+        /// <returns type="Object" />
+
+        if ($.isArray(requestedTransport)) {
+            // Go through transport array and remove an "invalid" tranports
+            for (var i = requestedTransport.length - 1; i >= 0; i--) {
+                var transport = requestedTransport[i];
+                if ($.type(transport) !== "string" || !signalR.transports[transport]) {
+                    connection.log("Invalid transport: " + transport + ", removing it from the transports list.");
+                    requestedTransport.splice(i, 1);
+                }
+            }
+
+            // Verify we still have transports left, if we dont then we have invalid transports
+            if (requestedTransport.length === 0) {
+                connection.log("No transports remain within the specified transport array.");
+                requestedTransport = null;
+            }
+        } else if (!signalR.transports[requestedTransport] && requestedTransport !== "auto") {
+            connection.log("Invalid transport: " + requestedTransport.toString() + ".");
+            requestedTransport = null;
+        } else if (requestedTransport === "auto" && signalR._.ieVersion <= 8) {
+            // If we're doing an auto transport and we're IE8 then force longPolling, #1764
+            return ["longPolling"];
+
+        }
+
+        return requestedTransport;
+    }
+
+    function getDefaultPort(protocol) {
+        if (protocol === "http:") {
+            return 80;
+        } else if (protocol === "https:") {
+            return 443;
+        }
+    }
+
+    function addDefaultPort(protocol, url) {
+        // Remove ports  from url.  We have to check if there's a / or end of line
+        // following the port in order to avoid removing ports such as 8080.
+        if (url.match(/:\d+$/)) {
+            return url;
+        } else {
+            return url + ":" + getDefaultPort(protocol);
+        }
+    }
+
+    function ConnectingMessageBuffer(connection, drainCallback) {
+        var that = this,
+            buffer = [];
+
+        that.tryBuffer = function (message) {
+            if (connection.state === $.signalR.connectionState.connecting) {
+                buffer.push(message);
+
+                return true;
+            }
+
+            return false;
+        };
+
+        that.drain = function () {
+            // Ensure that the connection is connected when we drain (do not want to drain while a connection is not active)
+            if (connection.state === $.signalR.connectionState.connected) {
+                while (buffer.length > 0) {
+                    drainCallback(buffer.shift());
+                }
+            }
+        };
+
+        that.clear = function () {
+            buffer = [];
+        };
+    }
+
+    signalR.fn = signalR.prototype = {
+        init: function (url, qs, logging) {
+            var $connection = $(this);
+
+            this.url = url;
+            this.qs = qs;
+            this.lastError = null;
+            this._ = {
+                keepAliveData: {},
+                connectingMessageBuffer: new ConnectingMessageBuffer(this, function (message) {
+                    $connection.triggerHandler(events.onReceived, [message]);
+                }),
+                lastMessageAt: new Date().getTime(),
+                lastActiveAt: new Date().getTime(),
+                beatInterval: 5000, // Default value, will only be overridden if keep alive is enabled,
+                beatHandle: null,
+                totalTransportConnectTimeout: 0 // This will be the sum of the TransportConnectTimeout sent in response to negotiate and connection.transportConnectTimeout
+            };
+            if (typeof (logging) === "boolean") {
+                this.logging = logging;
+            }
+        },
+
+        _parseResponse: function (response) {
+            var that = this;
+
+            if (!response) {
+                return response;
+            } else if (typeof response === "string") {
+                return that.json.parse(response);
+            } else {
+                return response;
+            }
+        },
+
+        _originalJson: window.JSON,
+
+        json: window.JSON,
+
+        isCrossDomain: function (url, against) {
+            /// <summary>Checks if url is cross domain</summary>
+            /// <param name="url" type="String">The base URL</param>
+            /// <param name="against" type="Object">
+            ///     An optional argument to compare the URL against, if not specified it will be set to window.location.
+            ///     If specified it must contain a protocol and a host property.
+            /// </param>
+            var link;
+
+            url = $.trim(url);
+
+            against = against || window.location;
+
+            if (url.indexOf("http") !== 0) {
+                return false;
+            }
+
+            // Create an anchor tag.
+            link = window.document.createElement("a");
+            link.href = url;
+
+            // When checking for cross domain we have to special case port 80 because the window.location will remove the
+            return link.protocol + addDefaultPort(link.protocol, link.host) !== against.protocol + addDefaultPort(against.protocol, against.host);
+        },
+
+        ajaxDataType: "text",
+
+        contentType: "application/json; charset=UTF-8",
+
+        logging: false,
+
+        state: signalR.connectionState.disconnected,
+
+        clientProtocol: "1.5",
+
+        reconnectDelay: 2000,
+
+        transportConnectTimeout: 0,
+
+        disconnectTimeout: 30000, // This should be set by the server in response to the negotiate request (30s default)
+
+        reconnectWindow: 30000, // This should be set by the server in response to the negotiate request
+
+        keepAliveWarnAt: 2 / 3, // Warn user of slow connection if we breach the X% mark of the keep alive timeout
+
+        start: function (options, callback) {
+            /// <summary>Starts the connection</summary>
+            /// <param name="options" type="Object">Options map</param>
+            /// <param name="callback" type="Function">A callback function to execute when the connection has started</param>
+            var connection = this,
+                config = {
+                    pingInterval: 300000,
+                    waitForPageLoad: true,
+                    transport: "auto",
+                    jsonp: false
+                },
+                initialize,
+                deferred = connection._deferral || $.Deferred(), // Check to see if there is a pre-existing deferral that's being built on, if so we want to keep using it
+                parser = window.document.createElement("a");
+
+            connection.lastError = null;
+
+            // Persist the deferral so that if start is called multiple times the same deferral is used.
+            connection._deferral = deferred;
+
+            if (!connection.json) {
+                // no JSON!
+                throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");
+            }
+
+            if ($.type(options) === "function") {
+                // Support calling with single callback parameter
+                callback = options;
+            } else if ($.type(options) === "object") {
+                $.extend(config, options);
+                if ($.type(config.callback) === "function") {
+                    callback = config.callback;
+                }
+            }
+
+            config.transport = validateTransport(config.transport, connection);
+
+            // If the transport is invalid throw an error and abort start
+            if (!config.transport) {
+                throw new Error("SignalR: Invalid transport(s) specified, aborting start.");
+            }
+
+            connection._.config = config;
+
+            // Check to see if start is being called prior to page load
+            // If waitForPageLoad is true we then want to re-direct function call to the window load event
+            if (!_pageLoaded && config.waitForPageLoad === true) {
+                connection._.deferredStartHandler = function () {
+                    connection.start(options, callback);
+                };
+                _pageWindow.bind("load", connection._.deferredStartHandler);
+
+                return deferred.promise();
+            }
+
+            // If we're already connecting just return the same deferral as the original connection start
+            if (connection.state === signalR.connectionState.connecting) {
+                return deferred.promise();
+            } else if (changeState(connection,
+                            signalR.connectionState.disconnected,
+                            signalR.connectionState.connecting) === false) {
+                // We're not connecting so try and transition into connecting.
+                // If we fail to transition then we're either in connected or reconnecting.
+
+                deferred.resolve(connection);
+                return deferred.promise();
+            }
+
+            configureStopReconnectingTimeout(connection);
+
+            // Resolve the full url
+            parser.href = connection.url;
+            if (!parser.protocol || parser.protocol === ":") {
+                connection.protocol = window.document.location.protocol;
+                connection.host = parser.host || window.document.location.host;
+            } else {
+                connection.protocol = parser.protocol;
+                connection.host = parser.host;
+            }
+
+            connection.baseUrl = connection.protocol + "//" + connection.host;
+
+            // Set the websocket protocol
+            connection.wsProtocol = connection.protocol === "https:" ? "wss://" : "ws://";
+
+            // If jsonp with no/auto transport is specified, then set the transport to long polling
+            // since that is the only transport for which jsonp really makes sense.
+            // Some developers might actually choose to specify jsonp for same origin requests
+            // as demonstrated by Issue #623.
+            if (config.transport === "auto" && config.jsonp === true) {
+                config.transport = "longPolling";
+            }
+
+            // If the url is protocol relative, prepend the current windows protocol to the url.
+            if (connection.url.indexOf("//") === 0) {
+                connection.url = window.location.protocol + connection.url;
+                connection.log("Protocol relative URL detected, normalizing it to '" + connection.url + "'.");
+            }
+
+            if (this.isCrossDomain(connection.url)) {
+                connection.log("Auto detected cross domain url.");
+
+                if (config.transport === "auto") {
+                    // TODO: Support XDM with foreverFrame
+                    config.transport = ["webSockets", "serverSentEvents", "longPolling"];
+                }
+
+                if (typeof (config.withCredentials) === "undefined") {
+                    config.withCredentials = true;
+                }
+
+                // Determine if jsonp is the only choice for negotiation, ajaxSend and ajaxAbort.
+                // i.e. if the browser doesn't supports CORS
+                // If it is, ignore any preference to the contrary, and switch to jsonp.
+                if (!config.jsonp) {
+                    config.jsonp = !$.support.cors;
+
+                    if (config.jsonp) {
+                        connection.log("Using jsonp because this browser doesn't support CORS.");
+                    }
+                }
+
+                connection.contentType = signalR._.defaultContentType;
+            }
+
+            connection.withCredentials = config.withCredentials;
+
+            connection.ajaxDataType = config.jsonp ? "jsonp" : "text";
+
+            $(connection).bind(events.onStart, function (e, data) {
+                if ($.type(callback) === "function") {
+                    callback.call(connection);
+                }
+                deferred.resolve(connection);
+            });
+
+            connection._.initHandler = signalR.transports._logic.initHandler(connection);
+
+            initialize = function (transports, index) {
+                var noTransportError = signalR._.error(resources.noTransportOnInit);
+
+                index = index || 0;
+                if (index >= transports.length) {
+                    if (index === 0) {
+                        connection.log("No transports supported by the server were selected.");
+                    } else if (index === 1) {
+                        connection.log("No fallback transports were selected.");
+                    } else {
+                        connection.log("Fallback transports exhausted.");
+                    }
+
+                    // No transport initialized successfully
+                    $(connection).triggerHandler(events.onError, [noTransportError]);
+                    deferred.reject(noTransportError);
+                    // Stop the connection if it has connected and move it into the disconnected state
+                    connection.stop();
+                    return;
+                }
+
+                // The connection was aborted
+                if (connection.state === signalR.connectionState.disconnected) {
+                    return;
+                }
+
+                var transportName = transports[index],
+                    transport = signalR.transports[transportName],
+                    onFallback = function () {
+                        initialize(transports, index + 1);
+                    };
+
+                connection.transport = transport;
+
+                try {
+                    connection._.initHandler.start(transport, function () { // success
+                        // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials
+                        var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11,
+                            asyncAbort = !!connection.withCredentials && isFirefox11OrGreater;
+
+                        connection.log("The start request succeeded. Transitioning to the connected state.");
+
+                        if (supportsKeepAlive(connection)) {
+                            signalR.transports._logic.monitorKeepAlive(connection);
+                        }
+
+                        signalR.transports._logic.startHeartbeat(connection);
+
+                        // Used to ensure low activity clients maintain their authentication.
+                        // Must be configured once a transport has been decided to perform valid ping requests.
+                        signalR._.configurePingInterval(connection);
+
+                        if (!changeState(connection,
+                                            signalR.connectionState.connecting,
+                                            signalR.connectionState.connected)) {
+                            connection.log("WARNING! The connection was not in the connecting state.");
+                        }
+
+                        // Drain any incoming buffered messages (messages that came in prior to connect)
+                        connection._.connectingMessageBuffer.drain();
+
+                        $(connection).triggerHandler(events.onStart);
+
+                        // wire the stop handler for when the user leaves the page
+                        _pageWindow.bind("unload", function () {
+                            connection.log("Window unloading, stopping the connection.");
+
+                            connection.stop(asyncAbort);
+                        });
+
+                        if (isFirefox11OrGreater) {
+                            // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close.
+                            // #2400
+                            _pageWindow.bind("beforeunload", function () {
+                                // If connection.stop() runs runs in beforeunload and fails, it will also fail
+                                // in unload unless connection.stop() runs after a timeout.
+                                window.setTimeout(function () {
+                                    connection.stop(asyncAbort);
+                                }, 0);
+                            });
+                        }
+                    }, onFallback);
+                }
+                catch (error) {
+                    connection.log(transport.name + " transport threw '" + error.message + "' when attempting to start.");
+                    onFallback();
+                }
+            };
+
+            var url = connection.url + "/negotiate",
+                onFailed = function (error, connection) {
+                    var err = signalR._.error(resources.errorOnNegotiate, error, connection._.negotiateRequest);
+
+                    $(connection).triggerHandler(events.onError, err);
+                    deferred.reject(err);
+                    // Stop the connection if negotiate failed
+                    connection.stop();
+                };
+
+            $(connection).triggerHandler(events.onStarting);
+
+            url = signalR.transports._logic.prepareQueryString(connection, url);
+
+            connection.log("Negotiating with '" + url + "'.");
+
+            // Save the ajax negotiate request object so we can abort it if stop is called while the request is in flight.
+            connection._.negotiateRequest = signalR.transports._logic.ajax(connection, {
+                url: url,
+                error: function (error, statusText) {
+                    // We don't want to cause any errors if we're aborting our own negotiate request.
+                    if (statusText !== _negotiateAbortText) {
+                        onFailed(error, connection);
+                    } else {
+                        // This rejection will noop if the deferred has already been resolved or rejected.
+                        deferred.reject(signalR._.error(resources.stoppedWhileNegotiating, null /* error */, connection._.negotiateRequest));
+                    }
+                },
+                success: function (result) {
+                    var res,
+                        keepAliveData,
+                        protocolError,
+                        transports = [],
+                        supportedTransports = [];
+
+                    try {
+                        res = connection._parseResponse(result);
+                    } catch (error) {
+                        onFailed(signalR._.error(resources.errorParsingNegotiateResponse, error), connection);
+                        return;
+                    }
+
+                    keepAliveData = connection._.keepAliveData;
+                    connection.appRelativeUrl = res.Url;
+                    connection.id = res.ConnectionId;
+                    connection.token = res.ConnectionToken;
+                    connection.webSocketServerUrl = res.WebSocketServerUrl;
+
+                    // The long poll timeout is the ConnectionTimeout plus 10 seconds
+                    connection._.pollTimeout = res.ConnectionTimeout * 1000 + 10000; // in ms
+
+                    // Once the server has labeled the PersistentConnection as Disconnected, we should stop attempting to reconnect
+                    // after res.DisconnectTimeout seconds.
+                    connection.disconnectTimeout = res.DisconnectTimeout * 1000; // in ms
+
+                    // Add the TransportConnectTimeout from the response to the transportConnectTimeout from the client to calculate the total timeout
+                    connection._.totalTransportConnectTimeout = connection.transportConnectTimeout + res.TransportConnectTimeout * 1000;
+
+                    // If we have a keep alive
+                    if (res.KeepAliveTimeout) {
+                        // Register the keep alive data as activated
+                        keepAliveData.activated = true;
+
+                        // Timeout to designate when to force the connection into reconnecting converted to milliseconds
+                        keepAliveData.timeout = res.KeepAliveTimeout * 1000;
+
+                        // Timeout to designate when to warn the developer that the connection may be dead or is not responding.
+                        keepAliveData.timeoutWarning = keepAliveData.timeout * connection.keepAliveWarnAt;
+
+                        // Instantiate the frequency in which we check the keep alive.  It must be short in order to not miss/pick up any changes
+                        connection._.beatInterval = (keepAliveData.timeout - keepAliveData.timeoutWarning) / 3;
+                    } else {
+                        keepAliveData.activated = false;
+                    }
+
+                    connection.reconnectWindow = connection.disconnectTimeout + (keepAliveData.timeout || 0);
+
+                    if (!res.ProtocolVersion || res.ProtocolVersion !== connection.clientProtocol) {
+                        protocolError = signalR._.error(signalR._.format(resources.protocolIncompatible, connection.clientProtocol, res.ProtocolVersion));
+                        $(connection).triggerHandler(events.onError, [protocolError]);
+                        deferred.reject(protocolError);
+
+                        return;
+                    }
+
+                    $.each(signalR.transports, function (key) {
+                        if ((key.indexOf("_") === 0) || (key === "webSockets" && !res.TryWebSockets)) {
+                            return true;
+                        }
+                        supportedTransports.push(key);
+                    });
+
+                    if ($.isArray(config.transport)) {
+                        $.each(config.transport, function (_, transport) {
+                            if ($.inArray(transport, supportedTransports) >= 0) {
+                                transports.push(transport);
+                            }
+                        });
+                    } else if (config.transport === "auto") {
+                        transports = supportedTransports;
+                    } else if ($.inArray(config.transport, supportedTransports) >= 0) {
+                        transports.push(config.transport);
+                    }
+
+                    initialize(transports);
+                }
+            });
+
+            return deferred.promise();
+        },
+
+        starting: function (callback) {
+            /// <summary>Adds a callback that will be invoked before anything is sent over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute before the connection is fully instantiated.</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStarting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        send: function (data) {
+            /// <summary>Sends data over the connection</summary>
+            /// <param name="data" type="String">The data to send over the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");
+            }
+
+            if (connection.state === signalR.connectionState.connecting) {
+                // Connection hasn't been started yet
+                throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");
+            }
+
+            connection.transport.send(connection, data);
+            // REVIEW: Should we return deferred here?
+            return connection;
+        },
+
+        received: function (callback) {
+            /// <summary>Adds a callback that will be invoked after anything is received over the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when any data is received on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReceived, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        stateChanged: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the connection state changes</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection state changes</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onStateChanged, function (e, data) {
+                callback.call(connection, data);
+            });
+            return connection;
+        },
+
+        error: function (callback) {
+            /// <summary>Adds a callback that will be invoked after an error occurs with the connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when an error occurs on the connection</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onError, function (e, errorData, sendData) {
+                connection.lastError = errorData;
+                // In practice 'errorData' is the SignalR built error object.
+                // In practice 'sendData' is undefined for all error events except those triggered by
+                // 'ajaxSend' and 'webSockets.send'.'sendData' is the original send payload.
+                callback.call(connection, errorData, sendData);
+            });
+            return connection;
+        },
+
+        disconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client disconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is broken</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onDisconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        connectionSlow: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the client detects a slow connection</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is slow</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onConnectionSlow, function (e, data) {
+                callback.call(connection);
+            });
+
+            return connection;
+        },
+
+        reconnecting: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport begins reconnecting</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection enters a reconnecting state</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnecting, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        reconnected: function (callback) {
+            /// <summary>Adds a callback that will be invoked when the underlying transport reconnects</summary>
+            /// <param name="callback" type="Function">A callback function to execute when the connection is restored</param>
+            /// <returns type="signalR" />
+            var connection = this;
+            $(connection).bind(events.onReconnect, function (e, data) {
+                callback.call(connection);
+            });
+            return connection;
+        },
+
+        stop: function (async, notifyServer) {
+            /// <summary>Stops listening</summary>
+            /// <param name="async" type="Boolean">Whether or not to asynchronously abort the connection</param>
+            /// <param name="notifyServer" type="Boolean">Whether we want to notify the server that we are aborting the connection</param>
+            /// <returns type="signalR" />
+            var connection = this,
+                // Save deferral because this is always cleaned up
+                deferral = connection._deferral;
+
+            // Verify that we've bound a load event.
+            if (connection._.deferredStartHandler) {
+                // Unbind the event.
+                _pageWindow.unbind("load", connection._.deferredStartHandler);
+            }
+
+            // Always clean up private non-timeout based state.
+            delete connection._.config;
+            delete connection._.deferredStartHandler;
+
+            // This needs to be checked despite the connection state because a connection start can be deferred until page load.
+            // If we've deferred the start due to a page load we need to unbind the "onLoad" -> start event.
+            if (!_pageLoaded && (!connection._.config || connection._.config.waitForPageLoad === true)) {
+                connection.log("Stopping connection prior to negotiate.");
+
+                // If we have a deferral we should reject it
+                if (deferral) {
+                    deferral.reject(signalR._.error(resources.stoppedWhileLoading));
+                }
+
+                // Short-circuit because the start has not been fully started.
+                return;
+            }
+
+            if (connection.state === signalR.connectionState.disconnected) {
+                return;
+            }
+
+            connection.log("Stopping connection.");
+
+            // Clear this no matter what
+            window.clearTimeout(connection._.beatHandle);
+            window.clearInterval(connection._.pingIntervalId);
+
+            if (connection.transport) {
+                connection.transport.stop(connection);
+
+                if (notifyServer !== false) {
+                    connection.transport.abort(connection, async);
+                }
+
+                if (supportsKeepAlive(connection)) {
+                    signalR.transports._logic.stopMonitoringKeepAlive(connection);
+                }
+
+                connection.transport = null;
+            }
+
+            if (connection._.negotiateRequest) {
+                // If the negotiation request has already completed this will noop.
+                connection._.negotiateRequest.abort(_negotiateAbortText);
+                delete connection._.negotiateRequest;
+            }
+
+            // Ensure that initHandler.stop() is called before connection._deferral is deleted
+            if (connection._.initHandler) {
+                connection._.initHandler.stop();
+            }
+
+            delete connection._deferral;
+            delete connection.messageId;
+            delete connection.groupsToken;
+            delete connection.id;
+            delete connection._.pingIntervalId;
+            delete connection._.lastMessageAt;
+            delete connection._.lastActiveAt;
+
+            // Clear out our message buffer
+            connection._.connectingMessageBuffer.clear();
+            
+            // Clean up this event
+            $(connection).unbind(events.onStart);
+
+            // Trigger the disconnect event
+            changeState(connection, connection.state, signalR.connectionState.disconnected);
+            $(connection).triggerHandler(events.onDisconnect);
+
+            return connection;
+        },
+
+        log: function (msg) {
+            log(msg, this.logging);
+        }
+    };
+
+    signalR.fn.init.prototype = signalR.fn;
+
+    signalR.noConflict = function () {
+        /// <summary>Reinstates the original value of $.connection and returns the signalR object for manual assignment</summary>
+        /// <returns type="signalR" />
+        if ($.connection === signalR) {
+            $.connection = _connection;
+        }
+        return signalR;
+    };
+
+    if ($.connection) {
+        _connection = $.connection;
+    }
+
+    $.connection = $.signalR = signalR;
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.common.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        startAbortText = "__Start Aborted__",
+        transportLogic;
+
+    signalR.transports = {};
+
+    function beat(connection) {
+        if (connection._.keepAliveData.monitoring) {
+            checkIfAlive(connection);
+        }
+
+        // Ensure that we successfully marked active before continuing the heartbeat.
+        if (transportLogic.markActive(connection)) {
+            connection._.beatHandle = window.setTimeout(function () {
+                beat(connection);
+            }, connection._.beatInterval);
+        }
+    }
+
+    function checkIfAlive(connection) {
+        var keepAliveData = connection._.keepAliveData,
+            timeElapsed;
+
+        // Only check if we're connected
+        if (connection.state === signalR.connectionState.connected) {
+            timeElapsed = new Date().getTime() - connection._.lastMessageAt;
+
+            // Check if the keep alive has completely timed out
+            if (timeElapsed >= keepAliveData.timeout) {
+                connection.log("Keep alive timed out.  Notifying transport that connection has been lost.");
+
+                // Notify transport that the connection has been lost
+                connection.transport.lostConnection(connection);
+            } else if (timeElapsed >= keepAliveData.timeoutWarning) {
+                // This is to assure that the user only gets a single warning
+                if (!keepAliveData.userNotified) {
+                    connection.log("Keep alive has been missed, connection may be dead/slow.");
+                    $(connection).triggerHandler(events.onConnectionSlow);
+                    keepAliveData.userNotified = true;
+                }
+            } else {
+                keepAliveData.userNotified = false;
+            }
+        }
+    }
+
+    function getAjaxUrl(connection, path) {
+        var url = connection.url + path;
+
+        if (connection.transport) {
+            url += "?transport=" + connection.transport.name;
+        }
+
+        return transportLogic.prepareQueryString(connection, url);
+    }
+
+    function InitHandler(connection) {
+        this.connection = connection;
+
+        this.startRequested = false;
+        this.startCompleted = false;
+        this.connectionStopped = false;
+    }
+
+    InitHandler.prototype = {
+        start: function (transport, onSuccess, onFallback) {
+            var that = this,
+                connection = that.connection,
+                failCalled = false;
+
+            if (that.startRequested || that.connectionStopped) {
+                connection.log("WARNING! " + transport.name + " transport cannot be started. Initialization ongoing or completed.");
+                return;
+            }
+
+            connection.log(transport.name + " transport starting.");
+
+            transport.start(connection, function () {
+                if (!failCalled) {
+                    that.initReceived(transport, onSuccess);
+                }
+            }, function (error) {
+                // Don't allow the same transport to cause onFallback to be called twice
+                if (!failCalled) {
+                    failCalled = true;
+                    that.transportFailed(transport, error, onFallback);
+                }
+
+                // Returns true if the transport should stop;
+                // false if it should attempt to reconnect
+                return !that.startCompleted || that.connectionStopped;
+            });
+
+            that.transportTimeoutHandle = window.setTimeout(function () {
+                if (!failCalled) {
+                    failCalled = true;
+                    connection.log(transport.name + " transport timed out when trying to connect.");
+                    that.transportFailed(transport, undefined, onFallback);
+                }
+            }, connection._.totalTransportConnectTimeout);
+        },
+
+        stop: function () {
+            this.connectionStopped = true;
+            window.clearTimeout(this.transportTimeoutHandle);
+            signalR.transports._logic.tryAbortStartRequest(this.connection);
+        },
+
+        initReceived: function (transport, onSuccess) {
+            var that = this,
+                connection = that.connection;
+
+            if (that.startRequested) {
+                connection.log("WARNING! The client received multiple init messages.");
+                return;
+            }
+
+            if (that.connectionStopped) {
+                return;
+            }
+
+            that.startRequested = true;
+            window.clearTimeout(that.transportTimeoutHandle);
+
+            connection.log(transport.name + " transport connected. Initiating start request.");
+            signalR.transports._logic.ajaxStart(connection, function () {
+                that.startCompleted = true;
+                onSuccess();
+            });
+        },
+
+        transportFailed: function (transport, error, onFallback) {
+            var connection = this.connection,
+                deferred = connection._deferral,
+                wrappedError;
+
+            if (this.connectionStopped) {
+                return;
+            }
+
+            window.clearTimeout(this.transportTimeoutHandle);
+
+            if (!this.startRequested) {
+                transport.stop(connection);
+
+                connection.log(transport.name + " transport failed to connect. Attempting to fall back.");
+                onFallback();
+            } else if (!this.startCompleted) {
+                // Do not attempt to fall back if a start request is ongoing during a transport failure.
+                // Instead, trigger an error and stop the connection.
+                wrappedError = signalR._.error(signalR.resources.errorDuringStartRequest, error);
+
+                connection.log(transport.name + " transport failed during the start request. Stopping the connection.");
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                if (deferred) {
+                    deferred.reject(wrappedError);
+                }
+
+                connection.stop();
+            } else {
+                // The start request has completed, but the connection has not stopped.
+                // No need to do anything here. The transport should attempt its normal reconnect logic.
+            }
+        }
+    };
+
+    transportLogic = signalR.transports._logic = {
+        ajax: function (connection, options) {
+            return $.ajax(
+                $.extend(/*deep copy*/ true, {}, $.signalR.ajaxDefaults, {
+                    type: "GET",
+                    data: {},
+                    xhrFields: { withCredentials: connection.withCredentials },
+                    contentType: connection.contentType,
+                    dataType: connection.ajaxDataType
+                }, options));
+        },
+
+        pingServer: function (connection) {
+            /// <summary>Pings the server</summary>
+            /// <param name="connection" type="signalr">Connection associated with the server ping</param>
+            /// <returns type="signalR" />
+            var url,
+                xhr,
+                deferral = $.Deferred();
+
+            if (connection.transport) {
+                url = connection.url + "/ping";
+
+                url = transportLogic.addQs(url, connection.qs);
+
+                xhr = transportLogic.ajax(connection, {
+                    url: url,
+                    success: function (result) {
+                        var data;
+
+                        try {
+                            data = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailedParse,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                            return;
+                        }
+
+                        if (data.Response === "pong") {
+                            deferral.resolve();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedInvalidResponse, result),
+                                    connection.transport,
+                                    null /* error */,
+                                    xhr
+                                )
+                            );
+                        }
+                    },
+                    error: function (error) {
+                        if (error.status === 401 || error.status === 403) {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR._.format(signalR.resources.pingServerFailedStatusCode, error.status),
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                            connection.stop();
+                        }
+                        else {
+                            deferral.reject(
+                                signalR._.transportError(
+                                    signalR.resources.pingServerFailed,
+                                    connection.transport,
+                                    error,
+                                    xhr
+                                )
+                            );
+                        }
+                    }
+                });
+            }
+            else {
+                deferral.reject(
+                    signalR._.transportError(
+                        signalR.resources.noConnectionTransport,
+                        connection.transport
+                    )
+                );
+            }
+
+            return deferral.promise();
+        },
+
+        prepareQueryString: function (connection, url) {
+            var preparedUrl;
+
+            // Use addQs to start since it handles the ?/& prefix for us
+            preparedUrl = transportLogic.addQs(url, "clientProtocol=" + connection.clientProtocol);
+
+            // Add the user-specified query string params if any
+            preparedUrl = transportLogic.addQs(preparedUrl, connection.qs);
+
+            if (connection.token) {
+                preparedUrl += "&connectionToken=" + window.encodeURIComponent(connection.token);
+            }
+
+            if (connection.data) {
+                preparedUrl += "&connectionData=" + window.encodeURIComponent(connection.data);
+            }
+
+            return preparedUrl;
+        },
+
+        addQs: function (url, qs) {
+            var appender = url.indexOf("?") !== -1 ? "&" : "?",
+                firstChar;
+
+            if (!qs) {
+                return url;
+            }
+
+            if (typeof (qs) === "object") {
+                return url + appender + $.param(qs);
+            }
+
+            if (typeof (qs) === "string") {
+                firstChar = qs.charAt(0);
+
+                if (firstChar === "?" || firstChar === "&") {
+                    appender = "";
+                }
+
+                return url + appender + qs;
+            }
+
+            throw new Error("Query string property must be either a string or object.");
+        },
+
+        // BUG #2953: The url needs to be same otherwise it will cause a memory leak
+        getUrl: function (connection, transport, reconnecting, poll, ajaxPost) {
+            /// <summary>Gets the url for making a GET based connect request</summary>
+            var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,
+                url = baseUrl + connection.appRelativeUrl,
+                qs = "transport=" + transport;
+
+            if (!ajaxPost && connection.groupsToken) {
+                qs += "&groupsToken=" + window.encodeURIComponent(connection.groupsToken);
+            }
+
+            if (!reconnecting) {
+                url += "/connect";
+            } else {
+                if (poll) {
+                    // longPolling transport specific
+                    url += "/poll";
+                } else {
+                    url += "/reconnect";
+                }
+
+                if (!ajaxPost && connection.messageId) {
+                    qs += "&messageId=" + window.encodeURIComponent(connection.messageId);
+                }
+            }
+            url += "?" + qs;
+            url = transportLogic.prepareQueryString(connection, url);
+
+            if (!ajaxPost) {
+                url += "&tid=" + Math.floor(Math.random() * 11);
+            }
+
+            return url;
+        },
+
+        maximizePersistentResponse: function (minPersistentResponse) {
+            return {
+                MessageId: minPersistentResponse.C,
+                Messages: minPersistentResponse.M,
+                Initialized: typeof (minPersistentResponse.S) !== "undefined" ? true : false,
+                ShouldReconnect: typeof (minPersistentResponse.T) !== "undefined" ? true : false,
+                LongPollDelay: minPersistentResponse.L,
+                GroupsToken: minPersistentResponse.G
+            };
+        },
+
+        updateGroups: function (connection, groupsToken) {
+            if (groupsToken) {
+                connection.groupsToken = groupsToken;
+            }
+        },
+
+        stringifySend: function (connection, message) {
+            if (typeof (message) === "string" || typeof (message) === "undefined" || message === null) {
+                return message;
+            }
+            return connection.json.stringify(message);
+        },
+
+        ajaxSend: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data),
+                url = getAjaxUrl(connection, "/send"),
+                xhr,
+                onFail = function (error, connection) {
+                    $(connection).triggerHandler(events.onError, [signalR._.transportError(signalR.resources.sendFailed, connection.transport, error, xhr), data]);
+                };
+
+
+            xhr = transportLogic.ajax(connection, {
+                url: url,
+                type: connection.ajaxDataType === "jsonp" ? "GET" : "POST",
+                contentType: signalR._.defaultContentType,
+                data: {
+                    data: payload
+                },
+                success: function (result) {
+                    var res;
+
+                    if (result) {
+                        try {
+                            res = connection._parseResponse(result);
+                        }
+                        catch (error) {
+                            onFail(error, connection);
+                            connection.stop();
+                            return;
+                        }
+
+                        transportLogic.triggerReceived(connection, res);
+                    }
+                },
+                error: function (error, textStatus) {
+                    if (textStatus === "abort" || textStatus === "parsererror") {
+                        // The parsererror happens for sends that don't return any data, and hence
+                        // don't write the jsonp callback to the response. This is harder to fix on the server
+                        // so just hack around it on the client for now.
+                        return;
+                    }
+
+                    onFail(error, connection);
+                }
+            });
+
+            return xhr;
+        },
+
+        ajaxAbort: function (connection, async) {
+            if (typeof (connection.transport) === "undefined") {
+                return;
+            }
+
+            // Async by default unless explicitly overidden
+            async = typeof async === "undefined" ? true : async;
+
+            var url = getAjaxUrl(connection, "/abort");
+
+            transportLogic.ajax(connection, {
+                url: url,
+                async: async,
+                timeout: 1000,
+                type: "POST"
+            });
+
+            connection.log("Fired ajax abort async = " + async + ".");
+        },
+
+        ajaxStart: function (connection, onSuccess) {
+            var rejectDeferred = function (error) {
+                    var deferred = connection._deferral;
+                    if (deferred) {
+                        deferred.reject(error);
+                    }
+                },
+                triggerStartError = function (error) {
+                    connection.log("The start request failed. Stopping the connection.");
+                    $(connection).triggerHandler(events.onError, [error]);
+                    rejectDeferred(error);
+                    connection.stop();
+                };
+
+            connection._.startRequest = transportLogic.ajax(connection, {
+                url: getAjaxUrl(connection, "/start"),
+                success: function (result, statusText, xhr) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(result);
+                    } catch (error) {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.errorParsingStartResponse, result),
+                            error, xhr));
+                        return;
+                    }
+
+                    if (data.Response === "started") {
+                        onSuccess();
+                    } else {
+                        triggerStartError(signalR._.error(
+                            signalR._.format(signalR.resources.invalidStartResponse, result),
+                            null /* error */, xhr));
+                    }
+                },
+                error: function (xhr, statusText, error) {
+                    if (statusText !== startAbortText) {
+                        triggerStartError(signalR._.error(
+                            signalR.resources.errorDuringStartRequest,
+                            error, xhr));
+                    } else {
+                        // Stop has been called, no need to trigger the error handler
+                        // or stop the connection again with onStartError
+                        connection.log("The start request aborted because connection.stop() was called.");
+                        rejectDeferred(signalR._.error(
+                            signalR.resources.stoppedDuringStartRequest,
+                            null /* error */, xhr));
+                    }
+                }
+            });
+        },
+
+        tryAbortStartRequest: function (connection) {
+            if (connection._.startRequest) {
+                // If the start request has already completed this will noop.
+                connection._.startRequest.abort(startAbortText);
+                delete connection._.startRequest;
+            }
+        },
+
+        tryInitialize: function (connection, persistentResponse, onInitialized) {
+            if (persistentResponse.Initialized && onInitialized) {
+                onInitialized();
+            } else if (persistentResponse.Initialized) {
+                connection.log("WARNING! The client received an init message after reconnecting.");
+            }
+
+        },
+
+        triggerReceived: function (connection, data) {
+            if (!connection._.connectingMessageBuffer.tryBuffer(data)) {
+                $(connection).triggerHandler(events.onReceived, [data]);
+            }
+        },
+
+        processMessages: function (connection, minData, onInitialized) {
+            var data;
+
+            // Update the last message time stamp
+            transportLogic.markLastMessage(connection);
+
+            if (minData) {
+                data = transportLogic.maximizePersistentResponse(minData);
+
+                transportLogic.updateGroups(connection, data.GroupsToken);
+
+                if (data.MessageId) {
+                    connection.messageId = data.MessageId;
+                }
+
+                if (data.Messages) {
+                    $.each(data.Messages, function (index, message) {
+                        transportLogic.triggerReceived(connection, message);
+                    });
+
+                    transportLogic.tryInitialize(connection, data, onInitialized);
+                }
+            }
+        },
+
+        monitorKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // If we haven't initiated the keep alive timeouts then we need to
+            if (!keepAliveData.monitoring) {
+                keepAliveData.monitoring = true;
+
+                transportLogic.markLastMessage(connection);
+
+                // Save the function so we can unbind it on stop
+                connection._.keepAliveData.reconnectKeepAliveUpdate = function () {
+                    // Mark a new message so that keep alive doesn't time out connections
+                    transportLogic.markLastMessage(connection);
+                };
+
+                // Update Keep alive on reconnect
+                $(connection).bind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                connection.log("Now monitoring keep alive with a warning timeout of " + keepAliveData.timeoutWarning + ", keep alive timeout of " + keepAliveData.timeout + " and disconnecting timeout of " + connection.disconnectTimeout);
+            } else {
+                connection.log("Tried to monitor keep alive but it's already being monitored.");
+            }
+        },
+
+        stopMonitoringKeepAlive: function (connection) {
+            var keepAliveData = connection._.keepAliveData;
+
+            // Only attempt to stop the keep alive monitoring if its being monitored
+            if (keepAliveData.monitoring) {
+                // Stop monitoring
+                keepAliveData.monitoring = false;
+
+                // Remove the updateKeepAlive function from the reconnect event
+                $(connection).unbind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate);
+
+                // Clear all the keep alive data
+                connection._.keepAliveData = {};
+                connection.log("Stopping the monitoring of the keep alive.");
+            }
+        },
+
+        startHeartbeat: function (connection) {
+            connection._.lastActiveAt = new Date().getTime();
+            beat(connection);
+        },
+
+        markLastMessage: function (connection) {
+            connection._.lastMessageAt = new Date().getTime();
+        },
+
+        markActive: function (connection) {
+            if (transportLogic.verifyLastActive(connection)) {
+                connection._.lastActiveAt = new Date().getTime();
+                return true;
+            }
+
+            return false;
+        },
+
+        isConnectedOrReconnecting: function (connection) {
+            return connection.state === signalR.connectionState.connected ||
+                   connection.state === signalR.connectionState.reconnecting;
+        },
+
+        ensureReconnectingState: function (connection) {
+            if (changeState(connection,
+                        signalR.connectionState.connected,
+                        signalR.connectionState.reconnecting) === true) {
+                $(connection).triggerHandler(events.onReconnecting);
+            }
+            return connection.state === signalR.connectionState.reconnecting;
+        },
+
+        clearReconnectTimeout: function (connection) {
+            if (connection && connection._.reconnectTimeout) {
+                window.clearTimeout(connection._.reconnectTimeout);
+                delete connection._.reconnectTimeout;
+            }
+        },
+
+        verifyLastActive: function (connection) {
+            if (new Date().getTime() - connection._.lastActiveAt >= connection.reconnectWindow) {
+                var message = signalR._.format(signalR.resources.reconnectWindowTimeout, new Date(connection._.lastActiveAt), connection.reconnectWindow);
+                connection.log(message);
+                $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]);
+                connection.stop(/* async */ false, /* notifyServer */ false);
+                return false;
+            }
+
+            return true;
+        },
+
+        reconnect: function (connection, transportName) {
+            var transport = signalR.transports[transportName];
+
+            // We should only set a reconnectTimeout if we are currently connected
+            // and a reconnectTimeout isn't already set.
+            if (transportLogic.isConnectedOrReconnecting(connection) && !connection._.reconnectTimeout) {
+                // Need to verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+                if (!transportLogic.verifyLastActive(connection)) {
+                    return;
+                }
+
+                connection._.reconnectTimeout = window.setTimeout(function () {
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    transport.stop(connection);
+
+                    if (transportLogic.ensureReconnectingState(connection)) {
+                        connection.log(transportName + " reconnecting.");
+                        transport.start(connection);
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        handleParseFailure: function (connection, result, error, onFailed, context) {
+            var wrappedError = signalR._.transportError(
+                signalR._.format(signalR.resources.parseFailed, result),
+                connection.transport,
+                error,
+                context);
+
+            // If we're in the initialization phase trigger onFailed, otherwise stop the connection.
+            if (onFailed && onFailed(wrappedError)) {
+                connection.log("Failed to parse server response while attempting to connect.");
+            } else {
+                $(connection).triggerHandler(events.onError, [wrappedError]);
+                connection.stop();
+            }
+        },
+
+        initHandler: function (connection) {
+            return new InitHandler(connection);
+        },
+
+        foreverFrame: {
+            count: 0,
+            connections: {}
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.webSockets.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.webSockets = {
+        name: "webSockets",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        send: function (connection, data) {
+            var payload = transportLogic.stringifySend(connection, data);
+
+            try {
+                connection.socket.send(payload);
+            } catch (ex) {
+                $(connection).triggerHandler(events.onError,
+                    [signalR._.transportError(
+                        signalR.resources.webSocketsInvalidState,
+                        connection.transport,
+                        ex,
+                        connection.socket
+                    ),
+                    data]);
+            }
+        },
+
+        start: function (connection, onSuccess, onFailed) {
+            var url,
+                opened = false,
+                that = this,
+                reconnecting = !onSuccess,
+                $connection = $(connection);
+
+            if (!window.WebSocket) {
+                onFailed();
+                return;
+            }
+
+            if (!connection.socket) {
+                if (connection.webSocketServerUrl) {
+                    url = connection.webSocketServerUrl;
+                } else {
+                    url = connection.wsProtocol + connection.host;
+                }
+
+                url += transportLogic.getUrl(connection, this.name, reconnecting);
+
+                connection.log("Connecting to websocket endpoint '" + url + "'.");
+                connection.socket = new window.WebSocket(url);
+
+                connection.socket.onopen = function () {
+                    opened = true;
+                    connection.log("Websocket opened.");
+
+                    transportLogic.clearReconnectTimeout(connection);
+
+                    if (changeState(connection,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                };
+
+                connection.socket.onclose = function (event) {
+                    var error;
+
+                    // Only handle a socket close if the close is from the current socket.
+                    // Sometimes on disconnect the server will push down an onclose event
+                    // to an expired socket.
+
+                    if (this === connection.socket) {
+                        if (opened && typeof event.wasClean !== "undefined" && event.wasClean === false) {
+                            // Ideally this would use the websocket.onerror handler (rather than checking wasClean in onclose) but
+                            // I found in some circumstances Chrome won't call onerror. This implementation seems to work on all browsers.
+                            error = signalR._.transportError(
+                                signalR.resources.webSocketClosed,
+                                connection.transport,
+                                event);
+
+                            connection.log("Unclean disconnect from websocket: " + (event.reason || "[no reason given]."));
+                        } else {
+                            connection.log("Websocket closed.");
+                        }
+
+                        if (!onFailed || !onFailed(error)) {
+                            if (error) {
+                                $(connection).triggerHandler(events.onError, [error]);
+                            }
+
+                            that.reconnect(connection);
+                        }
+                    }
+                };
+
+                connection.socket.onmessage = function (event) {
+                    var data;
+
+                    try {
+                        data = connection._parseResponse(event.data);
+                    }
+                    catch (error) {
+                        transportLogic.handleParseFailure(connection, event.data, error, onFailed, event);
+                        return;
+                    }
+
+                    if (data) {
+                        // data.M is PersistentResponse.Messages
+                        if ($.isEmptyObject(data) || data.M) {
+                            transportLogic.processMessages(connection, data, onSuccess);
+                        } else {
+                            // For websockets we need to trigger onReceived
+                            // for callbacks to outgoing hub calls.
+                            transportLogic.triggerReceived(connection, data);
+                        }
+                    }
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection.socket) {
+                connection.log("Closing the Websocket.");
+                connection.socket.close();
+                connection.socket = null;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.serverSentEvents.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        clearReconnectAttemptTimeout = function (connection) {
+            window.clearTimeout(connection._.reconnectAttemptTimeoutHandle);
+            delete connection._.reconnectAttemptTimeoutHandle;
+        };
+
+    signalR.transports.serverSentEvents = {
+        name: "serverSentEvents",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        timeOut: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                opened = false,
+                $connection = $(connection),
+                reconnecting = !onSuccess,
+                url;
+
+            if (connection.eventSource) {
+                connection.log("The connection already has an event source. Stopping it.");
+                connection.stop();
+            }
+
+            if (!window.EventSource) {
+                if (onFailed) {
+                    connection.log("This browser doesn't support SSE.");
+                    onFailed();
+                }
+                return;
+            }
+
+            url = transportLogic.getUrl(connection, this.name, reconnecting);
+
+            try {
+                connection.log("Attempting to connect to SSE endpoint '" + url + "'.");
+                connection.eventSource = new window.EventSource(url, { withCredentials: connection.withCredentials });
+            }
+            catch (e) {
+                connection.log("EventSource failed trying to connect with error " + e.Message + ".");
+                if (onFailed) {
+                    // The connection failed, call the failed callback
+                    onFailed();
+                } else {
+                    $connection.triggerHandler(events.onError, [signalR._.transportError(signalR.resources.eventSourceFailedToConnect, connection.transport, e)]);
+                    if (reconnecting) {
+                        // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                        that.reconnect(connection);
+                    }
+                }
+                return;
+            }
+
+            if (reconnecting) {
+                connection._.reconnectAttemptTimeoutHandle = window.setTimeout(function () {
+                    if (opened === false) {
+                        // If we're reconnecting and the event source is attempting to connect,
+                        // don't keep retrying. This causes duplicate connections to spawn.
+                        if (connection.eventSource.readyState !== window.EventSource.OPEN) {
+                            // If we were reconnecting, rather than doing initial connect, then try reconnect again
+                            that.reconnect(connection);
+                        }
+                    }
+                },
+                that.timeOut);
+            }
+
+            connection.eventSource.addEventListener("open", function (e) {
+                connection.log("EventSource connected.");
+
+                clearReconnectAttemptTimeout(connection);
+                transportLogic.clearReconnectTimeout(connection);
+
+                if (opened === false) {
+                    opened = true;
+
+                    if (changeState(connection,
+                                         signalR.connectionState.reconnecting,
+                                         signalR.connectionState.connected) === true) {
+                        $connection.triggerHandler(events.onReconnect);
+                    }
+                }
+            }, false);
+
+            connection.eventSource.addEventListener("message", function (e) {
+                var res;
+
+                // process messages
+                if (e.data === "initialized") {
+                    return;
+                }
+
+                try {
+                    res = connection._parseResponse(e.data);
+                }
+                catch (error) {
+                    transportLogic.handleParseFailure(connection, e.data, error, onFailed, e);
+                    return;
+                }
+
+                transportLogic.processMessages(connection, res, onSuccess);
+            }, false);
+
+            connection.eventSource.addEventListener("error", function (e) {
+                var error = signalR._.transportError(
+                    signalR.resources.eventSourceError,
+                    connection.transport,
+                    e);
+
+                // Only handle an error if the error is from the current Event Source.
+                // Sometimes on disconnect the server will push down an error event
+                // to an expired Event Source.
+                if (this !== connection.eventSource) {
+                    return;
+                }
+
+                if (onFailed && onFailed(error)) {
+                    return;
+                }
+
+                connection.log("EventSource readyState: " + connection.eventSource.readyState + ".");
+
+                if (e.eventPhase === window.EventSource.CLOSED) {
+                    // We don't use the EventSource's native reconnect function as it
+                    // doesn't allow us to change the URL when reconnecting. We need
+                    // to change the URL to not include the /connect suffix, and pass
+                    // the last message id we received.
+                    connection.log("EventSource reconnecting due to the server connection ending.");
+                    that.reconnect(connection);
+                } else {
+                    // connection error
+                    connection.log("EventSource error.");
+                    $connection.triggerHandler(events.onError, [error]);
+                }
+            }, false);
+        },
+
+        reconnect: function (connection) {
+            transportLogic.reconnect(connection, this.name);
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            // Don't trigger a reconnect after stopping
+            clearReconnectAttemptTimeout(connection);
+            transportLogic.clearReconnectTimeout(connection);
+
+            if (connection && connection.eventSource) {
+                connection.log("EventSource calling close().");
+                connection.eventSource.close();
+                connection.eventSource = null;
+                delete connection.eventSource;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.foreverFrame.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        transportLogic = signalR.transports._logic,
+        createFrame = function () {
+            var frame = window.document.createElement("iframe");
+            frame.setAttribute("style", "position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;");
+            return frame;
+        },
+        // Used to prevent infinite loading icon spins in older versions of ie
+        // We build this object inside a closure so we don't pollute the rest of
+        // the foreverFrame transport with unnecessary functions/utilities.
+        loadPreventer = (function () {
+            var loadingFixIntervalId = null,
+                loadingFixInterval = 1000,
+                attachedTo = 0;
+
+            return {
+                prevent: function () {
+                    // Prevent additional iframe removal procedures from newer browsers
+                    if (signalR._.ieVersion <= 8) {
+                        // We only ever want to set the interval one time, so on the first attachedTo
+                        if (attachedTo === 0) {
+                            // Create and destroy iframe every 3 seconds to prevent loading icon, super hacky
+                            loadingFixIntervalId = window.setInterval(function () {
+                                var tempFrame = createFrame();
+
+                                window.document.body.appendChild(tempFrame);
+                                window.document.body.removeChild(tempFrame);
+
+                                tempFrame = null;
+                            }, loadingFixInterval);
+                        }
+
+                        attachedTo++;
+                    }
+                },
+                cancel: function () {
+                    // Only clear the interval if there's only one more object that the loadPreventer is attachedTo
+                    if (attachedTo === 1) {
+                        window.clearInterval(loadingFixIntervalId);
+                    }
+
+                    if (attachedTo > 0) {
+                        attachedTo--;
+                    }
+                }
+            };
+        })();
+
+    signalR.transports.foreverFrame = {
+        name: "foreverFrame",
+
+        supportsKeepAlive: function () {
+            return true;
+        },
+
+        // Added as a value here so we can create tests to verify functionality
+        iframeClearThreshold: 50,
+
+        start: function (connection, onSuccess, onFailed) {
+            var that = this,
+                frameId = (transportLogic.foreverFrame.count += 1),
+                url,
+                frame = createFrame(),
+                frameLoadHandler = function () {
+                    connection.log("Forever frame iframe finished loading and is no longer receiving messages.");
+                    if (!onFailed || !onFailed()) {
+                        that.reconnect(connection);
+                    }
+                };
+
+            if (window.EventSource) {
+                // If the browser supports SSE, don't use Forever Frame
+                if (onFailed) {
+                    connection.log("Forever Frame is not supported by SignalR on browsers with SSE support.");
+                    onFailed();
+                }
+                return;
+            }
+
+            frame.setAttribute("data-signalr-connection-id", connection.id);
+
+            // Start preventing loading icon
+            // This will only perform work if the loadPreventer is not attached to another connection.
+            loadPreventer.prevent();
+
+            // Build the url
+            url = transportLogic.getUrl(connection, this.name);
+            url += "&frameId=" + frameId;
+
+            // add frame to the document prior to setting URL to avoid caching issues.
+            window.document.documentElement.appendChild(frame);
+
+            connection.log("Binding to iframe's load event.");
+
+            if (frame.addEventListener) {
+                frame.addEventListener("load", frameLoadHandler, false);
+            } else if (frame.attachEvent) {
+                frame.attachEvent("onload", frameLoadHandler);
+            }
+
+            frame.src = url;
+            transportLogic.foreverFrame.connections[frameId] = connection;
+
+            connection.frame = frame;
+            connection.frameId = frameId;
+
+            if (onSuccess) {
+                connection.onSuccess = function () {
+                    connection.log("Iframe transport started.");
+                    onSuccess();
+                };
+            }
+        },
+
+        reconnect: function (connection) {
+            var that = this;
+
+            // Need to verify connection state and verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration.
+            if (transportLogic.isConnectedOrReconnecting(connection) && transportLogic.verifyLastActive(connection)) {
+                window.setTimeout(function () {
+                    // Verify that we're ok to reconnect.
+                    if (!transportLogic.verifyLastActive(connection)) {
+                        return;
+                    }
+
+                    if (connection.frame && transportLogic.ensureReconnectingState(connection)) {
+                        var frame = connection.frame,
+                            src = transportLogic.getUrl(connection, that.name, true) + "&frameId=" + connection.frameId;
+                        connection.log("Updating iframe src to '" + src + "'.");
+                        frame.src = src;
+                    }
+                }, connection.reconnectDelay);
+            }
+        },
+
+        lostConnection: function (connection) {
+            this.reconnect(connection);
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        receive: function (connection, data) {
+            var cw,
+                body,
+                response;
+
+            if (connection.json !== connection._originalJson) {
+                // If there's a custom JSON parser configured then serialize the object
+                // using the original (browser) JSON parser and then deserialize it using
+                // the custom parser (connection._parseResponse does that). This is so we
+                // can easily send the response from the server as "raw" JSON but still
+                // support custom JSON deserialization in the browser.
+                data = connection._originalJson.stringify(data);
+            }
+
+            response = connection._parseResponse(data);
+
+            transportLogic.processMessages(connection, response, connection.onSuccess);
+
+            // Protect against connection stopping from a callback trigger within the processMessages above.
+            if (connection.state === $.signalR.connectionState.connected) {
+                // Delete the script & div elements
+                connection.frameMessageCount = (connection.frameMessageCount || 0) + 1;
+                if (connection.frameMessageCount > signalR.transports.foreverFrame.iframeClearThreshold) {
+                    connection.frameMessageCount = 0;
+                    cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                    if (cw && cw.document && cw.document.body) {
+                        body = cw.document.body;
+
+                        // Remove all the child elements from the iframe's body to conserver memory
+                        while (body.firstChild) {
+                            body.removeChild(body.firstChild);
+                        }
+                    }
+                }
+            }
+        },
+
+        stop: function (connection) {
+            var cw = null;
+
+            // Stop attempting to prevent loading icon
+            loadPreventer.cancel();
+
+            if (connection.frame) {
+                if (connection.frame.stop) {
+                    connection.frame.stop();
+                } else {
+                    try {
+                        cw = connection.frame.contentWindow || connection.frame.contentDocument;
+                        if (cw.document && cw.document.execCommand) {
+                            cw.document.execCommand("Stop");
+                        }
+                    }
+                    catch (e) {
+                        connection.log("Error occurred when stopping foreverFrame transport. Message = " + e.message + ".");
+                    }
+                }
+
+                // Ensure the iframe is where we left it
+                if (connection.frame.parentNode === window.document.documentElement) {
+                    window.document.documentElement.removeChild(connection.frame);
+                }
+
+                delete transportLogic.foreverFrame.connections[connection.frameId];
+                connection.frame = null;
+                connection.frameId = null;
+                delete connection.frame;
+                delete connection.frameId;
+                delete connection.onSuccess;
+                delete connection.frameMessageCount;
+                connection.log("Stopping forever frame.");
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        },
+
+        getConnection: function (id) {
+            return transportLogic.foreverFrame.connections[id];
+        },
+
+        started: function (connection) {
+            if (changeState(connection,
+                signalR.connectionState.reconnecting,
+                signalR.connectionState.connected) === true) {
+
+                $(connection).triggerHandler(events.onReconnect);
+            }
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.transports.longPolling.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.transports.common.js" />
+
+(function ($, window, undefined) {
+
+    var signalR = $.signalR,
+        events = $.signalR.events,
+        changeState = $.signalR.changeState,
+        isDisconnecting = $.signalR.isDisconnecting,
+        transportLogic = signalR.transports._logic;
+
+    signalR.transports.longPolling = {
+        name: "longPolling",
+
+        supportsKeepAlive: function () {
+            return false;
+        },
+
+        reconnectDelay: 3000,
+
+        start: function (connection, onSuccess, onFailed) {
+            /// <summary>Starts the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to start</param>
+            var that = this,
+                fireConnect = function () {
+                    fireConnect = $.noop;
+
+                    connection.log("LongPolling connected.");
+
+                    if (onSuccess) {
+                        onSuccess();
+                    } else {
+                        connection.log("WARNING! The client received an init message after reconnecting.");
+                    }
+                },
+                tryFailConnect = function (error) {
+                    if (onFailed(error)) {
+                        connection.log("LongPolling failed to connect.");
+                        return true;
+                    }
+
+                    return false;
+                },
+                privateData = connection._,
+                reconnectErrors = 0,
+                fireReconnected = function (instance) {
+                    window.clearTimeout(privateData.reconnectTimeoutId);
+                    privateData.reconnectTimeoutId = null;
+
+                    if (changeState(instance,
+                                    signalR.connectionState.reconnecting,
+                                    signalR.connectionState.connected) === true) {
+                        // Successfully reconnected!
+                        instance.log("Raising the reconnect event");
+                        $(instance).triggerHandler(events.onReconnect);
+                    }
+                },
+                // 1 hour
+                maxFireReconnectedTimeout = 3600000;
+
+            if (connection.pollXhr) {
+                connection.log("Polling xhr requests already exists, aborting.");
+                connection.stop();
+            }
+
+            connection.messageId = null;
+
+            privateData.reconnectTimeoutId = null;
+
+            privateData.pollTimeoutId = window.setTimeout(function () {
+                (function poll(instance, raiseReconnect) {
+                    var messageId = instance.messageId,
+                        connect = (messageId === null),
+                        reconnecting = !connect,
+                        polling = !raiseReconnect,
+                        url = transportLogic.getUrl(instance, that.name, reconnecting, polling, true /* use Post for longPolling */),
+                        postData = {};
+
+                    if (instance.messageId) {
+                        postData.messageId = instance.messageId;
+                    }
+
+                    if (instance.groupsToken) {
+                        postData.groupsToken = instance.groupsToken;
+                    }
+
+                    // If we've disconnected during the time we've tried to re-instantiate the poll then stop.
+                    if (isDisconnecting(instance) === true) {
+                        return;
+                    }
+
+                    connection.log("Opening long polling request to '" + url + "'.");
+                    instance.pollXhr = transportLogic.ajax(connection, {
+                        xhrFields: {
+                            onprogress: function () {
+                                transportLogic.markLastMessage(connection);
+                            }
+                        },
+                        url: url,
+                        type: "POST",
+                        contentType: signalR._.defaultContentType,
+                        data: postData,
+                        timeout: connection._.pollTimeout,
+                        success: function (result) {
+                            var minData,
+                                delay = 0,
+                                data,
+                                shouldReconnect;
+
+                            connection.log("Long poll complete.");
+
+                            // Reset our reconnect errors so if we transition into a reconnecting state again we trigger
+                            // reconnected quickly
+                            reconnectErrors = 0;
+
+                            try {
+                                // Remove any keep-alives from the beginning of the result
+                                minData = connection._parseResponse(result);
+                            }
+                            catch (error) {
+                                transportLogic.handleParseFailure(instance, result, error, tryFailConnect, instance.pollXhr);
+                                return;
+                            }
+
+                            // If there's currently a timeout to trigger reconnect, fire it now before processing messages
+                            if (privateData.reconnectTimeoutId !== null) {
+                                fireReconnected(instance);
+                            }
+
+                            if (minData) {
+                                data = transportLogic.maximizePersistentResponse(minData);
+                            }
+
+                            transportLogic.processMessages(instance, minData, fireConnect);
+
+                            if (data &&
+                                $.type(data.LongPollDelay) === "number") {
+                                delay = data.LongPollDelay;
+                            }
+
+                            if (isDisconnecting(instance) === true) {
+                                return;
+                            }
+
+                            shouldReconnect = data && data.ShouldReconnect;
+                            if (shouldReconnect) {
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into a invalid state in processMessages.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+                            }
+
+                            // We never want to pass a raiseReconnect flag after a successful poll.  This is handled via the error function
+                            if (delay > 0) {
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, shouldReconnect);
+                                }, delay);
+                            } else {
+                                poll(instance, shouldReconnect);
+                            }
+                        },
+
+                        error: function (data, textStatus) {
+                            var error = signalR._.transportError(signalR.resources.longPollFailed, connection.transport, data, instance.pollXhr);
+
+                            // Stop trying to trigger reconnect, connection is in an error state
+                            // If we're not in the reconnect state this will noop
+                            window.clearTimeout(privateData.reconnectTimeoutId);
+                            privateData.reconnectTimeoutId = null;
+
+                            if (textStatus === "abort") {
+                                connection.log("Aborted xhr request.");
+                                return;
+                            }
+
+                            if (!tryFailConnect(error)) {
+
+                                // Increment our reconnect errors, we assume all errors to be reconnect errors
+                                // In the case that it's our first error this will cause Reconnect to be fired
+                                // after 1 second due to reconnectErrors being = 1.
+                                reconnectErrors++;
+
+                                if (connection.state !== signalR.connectionState.reconnecting) {
+                                    connection.log("An error occurred using longPolling. Status = " + textStatus + ".  Response = " + data.responseText + ".");
+                                    $(instance).triggerHandler(events.onError, [error]);
+                                }
+
+                                // We check the state here to verify that we're not in an invalid state prior to verifying Reconnect.
+                                // If we're not in connected or reconnecting then the next ensureReconnectingState check will fail and will return.
+                                // Therefore we don't want to change that failure code path.
+                                if ((connection.state === signalR.connectionState.connected ||
+                                    connection.state === signalR.connectionState.reconnecting) &&
+                                    !transportLogic.verifyLastActive(connection)) {
+                                    return;
+                                }
+
+                                // Transition into the reconnecting state
+                                // If this fails then that means that the user transitioned the connection into the disconnected or connecting state within the above error handler trigger.
+                                if (!transportLogic.ensureReconnectingState(instance)) {
+                                    return;
+                                }
+
+                                // Call poll with the raiseReconnect flag as true after the reconnect delay
+                                privateData.pollTimeoutId = window.setTimeout(function () {
+                                    poll(instance, true);
+                                }, that.reconnectDelay);
+                            }
+                        }
+                    });
+
+                    // This will only ever pass after an error has occurred via the poll ajax procedure.
+                    if (reconnecting && raiseReconnect === true) {
+                        // We wait to reconnect depending on how many times we've failed to reconnect.
+                        // This is essentially a heuristic that will exponentially increase in wait time before
+                        // triggering reconnected.  This depends on the "error" handler of Poll to cancel this
+                        // timeout if it triggers before the Reconnected event fires.
+                        // The Math.min at the end is to ensure that the reconnect timeout does not overflow.
+                        privateData.reconnectTimeoutId = window.setTimeout(function () { fireReconnected(instance); }, Math.min(1000 * (Math.pow(2, reconnectErrors) - 1), maxFireReconnectedTimeout));
+                    }
+                }(connection));
+            }, 250); // Have to delay initial poll so Chrome doesn't show loader spinner in tab
+        },
+
+        lostConnection: function (connection) {
+            if (connection.pollXhr) {
+                connection.pollXhr.abort("lostConnection");
+            }
+        },
+
+        send: function (connection, data) {
+            transportLogic.ajaxSend(connection, data);
+        },
+
+        stop: function (connection) {
+            /// <summary>Stops the long polling connection</summary>
+            /// <param name="connection" type="signalR">The SignalR connection to stop</param>
+
+            window.clearTimeout(connection._.pollTimeoutId);
+            window.clearTimeout(connection._.reconnectTimeoutId);
+
+            delete connection._.pollTimeoutId;
+            delete connection._.reconnectTimeoutId;
+
+            if (connection.pollXhr) {
+                connection.pollXhr.abort();
+                connection.pollXhr = null;
+                delete connection.pollXhr;
+            }
+        },
+
+        abort: function (connection, async) {
+            transportLogic.ajaxAbort(connection, async);
+        }
+    };
+
+}(window.jQuery, window));
+/* jquery.signalR.hubs.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+
+(function ($, window, undefined) {
+
+    var eventNamespace = ".hubProxy",
+        signalR = $.signalR;
+
+    function makeEventName(event) {
+        return event + eventNamespace;
+    }
+
+    // Equivalent to Array.prototype.map
+    function map(arr, fun, thisp) {
+        var i,
+            length = arr.length,
+            result = [];
+        for (i = 0; i < length; i += 1) {
+            if (arr.hasOwnProperty(i)) {
+                result[i] = fun.call(thisp, arr[i], i, arr);
+            }
+        }
+        return result;
+    }
+
+    function getArgValue(a) {
+        return $.isFunction(a) ? null : ($.type(a) === "undefined" ? null : a);
+    }
+
+    function hasMembers(obj) {
+        for (var key in obj) {
+            // If we have any properties in our callback map then we have callbacks and can exit the loop via return
+            if (obj.hasOwnProperty(key)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    function clearInvocationCallbacks(connection, error) {
+        /// <param name="connection" type="hubConnection" />
+        var callbacks = connection._.invocationCallbacks,
+            callback;
+
+        if (hasMembers(callbacks)) {
+            connection.log("Clearing hub invocation callbacks with error: " + error + ".");
+        }
+
+        // Reset the callback cache now as we have a local var referencing it
+        connection._.invocationCallbackId = 0;
+        delete connection._.invocationCallbacks;
+        connection._.invocationCallbacks = {};
+
+        // Loop over the callbacks and invoke them.
+        // We do this using a local var reference and *after* we've cleared the cache
+        // so that if a fail callback itself tries to invoke another method we don't
+        // end up with its callback in the list we're looping over.
+        for (var callbackId in callbacks) {
+            callback = callbacks[callbackId];
+            callback.method.call(callback.scope, { E: error });
+        }
+    }
+
+    // hubProxy
+    function hubProxy(hubConnection, hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        return new hubProxy.fn.init(hubConnection, hubName);
+    }
+
+    hubProxy.fn = hubProxy.prototype = {
+        init: function (connection, hubName) {
+            this.state = {};
+            this.connection = connection;
+            this.hubName = hubName;
+            this._ = {
+                callbackMap: {}
+            };
+        },
+
+        constructor: hubProxy,
+
+        hasSubscriptions: function () {
+            return hasMembers(this._.callbackMap);
+        },
+
+        on: function (eventName, callback) {
+            /// <summary>Wires up a callback to be invoked when a invocation request is received from the server hub.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to register the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            // If there is not an event registered for this callback yet we want to create its event space in the callback map.
+            if (!callbackMap[eventName]) {
+                callbackMap[eventName] = {};
+            }
+
+            // Map the callback to our encompassed function
+            callbackMap[eventName][callback] = function (e, data) {
+                callback.apply(that, data);
+            };
+
+            $(that).bind(makeEventName(eventName), callbackMap[eventName][callback]);
+
+            return that;
+        },
+
+        off: function (eventName, callback) {
+            /// <summary>Removes the callback invocation request from the server hub for the given event name.</summary>
+            /// <param name="eventName" type="String">The name of the hub event to unregister the callback for.</param>
+            /// <param name="callback" type="Function">The callback to be invoked.</param>
+            var that = this,
+                callbackMap = that._.callbackMap,
+                callbackSpace;
+
+            // Normalize the event name to lowercase
+            eventName = eventName.toLowerCase();
+
+            callbackSpace = callbackMap[eventName];
+
+            // Verify that there is an event space to unbind
+            if (callbackSpace) {
+                // Only unbind if there's an event bound with eventName and a callback with the specified callback
+                if (callbackSpace[callback]) {
+                    $(that).unbind(makeEventName(eventName), callbackSpace[callback]);
+
+                    // Remove the callback from the callback map
+                    delete callbackSpace[callback];
+
+                    // Check if there are any members left on the event, if not we need to destroy it.
+                    if (!hasMembers(callbackSpace)) {
+                        delete callbackMap[eventName];
+                    }
+                } else if (!callback) { // Check if we're removing the whole event and we didn't error because of an invalid callback
+                    $(that).unbind(makeEventName(eventName));
+
+                    delete callbackMap[eventName];
+                }
+            }
+
+            return that;
+        },
+
+        invoke: function (methodName) {
+            /// <summary>Invokes a server hub method with the given arguments.</summary>
+            /// <param name="methodName" type="String">The name of the server hub method.</param>
+
+            var that = this,
+                connection = that.connection,
+                args = $.makeArray(arguments).slice(1),
+                argValues = map(args, getArgValue),
+                data = { H: that.hubName, M: methodName, A: argValues, I: connection._.invocationCallbackId },
+                d = $.Deferred(),
+                callback = function (minResult) {
+                    var result = that._maximizeHubResponse(minResult),
+                        source,
+                        error;
+
+                    // Update the hub state
+                    $.extend(that.state, result.State);
+
+                    if (result.Progress) {
+                        if (d.notifyWith) {
+                            // Progress is only supported in jQuery 1.7+
+                            d.notifyWith(that, [result.Progress.Data]);
+                        } else if(!connection._.progressjQueryVersionLogged) {
+                            connection.log("A hub method invocation progress update was received but the version of jQuery in use (" + $.prototype.jquery + ") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications.");
+                            connection._.progressjQueryVersionLogged = true;
+                        }
+                    } else if (result.Error) {
+                        // Server hub method threw an exception, log it & reject the deferred
+                        if (result.StackTrace) {
+                            connection.log(result.Error + "\n" + result.StackTrace + ".");
+                        }
+
+                        // result.ErrorData is only set if a HubException was thrown
+                        source = result.IsHubException ? "HubException" : "Exception";
+                        error = signalR._.error(result.Error, source);
+                        error.data = result.ErrorData;
+
+                        connection.log(that.hubName + "." + methodName + " failed to execute. Error: " + error.message);
+                        d.rejectWith(that, [error]);
+                    } else {
+                        // Server invocation succeeded, resolve the deferred
+                        connection.log("Invoked " + that.hubName + "." + methodName);
+                        d.resolveWith(that, [result.Result]);
+                    }
+                };
+
+            connection._.invocationCallbacks[connection._.invocationCallbackId.toString()] = { scope: that, method: callback };
+            connection._.invocationCallbackId += 1;
+
+            if (!$.isEmptyObject(that.state)) {
+                data.S = that.state;
+            }
+
+            connection.log("Invoking " + that.hubName + "." + methodName);
+            connection.send(data);
+
+            return d.promise();
+        },
+
+        _maximizeHubResponse: function (minHubResponse) {
+            return {
+                State: minHubResponse.S,
+                Result: minHubResponse.R,
+                Progress: minHubResponse.P ? {
+                    Id: minHubResponse.P.I,
+                    Data: minHubResponse.P.D
+                } : null,
+                Id: minHubResponse.I,
+                IsHubException: minHubResponse.H,
+                Error: minHubResponse.E,
+                StackTrace: minHubResponse.T,
+                ErrorData: minHubResponse.D
+            };
+        }
+    };
+
+    hubProxy.fn.init.prototype = hubProxy.fn;
+
+    // hubConnection
+    function hubConnection(url, options) {
+        /// <summary>Creates a new hub connection.</summary>
+        /// <param name="url" type="String">[Optional] The hub route url, defaults to "/signalr".</param>
+        /// <param name="options" type="Object">[Optional] Settings to use when creating the hubConnection.</param>
+        var settings = {
+            qs: null,
+            logging: false,
+            useDefaultPath: true
+        };
+
+        $.extend(settings, options);
+
+        if (!url || settings.useDefaultPath) {
+            url = (url || "") + "/signalr";
+        }
+        return new hubConnection.fn.init(url, settings);
+    }
+
+    hubConnection.fn = hubConnection.prototype = $.connection();
+
+    hubConnection.fn.init = function (url, options) {
+        var settings = {
+                qs: null,
+                logging: false,
+                useDefaultPath: true
+            },
+            connection = this;
+
+        $.extend(settings, options);
+
+        // Call the base constructor
+        $.signalR.fn.init.call(connection, url, settings.qs, settings.logging);
+
+        // Object to store hub proxies for this connection
+        connection.proxies = {};
+
+        connection._.invocationCallbackId = 0;
+        connection._.invocationCallbacks = {};
+
+        // Wire up the received handler
+        connection.received(function (minData) {
+            var data, proxy, dataCallbackId, callback, hubName, eventName;
+            if (!minData) {
+                return;
+            }
+
+            // We have to handle progress updates first in order to ensure old clients that receive
+            // progress updates enter the return value branch and then no-op when they can't find
+            // the callback in the map (because the minData.I value will not be a valid callback ID)
+            if (typeof (minData.P) !== "undefined") {
+                // Process progress notification
+                dataCallbackId = minData.P.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    callback.method.call(callback.scope, minData);
+                }
+            } else if (typeof (minData.I) !== "undefined") {
+                // We received the return value from a server method invocation, look up callback by id and call it
+                dataCallbackId = minData.I.toString();
+                callback = connection._.invocationCallbacks[dataCallbackId];
+                if (callback) {
+                    // Delete the callback from the proxy
+                    connection._.invocationCallbacks[dataCallbackId] = null;
+                    delete connection._.invocationCallbacks[dataCallbackId];
+
+                    // Invoke the callback
+                    callback.method.call(callback.scope, minData);
+                }
+            } else {
+                data = this._maximizeClientHubInvocation(minData);
+
+                // We received a client invocation request, i.e. broadcast from server hub
+                connection.log("Triggering client hub event '" + data.Method + "' on hub '" + data.Hub + "'.");
+
+                // Normalize the names to lowercase
+                hubName = data.Hub.toLowerCase();
+                eventName = data.Method.toLowerCase();
+
+                // Trigger the local invocation event
+                proxy = this.proxies[hubName];
+
+                // Update the hub state
+                $.extend(proxy.state, data.State);
+                $(proxy).triggerHandler(makeEventName(eventName), [data.Args]);
+            }
+        });
+
+        connection.error(function (errData, origData) {
+            var callbackId, callback;
+
+            if (!origData) {
+                // No original data passed so this is not a send error
+                return;
+            }
+
+            callbackId = origData.I;
+            callback = connection._.invocationCallbacks[callbackId];
+
+            // Verify that there is a callback bound (could have been cleared)
+            if (callback) {
+                // Delete the callback
+                connection._.invocationCallbacks[callbackId] = null;
+                delete connection._.invocationCallbacks[callbackId];
+
+                // Invoke the callback with an error to reject the promise
+                callback.method.call(callback.scope, { E: errData });
+            }
+        });
+
+        connection.reconnecting(function () {
+            if (connection.transport && connection.transport.name === "webSockets") {
+                clearInvocationCallbacks(connection, "Connection started reconnecting before invocation result was received.");
+            }
+        });
+
+        connection.disconnected(function () {
+            clearInvocationCallbacks(connection, "Connection was disconnected before invocation result was received.");
+        });
+    };
+
+    hubConnection.fn._maximizeClientHubInvocation = function (minClientHubInvocation) {
+        return {
+            Hub: minClientHubInvocation.H,
+            Method: minClientHubInvocation.M,
+            Args: minClientHubInvocation.A,
+            State: minClientHubInvocation.S
+        };
+    };
+
+    hubConnection.fn._registerSubscribedHubs = function () {
+        /// <summary>
+        ///     Sets the starting event to loop through the known hubs and register any new hubs
+        ///     that have been added to the proxy.
+        /// </summary>
+        var connection = this;
+
+        if (!connection._subscribedToHubs) {
+            connection._subscribedToHubs = true;
+            connection.starting(function () {
+                // Set the connection's data object with all the hub proxies with active subscriptions.
+                // These proxies will receive notifications from the server.
+                var subscribedHubs = [];
+
+                $.each(connection.proxies, function (key) {
+                    if (this.hasSubscriptions()) {
+                        subscribedHubs.push({ name: key });
+                        connection.log("Client subscribed to hub '" + key + "'.");
+                    }
+                });
+
+                if (subscribedHubs.length === 0) {
+                    connection.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");
+                }
+
+                connection.data = connection.json.stringify(subscribedHubs);
+            });
+        }
+    };
+
+    hubConnection.fn.createHubProxy = function (hubName) {
+        /// <summary>
+        ///     Creates a new proxy object for the given hub connection that can be used to invoke
+        ///     methods on server hubs and handle client method invocation requests from the server.
+        /// </summary>
+        /// <param name="hubName" type="String">
+        ///     The name of the hub on the server to create the proxy for.
+        /// </param>
+
+        // Normalize the name to lowercase
+        hubName = hubName.toLowerCase();
+
+        var proxy = this.proxies[hubName];
+        if (!proxy) {
+            proxy = hubProxy(this, hubName);
+            this.proxies[hubName] = proxy;
+        }
+
+        this._registerSubscribedHubs();
+
+        return proxy;
+    };
+
+    hubConnection.fn.init.prototype = hubConnection.fn;
+
+    $.hubConnection = hubConnection;
+
+}(window.jQuery, window));
+/* jquery.signalR.version.js */
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+/*global window:false */
+/// <reference path="jquery.signalR.core.js" />
+(function ($, undefined) {
+    $.signalR.version = "2.2.2";
+}(window.jQuery));
diff --git a/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.min.js b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.min.js
new file mode 100644
index 0000000..2ccd39d
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.JS.2.2.2/content/Scripts/jquery.signalR-2.2.2.min.js
@@ -0,0 +1,9 @@
+/*!
+ * ASP.NET SignalR JavaScript Library v2.2.2
+ * http://signalr.net/
+ *
+ * Copyright (c) .NET Foundation. All rights reserved.
+ * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+ *
+ */
+(function(n,t,i){function w(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function b(n){return n==="http:"?80:n==="https:"?443:void 0}function a(n,t){return t.match(/:\d+$/)?t:t+":"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server.  Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if(typeof n!="function")throw new Error(f.nojQuery);var r,h,o=t.document.readyState==="complete",e=n(t),c="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},v=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<arguments.length-1;n++)t=t.replace("{"+n+"}",arguments[n+1]);return t},firefoxMajorVersion:function(n){var t=n.match(/Firefox\/(\d+)/);return!t||!t.length||t.length<2?0:parseInt(t[1],10)},configurePingInterval:function(i){var f=i._.config,e=function(t){n(i).triggerHandler(u.onError,[t])};f&&!i._.pingIntervalId&&f.pingInterval&&(i._.pingIntervalId=t.setInterval(function(){r.transports._logic.pingServer(i).fail(e)},f.pingInterval))}},r.events=u,r.resources=f,r.ajaxDefaults={processData:!0,timeout:null,async:!0,global:!1,cache:!1},r.changeState=s,r.isDisconnecting=y,r.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},r.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"1.5",reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},d,y=a._deferral||n.Deferred(),b=t.document.createElement("a"),k,g;if(a.lastError=null,a._deferral=y,!a.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(v,i),n.type(v.callback)==="function"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind("load",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),b.href=a.url,b.protocol&&b.protocol!==":"?(a.protocol=b.protocol,a.host=b.host):(a.protocol=t.document.location.protocol,a.host=b.host||t.document.location.host),a.baseUrl=a.protocol+"//"+a.host,a.wsProtocol=a.protocol==="https:"?"wss://":"ws://",v.transport==="auto"&&v.jsonp===!0&&(v.transport="longPolling"),a.url.indexOf("//")===0&&(a.url=t.location.protocol+a.url,a.log("Protocol relative URL detected, normalizing it to '"+a.url+"'.")),this.isCrossDomain(a.url)&&(a.log("Auto detected cross domain url."),v.transport==="auto"&&(v.transport=["webSockets","serverSentEvents","longPolling"]),typeof v.withCredentials=="undefined"&&(v.withCredentials=!0),v.jsonp||(v.jsonp=!n.support.cors,v.jsonp&&a.log("Using jsonp because this browser doesn't support CORS.")),a.contentType=r._.defaultContentType),a.withCredentials=v.withCredentials,a.ajaxDataType=v.jsonp?"jsonp":"text",n(a).bind(u.onStart,function(){n.type(h)==="function"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),d=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log("No transports supported by the server were selected."):o===1?a.log("No fallback transports were selected."):a.log("Fallback transports exhausted.");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){d(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var i=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,f=!!a.withCredentials&&i;a.log("The start request succeeded. Transitioning to the connected state.");l(a)&&r.transports._logic.monitorKeepAlive(a);r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log("WARNING! The connection was not in the connecting state.");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind("unload",function(){a.log("Window unloading, stopping the connection.");a.stop(f)});i&&e.bind("beforeunload",function(){t.setTimeout(function(){a.stop(f)},0)})},v)}catch(w){a.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},k=a.url+"/negotiate",g=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),k=r.transports._logic.prepareQueryString(a,k),a.log("Negotiating with '"+k+"'."),a._.negotiateRequest=r.transports._logic.ajax(a,{url:k,error:function(n,t){t!==c?g(n,a):y.reject(r._.error(f.stoppedWhileNegotiating,null,a._.negotiateRequest))},success:function(t){var i,e,h,o=[],s=[];try{i=a._parseResponse(t)}catch(c){g(r._.error(f.errorParsingNegotiateResponse,c),a);return}if(e=a._.keepAliveData,a.appRelativeUrl=i.Url,a.id=i.ConnectionId,a.token=i.ConnectionToken,a.webSocketServerUrl=i.WebSocketServerUrl,a._.pollTimeout=i.ConnectionTimeout*1e3+1e4,a.disconnectTimeout=i.DisconnectTimeout*1e3,a._.totalTransportConnectTimeout=a.transportConnectTimeout+i.TransportConnectTimeout*1e3,i.KeepAliveTimeout?(e.activated=!0,e.timeout=i.KeepAliveTimeout*1e3,e.timeoutWarning=e.timeout*a.keepAliveWarnAt,a._.beatInterval=(e.timeout-e.timeoutWarning)/3):e.activated=!1,a.reconnectWindow=a.disconnectTimeout+(e.timeout||0),!i.ProtocolVersion||i.ProtocolVersion!==a.clientProtocol){h=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,i.ProtocolVersion));n(a).triggerHandler(u.onError,[h]);y.reject(h);return}n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!i.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport==="auto"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);d(o)}}),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind("load",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log("Stopping connection."),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),n(a).unbind(u.onStart),s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out.  Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o="__Start Aborted__",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,t){if(typeof n.transport!="undefined"){t=typeof t=="undefined"?!0:t;var i=e(n,"/abort");u.ajax(n,{url:i,async:t,timeout:1e3,type:"POST"});n.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response==="started"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,r){var f;u.markLastMessage(t);i&&(f=u.maximizePersistentResponse(i),u.updateGroups(t,f.GroupsToken),f.MessageId&&(t.messageId=f.MessageId),f.Messages&&(n.each(f.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,f,r)))},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime()},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if((new Date).getTime()-t._.lastActiveAt>=t.reconnectWindow){var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1}return!0},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new h(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,f=n.signalR.changeState,i=r.transports._logic;r.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=i.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[r._.transportError(r.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=i.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");i.clearReconnectTimeout(e);f(e,r.connectionState.reconnecting,r.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var i;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(i=r._.transportError(r.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(i)||(i&&n(e).triggerHandler(u.onError,[i]),l.reconnect(e)))},e.socket.onmessage=function(t){var r;try{r=e._parseResponse(t.data)}catch(u){i.handleParseFailure(e,t.data,u,s,t);return}r&&(n.isEmptyObject(r)||r.M?i.processMessages(e,r,o):i.triggerReceived(e,r))})},reconnect:function(n){i.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){i.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.documentElement&&t.document.documentElement.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+".  Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+e}function s(n,t,i){for(var f=n.length,u=[],r=0;r<f;r+=1)n.hasOwnProperty(r)&&(u[r]=t.call(i,n[r],r,n));return u}function h(t){return n.isFunction(t)?null:n.type(t)==="undefined"?null:t}function u(n){for(var t in n)if(n.hasOwnProperty(t))return!0;return!1}function f(n,t){var i=n._.invocationCallbacks,r,f;u(i)&&n.log("Clearing hub invocation callbacks with error: "+t+".");n._.invocationCallbackId=0;delete n._.invocationCallbacks;n._.invocationCallbacks={};for(f in i)r=i[f],r.method.call(r.scope,{E:t})}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||"")+"/signalr"),new t.fn.init(i,u)}var e=".hubProxy",o=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i){var u=this,f=u._.callbackMap;return t=t.toLowerCase(),f[t]||(f[t]={}),f[t][i]=function(n,t){i.apply(u,t)},n(u).bind(r(t),f[t][i]),u},off:function(t,i){var e=this,o=e._.callbackMap,f;return t=t.toLowerCase(),f=o[t],f&&(f[i]?(n(e).unbind(r(t),f[i]),delete f[i],u(f)||delete o[t]):i||(n(e).unbind(r(t)),delete o[t])),e},invoke:function(t){var i=this,r=i.connection,e=n.makeArray(arguments).slice(1),c=s(e,h),f={H:i.hubName,M:t,A:c,I:r._.invocationCallbackId},u=n.Deferred(),l=function(f){var e=i._maximizeHubResponse(f),h,s;n.extend(i.state,e.State);e.Progress?u.notifyWith?u.notifyWith(i,[e.Progress.Data]):r._.progressjQueryVersionLogged||(r.log("A hub method invocation progress update was received but the version of jQuery in use ("+n.prototype.jquery+") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),r._.progressjQueryVersionLogged=!0):e.Error?(e.StackTrace&&r.log(e.Error+"\n"+e.StackTrace+"."),h=e.IsHubException?"HubException":"Exception",s=o._.error(e.Error,h),s.data=e.ErrorData,r.log(i.hubName+"."+t+" failed to execute. Error: "+s.message),u.rejectWith(i,[s])):(r.log("Invoked "+i.hubName+"."+t),u.resolveWith(i,[e.Result]))};return r._.invocationCallbacks[r._.invocationCallbackId.toString()]={scope:i,method:l},r._.invocationCallbackId+=1,n.isEmptyObject(i.state)||(f.S=i.state),r.log("Invoking "+i.hubName+"."+t),r.send(f),u.promise()},_maximizeHubResponse:function(n){return{State:n.S,Result:n.R,Progress:n.P?{Id:n.P.I,Data:n.P.D}:null,Id:n.I,IsHubException:n.H,Error:n.E,StackTrace:n.T,ErrorData:n.D}}};i.fn.init.prototype=i.fn;t.fn=t.prototype=n.connection();t.fn.init=function(t,i){var e={qs:null,logging:!1,useDefaultPath:!0},u=this;n.extend(e,i);n.signalR.fn.init.call(u,t,e.qs,e.logging);u.proxies={};u._.invocationCallbackId=0;u._.invocationCallbacks={};u.received(function(t){var f,o,e,i,s,h;t&&(typeof t.P!="undefined"?(e=t.P.I.toString(),i=u._.invocationCallbacks[e],i&&i.method.call(i.scope,t)):typeof t.I!="undefined"?(e=t.I.toString(),i=u._.invocationCallbacks[e],i&&(u._.invocationCallbacks[e]=null,delete u._.invocationCallbacks[e],i.method.call(i.scope,t))):(f=this._maximizeClientHubInvocation(t),u.log("Triggering client hub event '"+f.Method+"' on hub '"+f.Hub+"'."),s=f.Hub.toLowerCase(),h=f.Method.toLowerCase(),o=this.proxies[s],n.extend(o.state,f.State),n(o).triggerHandler(r(h),[f.Args])))});u.error(function(n,t){var i,r;t&&(i=t.I,r=u._.invocationCallbacks[i],r&&(u._.invocationCallbacks[i]=null,delete u._.invocationCallbacks[i],r.method.call(r.scope,{E:n})))});u.reconnecting(function(){u.transport&&u.transport.name==="webSockets"&&f(u,"Connection started reconnecting before invocation result was received.")});u.disconnected(function(){f(u,"Connection was disconnected before invocation result was received.")})};t.fn._maximizeClientHubInvocation=function(n){return{Hub:n.H,Method:n.M,Args:n.A,State:n.S}};t.fn._registerSubscribedHubs=function(){var t=this;t._subscribedToHubs||(t._subscribedToHubs=!0,t.starting(function(){var i=[];n.each(t.proxies,function(n){this.hasSubscriptions()&&(i.push({name:n}),t.log("Client subscribed to hub '"+n+"'."))});i.length===0&&t.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");t.data=t.json.stringify(i)}))};t.fn.createHubProxy=function(n){n=n.toLowerCase();var t=this.proxies[n];return t||(t=i(this,n),this.proxies[n]=t),this._registerSubscribedHubs(),t};t.fn.init.prototype=t.fn;n.hubConnection=t}(window.jQuery,window),function(n){n.signalR.version="2.2.2"}(window.jQuery);
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/.signature.p7s
new file mode 100644
index 0000000..853a991
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.2.2.2.nupkg
new file mode 100644
index 0000000..c84611f
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/Microsoft.AspNet.SignalR.SystemWeb.XML b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/Microsoft.AspNet.SignalR.SystemWeb.XML
new file mode 100644
index 0000000..6bb82b2
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/Microsoft.AspNet.SignalR.SystemWeb.XML
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.AspNet.SignalR.SystemWeb</name>
+    </assembly>
+    <members>
+        <member name="M:Microsoft.AspNet.SignalR.RequestExtensions.GetHttpContext(Microsoft.AspNet.SignalR.IRequest)">
+            <summary>
+            Returns the <see cref="T:System.Web.HttpContextBase"/> for this <see cref="T:Microsoft.AspNet.SignalR.IRequest"/>.
+            </summary>
+            <param name="request">The request</param>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <typeparam name="T">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</typeparam>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="type">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Maps a <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/> with the default dependency resolver to the specified path.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="url">path of the route.</param>
+            <param name="type">The type of <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection"/>.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route</returns>.
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection)">
+            <summary>
+            Initializes the default hub route (/signalr).
+            </summary>
+            <param name="routes">The route table.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes the default hub route (/signalr).
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build">An action to further configure the OWIN pipeline.</param>
+            <returns>The registered route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.HubConfiguration,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initializes the hub route using specified configuration.
+            </summary>
+            <param name="routes">The route table.</param>
+            <param name="name">The name of the route.</param>
+            <param name="path">The path of the hubs route.</param>
+            <param name="configuration">Configuration options.</param>
+            <param name="build"></param>
+            <returns>The registered route.</returns>
+        </member>
+    </members>
+</doc>
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml
new file mode 100644
index 0000000..f0105cb
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml
@@ -0,0 +1,91 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.AspNet.SignalR.SystemWeb</name>
+  </assembly>
+  <members>
+    <member name="M:Microsoft.AspNet.SignalR.RequestExtensions.GetHttpContext(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>浠庣幆澧冧腑鑾峰彇 HttpContextBase銆�</summary>
+      <returns>鐜涓殑 <see cref="T:System.Web.HttpContextBase" />銆�</returns>
+      <param name="request">HTTP 璇锋眰銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator">
+      <summary>琛ㄧず绋嬪簭闆嗗畾浣嶅櫒鐨勭敓鎴愮鐞嗗櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖涓庣敓鎴愮鐞嗗櫒鍏宠仈鐨勭▼搴忛泦鐨勫垪琛ㄣ��</summary>
+      <returns>涓庣敓鎴愮鐞嗗櫒鍏宠仈鐨勭▼搴忛泦鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData">
+      <summary>琛ㄧず涓庤绠楁満瀵嗛挜鍏宠仈鐨勫彈淇濇姢鏁版嵁銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鏁版嵁鐨勫彈淇濇姢鍊笺��</param>
+      <param name="purpose">鍘婚櫎淇濇姢鐨勫師鍥犮��</param>
+    </member>
+    <member name="T:System.Web.Routing.SignalRRouteExtensions">
+      <summary>鎻愪緵 SignalR 鐨勮矾鐢辨墿灞曘��</summary>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <param name="type">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="path">璺敱鐨勮矾寰勩��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/.signature.p7s
new file mode 100644
index 0000000..0d3ecee
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2.nupkg
new file mode 100644
index 0000000..a09c5d6
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml
new file mode 100644
index 0000000..f0105cb
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.SystemWeb.zh-Hans.2.2.2/lib/net45/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.xml
@@ -0,0 +1,91 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.AspNet.SignalR.SystemWeb</name>
+  </assembly>
+  <members>
+    <member name="M:Microsoft.AspNet.SignalR.RequestExtensions.GetHttpContext(Microsoft.AspNet.SignalR.IRequest)">
+      <summary>浠庣幆澧冧腑鑾峰彇 HttpContextBase銆�</summary>
+      <returns>鐜涓殑 <see cref="T:System.Web.HttpContextBase" />銆�</returns>
+      <param name="request">HTTP 璇锋眰銆�</param>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator">
+      <summary>琛ㄧず绋嬪簭闆嗗畾浣嶅櫒鐨勭敓鎴愮鐞嗗櫒銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.BuildManagerAssemblyLocator.GetAssemblies">
+      <summary>杩斿洖涓庣敓鎴愮鐞嗗櫒鍏宠仈鐨勭▼搴忛泦鐨勫垪琛ㄣ��</summary>
+      <returns>涓庣敓鎴愮鐞嗗櫒鍏宠仈鐨勭▼搴忛泦鐨勫垪琛ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData">
+      <summary>琛ㄧず涓庤绠楁満瀵嗛挜鍏宠仈鐨勫彈淇濇姢鏁版嵁銆�</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.Protect(System.String,System.String)">
+      <summary>淇濇姢鎸囧畾鐨勬暟鎹��</summary>
+      <returns>鍙椾繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">瑕佷繚鎶ょ殑鏁版嵁銆�</param>
+      <param name="purpose">淇濇姢鐨勭洰鐨勩��</param>
+    </member>
+    <member name="M:Microsoft.AspNet.SignalR.SystemWeb.Infrastructure.MachineKeyProtectedData.Unprotect(System.String,System.String)">
+      <summary>鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</summary>
+      <returns>宸插彇娑堜繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="protectedValue">鏁版嵁鐨勫彈淇濇姢鍊笺��</param>
+      <param name="purpose">鍘婚櫎淇濇姢鐨勫師鍥犮��</param>
+    </member>
+    <member name="T:System.Web.Routing.SignalRRouteExtensions">
+      <summary>鎻愪緵 SignalR 鐨勮矾鐢辨墿灞曘��</summary>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection``1(System.Web.Routing.RouteCollection,System.String,System.String,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+      <typeparam name="T">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapConnection(System.Web.Routing.RouteCollection,System.String,System.String,System.Type,Microsoft.AspNet.SignalR.ConnectionConfiguration)">
+      <summary>浣跨敤榛樿渚濊禆鍏崇郴瑙f瀽绋嬪簭灏� <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鏄犲皠鍒版寚瀹氱殑璺緞銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="name">璺敱鐨勫悕绉般��</param>
+      <param name="url">璺敱鐨勮矾寰勩��</param>
+      <param name="type">
+        <see cref="T:Microsoft.AspNet.SignalR.PersistentConnection" /> 鐨勭被鍨嬨��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection,System.String,Microsoft.AspNet.SignalR.HubConfiguration)">
+      <summary>鍒濆鍖栭粯璁ら泦绾垮櫒璺敱 (/signalr)銆�</summary>
+      <returns>娉ㄥ唽鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱琛ㄣ��</param>
+      <param name="path">璺敱鐨勮矾寰勩��</param>
+      <param name="configuration">閰嶇疆閫夐」銆�</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/.signature.p7s b/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/.signature.p7s
new file mode 100644
index 0000000..3a50cec
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.zh-Hans.2.2.2.nupkg b/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.zh-Hans.2.2.2.nupkg
new file mode 100644
index 0000000..2109ca7
--- /dev/null
+++ b/packages/Microsoft.AspNet.SignalR.zh-Hans.2.2.2/Microsoft.AspNet.SignalR.zh-Hans.2.2.2.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.4.0.0/.signature.p7s b/packages/Microsoft.Owin.4.0.0/.signature.p7s
new file mode 100644
index 0000000..601d7e0
--- /dev/null
+++ b/packages/Microsoft.Owin.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.4.0.0/Microsoft.Owin.4.0.0.nupkg b/packages/Microsoft.Owin.4.0.0/Microsoft.Owin.4.0.0.nupkg
new file mode 100644
index 0000000..62b2e16
--- /dev/null
+++ b/packages/Microsoft.Owin.4.0.0/Microsoft.Owin.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml b/packages/Microsoft.Owin.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml
new file mode 100644
index 0000000..5ea91f0
--- /dev/null
+++ b/packages/Microsoft.Owin.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml
@@ -0,0 +1,1755 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.CookieOptions">
+      <summary>琛ㄧず Cookie 閫夐」銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.CookieOptions.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.CookieOptions" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Domain">
+      <summary>鑾峰彇鎴栬缃涓� Cookie 鍏宠仈鐨勫煙銆�</summary>
+      <returns>瑕佷笌 Cookie 鍏宠仈鐨勫煙銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Expires">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫埌鏈熸棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>Cookie 鐨勫埌鏈熸棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.HttpOnly">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚﹀彲閫氳繃瀹㈡埛绔剼鏈闂� Cookie銆�</summary>
+      <returns>濡傛灉鍙�氳繃瀹㈡埛绔剼鏈闂� Cookie锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Path">
+      <summary>鑾峰彇鎴栬缃浣跨敤褰撳墠 Cookie 浼犺緭鐨勮櫄鎷熻矾寰勩��</summary>
+      <returns>瑕佷娇鐢ㄥ綋鍓� Cookie 浼犺緭鐨勮櫄鎷熻矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Secure">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚﹁浣跨敤瀹夊叏濂楁帴瀛楀眰 (SSL)锛堝嵆浠呴�氳繃 HTTPS锛変紶杈� Cookie銆�</summary>
+      <returns>鑻ヨ閫氳繃 SSL 杩炴帴 (HTTPS) 浼犺緭 Cookie锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.FormCollection">
+      <summary>Contains the form value providers for the application.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.FormCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.FormCollection" /> class.</summary>
+      <param name="store">The store for the form.</param>
+    </member>
+    <member name="T:Microsoft.Owin.HeaderDictionary">
+      <summary>Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.HeaderDictionary" /> class.</summary>
+      <param name="store">The store value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Adds a new list of items in the collection.</summary>
+      <param name="item">The item to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.String,System.String[])">
+      <summary>Adds a new list of items in the collection.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Append(System.String,System.String)">
+      <summary>Adds a new value. Appends to the header if already present.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+      <summary>Quotes any values containing comas, and then coma joins all of the values with any existing values.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.AppendValues(System.String,System.String[])">
+      <summary>Adds new values. Each item remains a separate array entry.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Clear">
+      <summary>Clears the entire list of objects.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Returns a value indicating whether the specified object occurs within this collection.</summary>
+      <returns>true if the specified object occurs within this collection; otherwise, false.</returns>
+      <param name="item">The item.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.ContainsKey(System.String)">
+      <summary>Determines whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key; otherwise, false.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String[]}[],System.Int32)">
+      <summary>Copies the <see cref="T:Microsoft.Owin.HeaderDictionary" /> elements to a one-dimensional Array instance at the specified index.</summary>
+      <param name="array">The one-dimensional Array that is the destination of the specified objects copied from the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</param>
+      <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Count">
+      <summary>Gets the number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>The number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Get(System.String)">
+      <summary>Gets the associated value from the collection.</summary>
+      <returns>The associated value from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetCommaSeparatedValues(System.String)">
+      <summary>Parses out comma separated headers into individual values.</summary>
+      <returns>The comma separated headers to parse.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetEnumerator">
+      <summary>Returns an enumerator that iterates through a collection.</summary>
+      <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetValues(System.String)">
+      <summary>Gets the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+      <returns>The associated values from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.IsReadOnly">
+      <summary>Gets a value that indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Item(System.String)">
+      <summary>Get or set the associated header value in the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated header value in the collection.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Keys">
+      <summary>Gets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Indicates whether the specified object can be removed in the collection.</summary>
+      <returns>true if the specified object can be removed in the collection; otherwise, false.</returns>
+      <param name="item">The item.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.String)">
+      <summary>Indicates whether the specified object can be removed in the collection.</summary>
+      <returns>true if the specified object can be removed in the collection; otherwise, false.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Set(System.String,System.String)">
+      <summary>Sets a specific header value.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value of the header.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+      <summary>Quotes any values containing comas, and then coma joins all of the values.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.SetValues(System.String,System.String[])">
+      <summary>Sets the specified header values without modification.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.System#Collections#Generic#IDictionary{TKey@TValue}#Item(System.String)">
+      <summary>Gets or sets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.System#Collections#IEnumerable#GetEnumerator">
+      <summary>Returns an enumerator that iterates through a collection.</summary>
+      <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.TryGetValue(System.String,System.String[]@)">
+      <summary>Indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> tries to get the value.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> tries to get the value; otherwise, false.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Values">
+      <summary>Gets the attribute value.</summary>
+      <returns>The attribute value.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.HostString"></member>
+    <member name="M:Microsoft.Owin.HostString.#ctor(System.String)"></member>
+    <member name="M:Microsoft.Owin.HostString.Equals(Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.Equals(System.Object)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.String)">
+      <returns>Returns <see cref="T:Microsoft.Owin.HostString" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.Uri)">
+      <returns>Returns <see cref="T:Microsoft.Owin.HostString" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.GetHashCode">
+      <returns>Returns <see cref="T:System.Int32" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.op_Equality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.op_Inequality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.ToString">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.ToUriComponent">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HostString.Value">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.IFormCollection">
+      <summary>Represents an interface of collection of forms.</summary>
+    </member>
+    <member name="T:Microsoft.Owin.IHeaderDictionary">
+      <summary>A wrapper for <see cref="P:Microsoft.Owin.OwinRequest.Headers" /> and <see cref="P:Microsoft.Owin.OwinResponse.Headers" />.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.Append(System.String,System.String)">
+      <summary>Adds the specified header to the dictionary.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="value">The header value to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+      <summary>Adds the header values to the dictionary as a comma-separated value.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="values">The header values to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.AppendValues(System.String,System.String[])">
+      <summary>Adds the header values to the dictionary unmodified.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="values">The header values to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.GetCommaSeparatedValues(System.String)">
+      <summary>Parses out comma separated headers into individual values.  Quoted values will not be coma split, and the quotes will be removed.</summary>
+      <returns>The collection of header values.</returns>
+      <param name="key">The key of the header to get.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IHeaderDictionary.Item(System.String)">
+      <summary>Gets or sets the header with the specified key.</summary>
+      <returns>The header with the specified key.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.Set(System.String,System.String)">
+      <summary>Assigns a new header value for the specified key.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="value">The new header value to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+      <summary>Assigns the header values to the dictionary as a comma-separated value.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="values">The header values to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.SetValues(System.String,System.String[])">
+      <summary>Assigns the header values to the dictionary unmodified.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="values">The header values to set.</param>
+    </member>
+    <member name="T:Microsoft.Owin.IOwinContext">
+      <summary>This wraps OWIN environment dictionary and provides strongly typed accessors.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Authentication">
+      <summary>Gets the authentication middleware functionality available on the current request.</summary>
+      <returns>The authentication middleware functionality available on the current request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Environment">
+      <summary>Gets the wrapped OWIN environment.</summary>
+      <returns>The wrapped OWIN environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinContext.Get``1(System.String)">
+      <summary>Gets a value from the OWIN environment, or returns default(T) if not present.</summary>
+      <returns>The value with the specified key or the default(T) if not present..</returns>
+      <param name="key">The key of the value to get.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Request">
+      <summary>Gets a wrapper exposing request specific properties.</summary>
+      <returns>A wrapper exposing request specific properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Response">
+      <summary>Gets a wrapper exposing response specific properties.</summary>
+      <returns>A wrapper exposing response specific properties.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinContext.Set``1(System.String,``0)">
+      <summary>Sets the given key and value in the OWIN environment.</summary>
+      <returns>This instance.</returns>
+      <param name="key">The key of the value to set.</param>
+      <param name="value">The value to set.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.TraceOutput"></member>
+    <member name="T:Microsoft.Owin.IOwinRequest">
+      <summary>Represents the request for the open web interface.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Accept">
+      <summary>Gets or sets the accepted request.</summary>
+      <returns>The accepted request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Body">
+      <summary>Gets or sets the request body.</summary>
+      <returns>The request body.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.CacheControl">
+      <summary>Gets or sets the request cache control.</summary>
+      <returns>The request cache control.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.CallCancelled">
+      <summary>Gets or sets the call cancellation token for the request.</summary>
+      <returns>The call cancellation token for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.ContentType">
+      <summary>Gets or sets the type of the context associated with the request.</summary>
+      <returns>The type of the context associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Context">
+      <summary>Gets the request context.</summary>
+      <returns>The request context.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Cookies">
+      <summary>Gets the collection of cookies for the request.</summary>
+      <returns>The collection of cookies for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Environment">
+      <summary>Gets the request environment.</summary>
+      <returns>The request environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.Get``1(System.String)">
+      <summary>Gets the type of the request.</summary>
+      <returns>The returned request.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The type of the request.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Headers">
+      <summary>Gets the request headers.</summary>
+      <returns>The request headers.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Host">
+      <summary>Gets or sets the request host.</summary>
+      <returns>The request host.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.IsSecure">
+      <summary>Gets or sets whether this request is secure.</summary>
+      <returns>true if this request is secure; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.LocalIpAddress">
+      <summary>Gets or sets the local IP address of the object that made the request.</summary>
+      <returns>The local IP address of the object that made the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.LocalPort">
+      <summary>Gets or sets the port used in making the request.</summary>
+      <returns>The port used in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.MediaType">
+      <summary>Gets or sets the type of the media in making the request.</summary>
+      <returns>The type of the media in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Method">
+      <summary>Gets or sets the method used in making the request.</summary>
+      <returns>The method used in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Path">
+      <summary>Gets or sets the request path.</summary>
+      <returns>The request path.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.PathBase">
+      <summary>Gets or sets the request path base.</summary>
+      <returns>The request path base.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Protocol">
+      <summary>Gets or sets the protocol used in the request.</summary>
+      <returns>The protocol used in the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Query">
+      <summary>Gets the query composed of readable string collection for the request.</summary>
+      <returns>The query composed of readable string collection for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.QueryString">
+      <summary>Gets or sets the query string used in the query.</summary>
+      <returns>The query string used in the query.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.ReadFormAsync">
+      <summary>Asynchronously reads the form associated with the request.</summary>
+      <returns>The read form associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.RemoteIpAddress">
+      <summary>Gets or sets the remote IP address associated with the request.</summary>
+      <returns>The remote IP address associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.RemotePort">
+      <summary>Gets or sets the remote port associated with the request.</summary>
+      <returns>The remote port associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Scheme">
+      <summary>Gets or sets the request scheme.</summary>
+      <returns>The request scheme.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.Set``1(System.String,``0)">
+      <summary>Sets the type of the request.</summary>
+      <returns>The retrieved request.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The request value.</param>
+      <typeparam name="T">The type of the request.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Uri">
+      <summary>Gets the uniform resource identifier (URI) associated with the request.</summary>
+      <returns>The uniform resource identifier (URI) associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.User">
+      <summary>Gets or sets the user that made the request.</summary>
+      <returns>The user that made the request.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.IOwinResponse">
+      <summary>Represents an OWIN response.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Body">
+      <summary>Gets or sets the body of the <see cref="T:System.IO.Stream" />.</summary>
+      <returns>The body of the <see cref="T:System.IO.Stream" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ContentLength">
+      <summary>Gets or sets the content returned by the request.</summary>
+      <returns>The number of bytes returned by the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ContentType">
+      <summary>Gets or sets the content type of the output stream.</summary>
+      <returns>The content type of the output stream.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Context">
+      <summary>Gets the context for the <see cref="T:Microsoft.Owin.IOwinContext" />.</summary>
+      <returns>The context for the <see cref="T:Microsoft.Owin.IOwinContext" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Cookies">
+      <summary>Gets the <see cref="T:Microsoft.Owin.ResponseCookieCollection" />.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.ResponseCookieCollection" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Environment">
+      <summary>Gets the fully qualified path of the current working directory.</summary>
+      <returns>The fully qualified path of the current working directory.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ETag">
+      <summary>Gets or sets an ETag that identifies a version of the file.</summary>
+      <returns>An ETag that identifies a version of the file.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Expires">
+      <summary>Gets or sets the duration before the response expires.</summary>
+      <returns>The duration before the response expires.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Get``1(System.String)">
+      <summary>Gets the list of the OWIN response.</summary>
+      <returns>The list of the OWIN response.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Headers">
+      <summary>Gets a collection of headers.</summary>
+      <returns>A collection of headers.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+      <summary>Adds the response headers.</summary>
+      <param name="callback">The callback method.</param>
+      <param name="state">The current state.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Protocol">
+      <summary>Gets or sets the information about a protocol.</summary>
+      <returns>The information about a protocol.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ReasonPhrase">
+      <summary>Gets or sets the reason phrase, which typically is sent by servers.</summary>
+      <returns>The reason phrase.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Redirect(System.String)">
+      <summary>Redirects a response from the specified location.</summary>
+      <param name="location">The location where to redirect the response.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Set``1(System.String,``0)">
+      <summary>Returns a new set with the elements of the second set removed from the first.</summary>
+      <returns>A set containing elements of the first set that are not contained in the second set.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.StatusCode">
+      <summary>Gets or sets the OWIN status code of the output returned to the client.</summary>
+      <returns>The OWIN status code of the output returned to the client.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[])">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="data">The data contained.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="data">The data contained.</param>
+      <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes to the port.</param>
+      <param name="count">The number of bytes to write.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.String)">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="text">The contained text.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[])">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+      <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes to the port.</param>
+      <param name="count">The number of bytes to write.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="text">The text value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="text">The text value.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="T:Microsoft.Owin.IReadableStringCollection">
+      <summary>Accessors for headers, query, forms, etc.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.IReadableStringCollection.Get(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated value from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IReadableStringCollection.GetValues(System.String)">
+      <summary>Get the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+      <returns>The associated values from the collection in their original format.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IReadableStringCollection.Item(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated value from the collection.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinContext">
+      <summary>Provides strongly typed accessors and wraps OWIN environment dictionary.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinContext" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinContext" /> class.</summary>
+      <param name="environment">The environment.</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Authentication">
+      <summary>Gets the <see cref="P:Microsoft.Owin.OwinContext.Authentication" /> middleware functionality available on the current request.</summary>
+      <returns>The <see cref="P:Microsoft.Owin.OwinContext.Authentication" /> middleware functionality available on the current request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Environment">
+      <summary>Gets the wrapped OWIN environment.</summary>
+      <returns>The wrapped OWIN environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.Get``1(System.String)">
+      <summary>Gets a value from the OWIN environment, or returns default(T) if not present.</summary>
+      <returns>A value from the OWIN environment.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The generic type.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Request">
+      <summary>Gets a wrapper exposing request specific properties.</summary>
+      <returns>A wrapper exposing request specific properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Response">
+      <summary>Gets a wrapper exposing response specific properties.</summary>
+      <returns>A wrapper exposing response specific properties.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.Set``1(System.String,``0)">
+      <summary>Sets the given key and value in the OWIN environment.</summary>
+      <returns>The given key and value in the OWIN environment.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+      <typeparam name="T">The generic Type.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.TraceOutput"></member>
+    <member name="T:Microsoft.Owin.OwinMiddleware">
+      <summary>琛ㄧず OWIN 涓棿浠躲��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinMiddleware.#ctor(Microsoft.Owin.OwinMiddleware)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="next">涓嬩竴涓� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀹炰緥銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.OwinMiddleware.Next">
+      <summary>杞埌涓嬩竴涓� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀹炰緥銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinRequest"></member>
+    <member name="M:Microsoft.Owin.OwinRequest.#ctor"></member>
+    <member name="M:Microsoft.Owin.OwinRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Accept"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Body">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勬鏂囥��</summary>
+      <returns>姝よ姹傜殑姝f枃銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.CacheControl"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.CallCancelled"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.ContentType"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Context"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Cookies"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Environment">
+      <summary>鑾峰彇涓庤姹傚叧鑱旂殑鐜銆�</summary>
+      <returns>涓庤姹傚叧鑱旂殑鐜銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.Get``1(System.String)">
+      <summary>鑾峰彇鎸囧畾鐨� OWIN 璇锋眰銆�</summary>
+      <returns>濡傛灉鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">閿��</param>
+      <typeparam name="T">璇锋眰鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Headers"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Host">
+      <summary>鑾峰彇鎴栬缃鍦� OWIN 璇锋眰涓娇鐢ㄧ殑涓绘満鏍囧ご鍊笺��</summary>
+      <returns>OWIN 璇锋眰涓殑涓绘満鏍囧ご鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.IsSecure">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀� OWIN 杩炴帴鏄惁浣跨敤瀹夊叏濂楁帴瀛椼��</summary>
+      <returns>濡傛灉杩炴帴鏄� SSL 杩炴帴锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.LocalIpAddress"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.LocalPort"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.MediaType"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Method">
+      <summary>鑾峰彇鎴栬缃姹傜殑鏂规硶銆�</summary>
+      <returns>璇锋眰鐨勬柟娉曘��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Path">
+      <summary>鑾峰彇鎴栬缃綋鍓嶈姹傜殑铏氭嫙璺緞銆�</summary>
+      <returns>褰撳墠璇锋眰鐨勮櫄鎷熻矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.PathBase">
+      <summary>鑾峰彇鎴栬缃� OWIN 璇锋眰鐨勮矾鐢辫矾寰勩��</summary>
+      <returns>OWIN 璇锋眰鐨勮矾鐢辫矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Protocol"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Query"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.QueryString">
+      <summary>鑾峰彇 HTTP 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</summary>
+      <returns>HTTP 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.ReadFormAsync"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.RemoteIpAddress"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.RemotePort"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Scheme">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勬柟妗堝悕绉般��</summary>
+      <returns>姝よ姹傜殑鏂规鍚嶇О銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.Set``1(System.String,``0)">
+      <summary>璁剧疆鎸囧畾鐨勮姹傘��</summary>
+      <param name="key">閿��</param>
+      <param name="value">璇锋眰鐨勫�笺��</param>
+      <typeparam name="T">OWIN 璇锋眰鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Uri">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� URI 鐨勪俊鎭��</summary>
+      <returns>褰撳墠璇锋眰鐨� URI 鐨勪俊鎭��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.User">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勭敤鎴峰悕銆�</summary>
+      <returns>姝よ姹傜殑鐢ㄦ埛鍚嶃��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinResponse">
+      <summary>琛ㄧず OWIN 鍝嶅簲銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.#ctor"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Body">
+      <summary>鑾峰彇鎴栬缃搷搴旂殑姝f枃娴併��</summary>
+      <returns>鍝嶅簲鐨勬鏂囨祦銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.ContentLength"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃緭鍑烘祦鐨勫唴瀹圭被鍨嬨��</summary>
+      <returns>杈撳嚭娴佺殑鍐呭绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Context"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Cookies"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Environment">
+      <summary>鑾峰彇涓庡搷搴斿叧鑱旂殑鐜銆�</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鐜銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.ETag"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Expires"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Get``1(System.String)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Headers"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Protocol"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.ReasonPhrase"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Redirect(System.String)">
+      <summary>浠庢寚瀹氱殑浣嶇疆閲嶅畾鍚戝搷搴斻��</summary>
+      <param name="location">瑕佸皢鍝嶅簲閲嶅畾鍚戝埌鐨勪綅缃��</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.Set``1(System.String,``0)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.StatusCode">
+      <summary>鑾峰彇鎴栬缃繑鍥炲埌瀹㈡埛绔殑杈撳嚭鐨� OWIN 鐘舵�佷唬鐮併��</summary>
+      <returns>杩斿洖鍒板鎴风鐨勮緭鍑虹殑 OWIN 鐘舵�佷唬鐮併��</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[],System.Int32,System.Int32)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.String)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)"></member>
+    <member name="T:Microsoft.Owin.OwinStartupAttribute">
+      <summary>Represents the startup attributes for the Owin.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="friendlyName">The friendly name.</param>
+      <param name="startupType">The type of startup.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="friendlyName">The friendly name.</param>
+      <param name="startupType">The type of startup.</param>
+      <param name="methodName">The method name.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="startupType">The type of startup.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="startupType">The type of startup.</param>
+      <param name="methodName">The method name.</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.FriendlyName">
+      <summary>Gets the friendly name for the attribute.</summary>
+      <returns>The friendly name for the attribute.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.MethodName">
+      <summary>Gets the method name for the attribute.</summary>
+      <returns>The method name for the attribute.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.StartupType">
+      <summary>Gets the type of startup.</summary>
+      <returns>The type of startup.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.PathString">
+      <summary>Provides correct escaping for Path and PathBase values when needed to reconstruct a request or redirect URI string.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.#ctor(System.String)">
+      <summary>Initialize the path string with a given value. This value must be in unescaped format. Use PathString.FromUriComponent(value) if you have a path value which is in an escaped format.</summary>
+      <param name="value">The unescaped path to be assigned to the Value property.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.PathString)">
+      <summary>Adds two PathString instances into a combined PathString value.</summary>
+      <returns>Returns the combined PathString.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.QueryString)">
+      <summary>Combines a PathString and QueryString into the joined URI formatted string value.</summary>
+      <returns>Returns the joined URI formatted string.</returns>
+    </member>
+    <member name="F:Microsoft.Owin.PathString.Empty">
+      <summary>Represents the empty path. This field is read-only.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString)">
+      <summary>Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="other">The second PathString for comparison.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString,System.StringComparison)">
+      <summary>Compares this PathString value to another value using a specific StringComparison type.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="other">The second PathString for comparison.</param>
+      <param name="comparisonType">The StringComparison type to us.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(System.Object)">
+      <summary>Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="obj">The second PathString for comparison.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.String)">
+      <summary>Returns an PathString given the path as it is escaped in the URI format. The string MUST NOT contain any value that is not a path.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.Uri)">
+      <summary>Returns a PathString given the path as from a Uri object. Relative Uri objects are not supported.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uri">The Uri object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.GetHashCode">
+      <summary>Returns the hash code for the PathString value. The hash code is provided by the OrdinalIgnoreCase implementation.</summary>
+      <returns>The hash code.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.PathString.HasValue">
+      <summary>True if the path is not empty.</summary>
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Add.</summary>
+      <returns>The PathString combination of both values.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.QueryString)">
+      <summary>Operator call through to Add.</summary>
+      <returns>The PathString combination of both values.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Equality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Equals.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Inequality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Equals.</summary>
+      <returns>True if both PathString values are not equal.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString,Microsoft.Owin.PathString@)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.ToString">
+      <summary>Provides the path string escaped in a way which is correct for combining into the URI representation.</summary>
+      <returns>Returns the escaped path value.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.ToUriComponent">
+      <summary>Provides the path string escaped in a way which is correct for combining into the URI representation.</summary>
+      <returns>Returns the escaped path value.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.PathString.Value">
+      <summary>The unescaped path value.</summary>
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.QueryString">
+      <summary>Provides correct handling for QueryString value when needed to reconstruct a request or redirect URI string.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.#ctor(System.String)">
+      <summary>Initialize the query string with a given value. This value must be in escaped and delimited format without a leading '?' character.</summary>
+      <param name="value">The query string to be assigned to the Value property.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.#ctor(System.String,System.String)">
+      <summary>Initialize a query string with a single given parameter name and value. The value is.</summary>
+      <param name="name">The unencoded parameter name.</param>
+      <param name="value">The unencoded parameter value.</param>
+    </member>
+    <member name="F:Microsoft.Owin.QueryString.Empty">
+      <summary>Represents the empty query string. This field is read-only.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.Equals(Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.Equals(System.Object)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.String)">
+      <summary>Returns a PathString given the path as it is escaped in the URI format. The string MUST NOT contain any value that is not a path.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.Uri)">
+      <summary>Returns a PathString given the path as from a Uri object. Relative Uri objects are not supported.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uri">The Uri object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.GetHashCode">
+      <returns>Returns <see cref="T:System.Int32" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.QueryString.HasValue">
+      <summary>True if the query string is not empty.</summary>
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.op_Equality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.op_Inequality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.ToString">
+      <summary>Provides the query string escaped in a way which is correct for combining into the URI representation. A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially dangerous are escaped.</summary>
+      <returns>The query string value.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.ToUriComponent">
+      <summary>Provides the query string escaped in a way which is correct for combining into the URI representation. A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially dangerous are escaped.</summary>
+      <returns>The query string value.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.QueryString.Value">
+      <summary>The unescaped query string without the leading '?' character.</summary>
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.ReadableStringCollection">
+      <summary>Accessors for query, forms, etc.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Create a new wrapper</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.Get(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.GetEnumerator"></member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.GetValues(System.String)">
+      <summary>Get the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.ReadableStringCollection.Item(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.System#Collections#IEnumerable#GetEnumerator"></member>
+    <member name="T:Microsoft.Owin.RequestCookieCollection">
+      <summary>A wrapper for the request Cookie header</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>Create a new wrapper</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.GetEnumerator"></member>
+    <member name="P:Microsoft.Owin.RequestCookieCollection.Item(System.String)">
+      <summary>Returns null rather than throwing KeyNotFoundException</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.System#Collections#IEnumerable#GetEnumerator"></member>
+    <member name="T:Microsoft.Owin.ResponseCookieCollection">
+      <summary>A wrapper for the response Set-Cookie header.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.#ctor(Microsoft.Owin.IHeaderDictionary)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.ResponseCookieCollection" /> class.</summary>
+      <param name="headers">The collection of response Set-Cookie header.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String)">
+      <summary>Adds a new cookie and value.</summary>
+      <param name="key">The key of the cookie to add.</param>
+      <param name="value">The value of the cookie to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String,Microsoft.Owin.CookieOptions)">
+      <summary>Adds a new cookie and value.</summary>
+      <param name="key">The key of the cookie to add.</param>
+      <param name="value">The value of the cookie to add.</param>
+      <param name="options">The options for cookie.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String)">
+      <summary>Sets the cookie expired.</summary>
+      <param name="key">The key of the cookie to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String,Microsoft.Owin.CookieOptions)">
+      <summary>Sets the cookie expired.</summary>
+      <param name="key">The key of the cookie to set.</param>
+      <param name="options">The options for cookie.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Builder.AppBuilder">
+      <summary>A standard implementation of IAppBuilder</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor"></member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.Build(System.Type)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. This is typically done by the hosting component which created the app builder, and does not need to be called by the startup method if the IAppBuilder is passed in.</summary>
+      <returns>Returns an instance of the pipeline's entry point. This object may be safely cast to the type which was provided</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.New">
+      <summary>The New method creates a new instance of an IAppBuilder. This is needed to create a tree structure in your processing, rather than a linear pipeline. The new instance share the same Properties, but will be created with a new, empty middleware list. To create a tangent pipeline you would first call New, followed by several calls to Use on the new builder, ending with a call to Build on the new builder. The return value from Build will be the entry-point to your tangent pipeline. This entry-point may now be added to the main pipeline as an argument to a switching middleware, which will either call the tangent pipeline or the "next app", based on something in the request. That said - all of that work is typically hidden by a middleware like Map, which will do that for you.</summary>
+      <returns>The new instance of the IAppBuilder implementation</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Builder.AppBuilder.Properties">
+      <summary>Contains arbitrary properties which may added, examined, and modified by components during the startup sequence.</summary>
+      <returns>Returns <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.Use(System.Object,System.Object[])">
+      <summary>Adds a middleware node to the OWIN function pipeline. The middleware are invoked in the order they are added: the first middleware passed to Use will be the outermost function, and the last middleware passed to Use will be the innermost.</summary>
+      <returns>The IAppBuilder itself is returned. This enables you to chain your use statements together.</returns>
+      <param name="middleware">The middleware parameter determines which behavior is being chained into the pipeline. If the middleware given to Use is a Delegate, then it will be invoked with the "next app" in the chain as the first parameter. If the delegate takes more than the single argument, then the additional values must be provided to Use in the args array. If the middleware given to Use is a Type, then the public constructor will be invoked with the "next app" in the chain as the first parameter. The resulting object must have a public Invoke method. If the object has constructors which take more than the single "next app" argument, then additional values may be provided in the args array.</param>
+      <param name="args">Any additional args passed to Use will be passed as additional values, following the "next app" parameter, when the OWIN call pipeline is build. They are passed as additional parameters if the middleware parameter is a Delegate, or as additional constructor arguments if the middle parameter is a Type.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Builder.AppBuilderExtensions">
+      <summary>Extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion(Owin.IAppBuilder,System.Delegate)">
+      <summary>Adds converters for adapting between disparate application signatures.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion``2(Owin.IAppBuilder,System.Func{``0,``1})">
+      <summary>Adds converters for adapting between disparate application signatures.</summary>
+      <typeparam name="T1"></typeparam>
+      <typeparam name="T2"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build(Owin.IAppBuilder)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. May be called to build pipeline branches.</summary>
+      <returns>The request processing entry point for this section of the pipeline.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build``1(Owin.IAppBuilder)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. May be called to build pipeline branches.</summary>
+      <returns>The request processing entry point for this section of the pipeline.</returns>
+      <typeparam name="TApp">The application signature.</typeparam>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.Address">
+      <summary>Contains parts of an address and the complete address.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> class.</summary>
+      <param name="dictionary">The dictionary.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.String,System.String,System.String,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> class.</summary>
+      <param name="scheme">The scheme.</param>
+      <param name="host">The host.</param>
+      <param name="port">The port.</param>
+      <param name="path">The path.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Create">
+      <summary>Creates a new <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</summary>
+      <returns>A new <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> to create.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Dictionary">
+      <summary>Gets the internal dictionary for this collection.</summary>
+      <returns>The internal dictionary for this collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="other">The other object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(System.Object)">
+      <summary>Determines whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="obj">The other object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Get``1(System.String)">
+      <summary>Gets the list of keys in the <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</summary>
+      <returns>The list of keys in the <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</returns>
+      <param name="key">The key value.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.GetHashCode">
+      <summary>Returns the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Host">
+      <summary>Gets or sets the host for the builder.</summary>
+      <returns>The host for the builder.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Equality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are equal.</summary>
+      <returns>true if left and right represent the same address; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second objet to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Inequality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether two specified instance of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are not equal.</summary>
+      <returns>true if left and right do not represent the same address; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Path">
+      <summary>Gets or sets the string that describes the path.</summary>
+      <returns>The string that describes the path.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Port">
+      <summary>Gets or sets the port number of the address.</summary>
+      <returns>The port number of the address.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Scheme">
+      <summary>Gets or sets the scheme name for this address.</summary>
+      <returns>The scheme name.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Set(System.String,System.Object)">
+      <summary>Sets the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> with the specified key and value.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> with the specified key and value.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.AddressCollection">
+      <summary>Wraps the host.Addresses list.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.#ctor(System.Collections.Generic.IList{System.Collections.Generic.IDictionary{System.String,System.Object}})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> class.</summary>
+      <param name="list">The address list to set to the collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Add(Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Adds the specified address to the collection.</summary>
+      <param name="address">The address to add to the collection.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Count">
+      <summary>Gets the number of elements in the collection.</summary>
+      <returns>The number of elements in the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Create">
+      <summary>Creates a new instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> with empty list.</summary>
+      <returns>A new instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> with empty list.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the current collection is equal to the specified collection.</summary>
+      <returns>true if current collection is equal to the specified collection; otherwise, false.</returns>
+      <param name="other">The other collection to compare to the current collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(System.Object)">
+      <summary>Determines whether the current collection is equal to the specified object.</summary>
+      <returns>true if current collection is equal to the specified object; otherwise, false.</returns>
+      <param name="obj">The object to compare to the current collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetEnumerator">
+      <summary>Gets the enumerator that iterates through the collection.</summary>
+      <returns>The enumerator that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetHashCode">
+      <summary>Gets the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Item(System.Int32)">
+      <summary>Gets the item with the specified index from the collection.</summary>
+      <returns>The item with the specified index.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.List">
+      <summary>Gets the underlying address list.</summary>
+      <returns>The underlying address list.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Equality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the first collection is equal to the second collection.</summary>
+      <returns>true if both collections are equal; otherwise, false.</returns>
+      <param name="left">The first collection to compare.</param>
+      <param name="right">The second collection to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Inequality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the first collection is not equal to the second collection.</summary>
+      <returns>true if both collections are not equal; otherwise, false.</returns>
+      <param name="left">The first collection to compare.</param>
+      <param name="right">The second collection to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.System#Collections#IEnumerable#GetEnumerator">
+      <summary>Gets the enumerator that iterates through the collection.</summary>
+      <returns>The enumerator that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.AppProperties">
+      <summary>A wrapper for the <see cref="P:Microsoft.Owin.Builder.AppBuilder.Properties" /> IDictionary.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> class.</summary>
+      <param name="dictionary">The dictionary to set for this instance.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Addresses">
+      <summary>Gets or sets the address collection for 鈥渉ost.Addresses鈥�.</summary>
+      <returns>The address collection for 鈥渉ost.Addresses鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AddSignatureConversionDelegate">
+      <summary>Gets or sets the action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</summary>
+      <returns>The action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AppName">
+      <summary>Gets or sets the string value for 鈥渉ost.AppName鈥�.</summary>
+      <returns>The string value for 鈥渉ost.AppName鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Capabilities">
+      <summary>Gets or sets the list of 鈥渟erver.Capabilities鈥�.</summary>
+      <returns>The list of 鈥渟erver.Capabilities鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.DefaultApp">
+      <summary>Gets or sets the function delegate for 鈥渂uilder.DefaultApp鈥�.</summary>
+      <returns>The function delegate for 鈥渂uilder.DefaultApp鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Dictionary">
+      <summary>Gets the underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</summary>
+      <returns>The underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the current AppProperties is equal to the specified AppProperties.</summary>
+      <returns>true if the current AppProperties is equal to the specified AppProperties; otherwise, false.</returns>
+      <param name="other">The other AppProperties to compare with the current instance.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(System.Object)">
+      <summary>Determines whether the current AppProperties is equal to the specified object.</summary>
+      <returns>true if the current AppProperties is equal to the specified object; otherwise, false.</returns>
+      <param name="obj">The object to compare with the current instance.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Get``1(System.String)">
+      <summary>Gets the value from the dictionary with the specified key.</summary>
+      <returns>The value with the specified key.</returns>
+      <param name="key">The key of the value to get.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.GetHashCode">
+      <summary>Returns the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OnAppDisposing">
+      <summary>Gets or sets the cancellation token for 鈥渉ost.OnAppDisposing鈥�.</summary>
+      <returns>The cancellation token for 鈥渉ost.OnAppDisposing鈥�.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Equality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the first AppPProperties is equal to the second AppProperties.</summary>
+      <returns>true if both AppProperties are equal; otherwise, false.</returns>
+      <param name="left">The first AppPropeties to compare.</param>
+      <param name="right">The second AppPropeties to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Inequality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the first AppPProperties is not equal to the second AppProperties.</summary>
+      <returns>true if both AppProperties are not equal; otherwise, false.</returns>
+      <param name="left">The first AppPropeties to compare.</param>
+      <param name="right">The second AppPropeties to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OwinVersion">
+      <summary>Gets or sets the string value for 鈥渙win.Version鈥�.</summary>
+      <returns>The string value for 鈥渙win.Version鈥�.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Set(System.String,System.Object)">
+      <summary>Sets the value with the specified key.</summary>
+      <returns>This instance.</returns>
+      <param name="key">The key of the value to set.</param>
+      <param name="value">The value to set.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.TraceOutput">
+      <summary>Gets or sets the text writer for 鈥渉ost.TraceOutput鈥�.</summary>
+      <returns>The text writer for 鈥渉ost.TraceOutput鈥�.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.Capabilities">
+      <summary>Represents the capabilities for the builder properties.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.</summary>
+      <param name="dictionary">A collection of object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Create">
+      <summary>Creates the builder <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</summary>
+      <returns>The builder <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.Dictionary">
+      <summary>Gets a collection of objects.</summary>
+      <returns>A collection of objects.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Indicates a value whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="other">The object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(System.Object)">
+      <summary>Indicates a value whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="obj">The specified object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Get``1(System.String)">
+      <summary>Gets the value of the capabilities using the specified key.</summary>
+      <returns>The value of the capabilities.</returns>
+      <param name="key">The key value.</param>
+      <typeparam name="T">The generic Type.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.GetHashCode">
+      <summary>Serves as a hash function for a particular type.</summary>
+      <returns>A hash code for the current object.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Equality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.</summary>
+      <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Inequality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.</summary>
+      <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.SendFileVersion">
+      <summary>Gets or sets the file version to send.</summary>
+      <returns>The file version to send.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Set(System.String,System.Object)">
+      <summary>Sets the builder for the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> with the specified key and value.</summary>
+      <returns>The builder for the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.WebSocketVersion">
+      <summary>Gets or sets the web socket version.</summary>
+      <returns>The version of the web socket.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions">
+      <summary>Represents the integrated pipeline extensions.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,Owin.PipelineStage)">
+      <summary>Uses a stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</summary>
+      <returns>A stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</returns>
+      <param name="app">The IAppBuilder.</param>
+      <param name="stage">The pipeline stage.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,System.String)">
+      <summary>Uses a stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</summary>
+      <returns>A stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</returns>
+      <param name="app">The IAppBuilder.</param>
+      <param name="stageName">The stage of name.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Extensions.UseHandlerMiddleware">
+      <summary>Represents a middleware for executing in-line function middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.</summary>
+      <param name="next">The pointer to next middleware.</param>
+      <param name="handler">The in-line function request handler.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.</summary>
+      <param name="next">The pointer to next middleware.</param>
+      <param name="handler">The in-line function request handler.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Invokes the handler for processing the request.</summary>
+      <returns>The <see cref="T:System.Threading.Tasks.Task" /> object that represents the request operation.</returns>
+      <param name="context">The OWIN context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Helpers.WebHelpers">
+      <summary>琛ㄧず Web 甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Helpers.WebHelpers.ParseForm(System.String)"></member>
+    <member name="T:Microsoft.Owin.Infrastructure.ISystemClock">
+      <summary>鎻愪緵绯荤粺鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Infrastructure.ISystemClock.UtcNow">
+      <summary>鑾峰彇宸插熀浜庢湰鍦扮郴缁熺殑鏃堕挓鏃堕棿璁剧疆涓哄綋鍓嶉�氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>宸茶缃负褰撳墠閫氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.SignatureConversions">
+      <summary>鎻愪緵 OWIN 绛惧悕鐨勮浆鎹€��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(Owin.IAppBuilder)">
+      <summary>鍚戝簲鐢ㄧ▼搴忔坊鍔犺浆鎹€��</summary>
+      <param name="app">搴旂敤绋嬪簭銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.SystemClock">
+      <summary>鎻愪緵绯荤粺鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.SystemClock.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Infrastructure.SystemClock" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Infrastructure.SystemClock.UtcNow">
+      <summary>鑾峰彇宸插熀浜庢湰鍦扮郴缁熺殑鏃堕挓鏃堕棿璁剧疆涓哄綋鍓嶉�氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>宸茶缃负褰撳墠閫氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.WebUtilities">
+      <summary>琛ㄧず OWIN 鍩虹缁撴瀯鐨� Web 瀹炵敤宸ュ叿銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>娣诲姞鍏锋湁缁欏畾鏍囪瘑绗︾殑鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈠瓧绗︿覆鐨� URI銆�</param>
+      <param name="queryString">瑕佹坊鍔犵殑鏌ヨ瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String)">
+      <summary>娣诲姞鍏锋湁缁欏畾鏍囪瘑绗︾殑鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈠瓧绗︿覆鐨� URI銆�</param>
+      <param name="queryString">瑕佹坊鍔犵殑鏌ヨ瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String,System.String)">
+      <summary>娣诲姞鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈢殑 URI銆�</param>
+      <param name="name">鎸囧畾鐨勬煡璇㈢殑鍚嶇О銆�</param>
+      <param name="value">瑕佹坊鍔犵殑鏌ヨ鐨勫�笺��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.AppBuilderLoggerExtensions">
+      <summary>Logging extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger``1(Owin.IAppBuilder)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <typeparam name="TType">The type of the logger.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.String)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <param name="name">The name of the logger.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.Type)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <param name="component">The component of the logger.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.GetLoggerFactory(Owin.IAppBuilder)">
+      <summary>Retrieves the server.LoggerFactory from the Properties collection.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.Logging.ILoggerFactory" /> object.</returns>
+      <param name="app">The application builder.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.SetLoggerFactory(Owin.IAppBuilder,Microsoft.Owin.Logging.ILoggerFactory)">
+      <summary>Sets the server.LoggerFactory in the Properties collection.</summary>
+      <param name="app">The application builder.</param>
+      <param name="loggerFactory">The logger factory.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory">
+      <summary>琛ㄧず璇婃柇璁板綍鍣ㄥ伐鍘傘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="rootSourceSwitch">鏍规簮寮�鍏炽��</param>
+      <param name="rootTraceListener">鏍硅窡韪睛鍚櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.Create(System.String)">
+      <summary>鍒涘缓姝よ褰曞櫒鐨勫疄渚嬨��</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Logging.ILogger" />銆�</returns>
+      <param name="name">璁板綍鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.ILogger">
+      <summary>鎻愪緵璁板綍鍣ㄧ殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.ILogger.WriteCore(System.Diagnostics.TraceEventType,System.Int32,System.Object,System.Exception,System.Func{System.Object,System.Exception,System.String})">
+      <summary>灏嗗ぇ澶氭暟鏃ュ織璁板綍妯″紡鑱氬悎鎴愪竴涓柟娉曘�傝繖蹇呴』涓� OWIN 鐜涓殑 Func 琛ㄧず鏂规硶鍏煎銆傝嫢瑕佹鏌� IsEnabled锛岃鍙娇鐢� TraceEventType 璋冪敤 WriteCore 骞舵鏌ヨ繑鍥炲�硷紝灏嗕笉鍐欏叆浠讳綍浜嬩欢銆�</summary>
+      <returns>濡傛灉浜嬩欢鍖呭惈鏃ュ織璁板綍妯″紡锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="eventType">浜嬩欢绫诲瀷銆�</param>
+      <param name="eventId">浜嬩欢鏍囪瘑绗︺��</param>
+      <param name="state">浜嬩欢鐨勭姸鎬併��</param>
+      <param name="exception">寮傚父銆�</param>
+      <param name="formatter">鏍煎紡鍖栫▼搴忋��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.ILoggerFactory">
+      <summary>琛ㄧず璁板綍鍣ㄥ伐鍘傜殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.ILoggerFactory.Create(System.String)">
+      <summary>鍒涘缓姝よ褰曞櫒鐨勫疄渚嬨��</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Logging.ILogger" />銆�</returns>
+      <param name="name">璁板綍鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.LoggerExtensions">
+      <summary>琛ㄧず璁板綍鍣ㄦ墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.IsEnabled(Microsoft.Owin.Logging.ILogger,System.Diagnostics.TraceEventType)">
+      <summary>纭畾鏄惁宸插惎鐢ㄨ褰曞櫒銆�</summary>
+      <returns>濡傛灉鍚敤浜嗚褰曞櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="eventType">璺熻釜浜嬩欢绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑涓ラ噸娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">涓ラ噸娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑涓ラ噸娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">涓ラ噸娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑閿欒娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">閿欒娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑閿欒娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">瑕佸啓鍏ョ殑閿欒娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteInformation(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑淇℃伅娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">淇℃伅娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteVerbose(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑璇︾粏娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑璀﹀憡娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">瑕佸啓鍏ョ殑璀﹀憡娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.String[])"></member>
+    <member name="T:Microsoft.Owin.Logging.LoggerFactory">
+      <summary>鎻愪緵 OWIN 璁板綍鍣ㄥ伐鍘傘��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Logging.LoggerFactory.Default">
+      <summary>鑾峰彇榛樿鐨勮褰曞櫒宸ュ巶銆�</summary>
+      <returns>榛樿鐨勮褰曞櫒宸ュ巶銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapMiddleware">
+      <summary>Used to create path based branches in your application pipeline.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.Owin.Mapping.MapOptions)"></member>
+    <member name="M:Microsoft.Owin.Mapping.MapMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Process individual request.</summary>
+      <returns>The task that completes the process.</returns>
+      <param name="context">The context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapOptions">
+      <summary>Options for the Map middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapOptions.#ctor"></member>
+    <member name="P:Microsoft.Owin.Mapping.MapOptions.Branch">
+      <summary>The branch taken for a positive match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.OwinMiddleware" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapOptions.PathMatch">
+      <summary>The path to match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.PathString" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapWhenMiddleware">
+      <summary>Represents the map when middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.Owin.Mapping.MapWhenOptions)"></member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Executes the specified context.</summary>
+      <returns>The specified context.</returns>
+      <param name="context">The context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapWhenOptions">
+      <summary>Options for the MapWhen middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenOptions.#ctor"></member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Branch">
+      <summary>The branch taken for a positive match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.OwinMiddleware" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Predicate">
+      <summary>The user callback that determines if the branch should be taken.</summary>
+      <returns>Returns <see cref="T:System.Func`2" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.PredicateAsync">
+      <summary>The async user callback that determines if the branch should be taken.</summary>
+      <returns>Returns <see cref="T:System.Func`2" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticateResult">
+      <summary>Acts as the return value from calls to the IAuthenticationManager's AuthenticeAsync methods.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticateResult.#ctor(System.Security.Principal.IIdentity,Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Security.AuthenticationDescription)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticateResult" /> class with the specified data.</summary>
+      <param name="identity">The claims that were authenticated by the given AuthenticationType.</param>
+      <param name="properties">The extra values that were provided with the original SignIn call.</param>
+      <param name="description">The description properties for the middleware authentication type.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Description">
+      <summary>Gets or sets the description properties for the middleware authentication type in general. Does not vary per request.</summary>
+      <returns>The description properties for the middleware authentication type.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Identity">
+      <summary>Gets or sets the claims that were authenticated by the given AuthenticationType. If the authentication type was not successful the Identity property will be null.</summary>
+      <returns>The claims that were authenticated by the given AuthenticationType.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Properties">
+      <summary>Gets or sets the extra values that were provided with the original SignIn call.</summary>
+      <returns>The extra values that were provided with the original SignIn call.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationDescription">
+      <summary>琛ㄧず瀹夊叏韬唤楠岃瘉鐨勬弿杩般��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationDescription" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationDescription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="properties">姝よ韩浠介獙璇佺殑灞炴�с��</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.AuthenticationType">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺被鍨嬨��</summary>
+      <returns>姝よ韩浠介獙璇佺殑绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Caption">
+      <summary>鑾峰彇鎴栬缃韬唤楠岃瘉鐨勬枃鏈爣棰樸��</summary>
+      <returns>姝よ韩浠介獙璇佺殑鏂囨湰鏍囬銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Properties">
+      <summary>鑾峰彇鎴栬缃韬唤楠岃瘉鐨勫睘鎬с��</summary>
+      <returns>姝よ韩浠介獙璇佺殑灞炴�с��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationProperties">
+      <summary>Contains the authentication properties.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" /> class.</summary>
+      <param name="dictionary">The underlying dictionary used to store these properties.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.Dictionary">
+      <summary>Gets the underlying dictionary used to store these properties.</summary>
+      <returns>The underlying dictionary used to store these properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.ExpiresUtc">
+      <summary>Gets or sets the expiration date and time of authentication.</summary>
+      <returns>The expiration date and time of authentication.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IsPersistent">
+      <summary>Gets or sets a value that indicates whether authentication is persistent.</summary>
+      <returns>true if authentication is persistent; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IssuedUtc">
+      <summary>Gets or sets the issuance date and time of authentication.</summary>
+      <returns>The issuance date and time of authentication.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.RedirectUri"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseChallenge">
+      <summary>琛ㄧず韬唤楠岃瘉鍝嶅簲璐ㄨ銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseChallenge.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.AuthenticationTypes">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑绫诲瀷銆�</summary>
+      <returns>韬唤楠岃瘉鐨勭被鍨嬨��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.Properties"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseGrant">
+      <summary>琛ㄧず鎺堜簣韬唤楠岃瘉鍝嶅簲鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsPrincipal,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Identity">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑鏍囪瘑銆�</summary>
+      <returns>韬唤楠岃瘉鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Principal">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑涓讳綋銆�</summary>
+      <returns>韬唤楠岃瘉鐨勪富浣撱��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Properties"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseRevoke">
+      <summary>琛ㄧず鍚婇攢韬唤楠岃瘉鍝嶅簲鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[])">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="authenticationTypes">韬唤楠岃瘉绫诲瀷銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.AuthenticationTypes">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺被鍨嬨��</summary>
+      <returns>韬唤楠岃瘉绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.IAuthenticationManager">
+      <summary>Represents a list of objects to validate in the authentication manager.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String)">
+      <summary>Authenticates the result asynchronously.</summary>
+      <returns>The result to authenticate asynchronously.</returns>
+      <param name="authenticationType">The type of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String[])">
+      <summary>Authenticates the result asynchronously.</summary>
+      <returns>The result to authenticate asynchronously.</returns>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseChallenge">
+      <summary>Gets or sets the authentication response challenge.</summary>
+      <returns>The authentication response challenge.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseGrant">
+      <summary>Gets or sets the authentication response to grant.</summary>
+      <returns>The authentication response to grant.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseRevoke">
+      <summary>Gets or sets the authentication response to revoke.</summary>
+      <returns>The authentication response to revoke.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+      <summary>Creates a challenge for the authentication manager.</summary>
+      <param name="properties">The <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" />.</param>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(System.String[])">
+      <summary>Creates a challenge for the authentication manager.</summary>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes">
+      <summary>Gets the authentication types in the authentication manager.</summary>
+      <returns>The authentication types in the authentication manager.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes(System.Func{Microsoft.Owin.Security.AuthenticationDescription,System.Boolean})">
+      <summary>Gets the authentication types in the authentication manager.</summary>
+      <returns>The authentication types in the authentication manager.</returns>
+      <param name="predicate">The predicate.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties,System.Security.Claims.ClaimsIdentity[])">
+      <summary>Handles the sign-in process during authentication.</summary>
+      <param name="properties">The properties.</param>
+      <param name="identities">The identities.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(System.Security.Claims.ClaimsIdentity[])">
+      <summary>Handles the sign-in process during authentication.</summary>
+      <param name="identities">The identities.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(System.String[])">
+      <summary>Handles the sign-out process after authentication.</summary>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.User">
+      <summary>Gets or sets the ClaimsPrincipal user.</summary>
+      <returns>The ClaimsPrincipal user.</returns>
+    </member>
+    <member name="T:Owin.AppBuilderUseExtensions">
+      <summary>Extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Run(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+      <param name="handler">An app that handles all requests</param>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Use(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+      <param name="handler">An app that handles the request or calls the given next Func</param>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Use``1(Owin.IAppBuilder,System.Object[])">
+      <param name="args">Any additional arguments for the middleware constructor</param>
+      <typeparam name="T">The middleware type</typeparam>
+    </member>
+    <member name="T:Owin.MapExtensions">
+      <summary>Extension methods for the MapMiddleware</summary>
+    </member>
+    <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,Microsoft.Owin.PathString,System.Action{Owin.IAppBuilder})"></member>
+    <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of continuing to the next component in the pipeline.</summary>
+      <param name="pathMatch">The path to match</param>
+      <param name="configuration">The branch to take for positive path matches</param>
+    </member>
+    <member name="T:Owin.MapWhenExtensions">
+      <summary>Extension methods for the MapWhenMiddleware</summary>
+    </member>
+    <member name="M:Owin.MapWhenExtensions.MapWhen(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Boolean},System.Action{Owin.IAppBuilder})">
+      <summary>Branches the request pipeline based on the result of the given predicate.</summary>
+      <param name="predicate">Invoked with the request environment to determine if the branch should be taken</param>
+      <param name="configuration">Configures a branch to take</param>
+    </member>
+    <member name="M:Owin.MapWhenExtensions.MapWhenAsync(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task{System.Boolean}},System.Action{Owin.IAppBuilder})"></member>
+    <member name="T:Owin.PipelineStage">
+      <summary>Specifies an enumeration of pipeline state.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.AcquireState">
+      <summary>The state is AcquireState.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.Authenticate">
+      <summary>The state is Authenticate.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.Authorize">
+      <summary>The state is Authorize.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.MapHandler">
+      <summary>The state is MapHandler.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAcquireState">
+      <summary>The state is PostAcquireState.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAuthenticate">
+      <summary>The state is PostAuthenticate.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAuthorize">
+      <summary>The state is PostAuthorize.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostMapHandler">
+      <summary>The state is PostMapHandler.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostResolveCache">
+      <summary>The state is PostResolveCache.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PreHandlerExecute">
+      <summary>The state is PreHandlerExecute.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.ResolveCache">
+      <summary>The state is ResolveCache.</summary>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.Owin.4.0.0/lib/net451/Microsoft.Owin.XML b/packages/Microsoft.Owin.4.0.0/lib/net451/Microsoft.Owin.XML
new file mode 100644
index 0000000..15c340b
--- /dev/null
+++ b/packages/Microsoft.Owin.4.0.0/lib/net451/Microsoft.Owin.XML
@@ -0,0 +1,3289 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin</name>
+    </assembly>
+    <members>
+        <member name="T:Owin.AppBuilderUseExtensions">
+            <summary>
+            Extension methods for <see cref="T:Owin.IAppBuilder"/>.
+            </summary>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Use``1(Owin.IAppBuilder,System.Object[])">
+            <summary>
+            Inserts a middleware into the OWIN pipeline.
+            </summary>
+            <typeparam name="T">The middleware type</typeparam>
+            <param name="app"></param>
+            <param name="args">Any additional arguments for the middleware constructor</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Run(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+            <summary>
+            Inserts into the OWIN pipeline a middleware which does not have a next middleware reference.
+            </summary>
+            <param name="app"></param>
+            <param name="handler">An app that handles all requests</param>
+        </member>
+        <member name="M:Owin.AppBuilderUseExtensions.Use(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+            <summary>
+            Inserts a middleware into the OWIN pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="handler">An app that handles the request or calls the given next Func</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Extensions.UseHandlerMiddleware">
+            <summary>
+            Represents a middleware for executing in-line function middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.
+            </summary>
+            <param name="next">The pointer to next middleware.</param>
+            <param name="handler">A function that handles all requests.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.
+            </summary>
+            <param name="next">The pointer to next middleware.</param>
+            <param name="handler">A function that handles the request or calls the given next function.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Invokes the handler for processing the request.
+            </summary>
+            <param name="environment">The OWIN context.</param>
+            <returns>The <see cref="T:System.Threading.Tasks.Task" /> object that represents the request operation.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.FormCollection">
+            <summary>
+            Contains the parsed form values.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.ReadableStringCollection">
+            <summary>
+            Accessors for query, forms, etc.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IReadableStringCollection">
+            <summary>
+            Accessors for headers, query, forms, etc.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IReadableStringCollection.Get(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.IReadableStringCollection.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection in their original format.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.IReadableStringCollection.Item(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="store"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.Get(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection in their original format.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.ReadableStringCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.ReadableStringCollection.Item(System.String)">
+            <summary>
+            Get the associated value from the collection.  Multiple values will be merged.
+            Returns null if the key is not present.
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.IFormCollection">
+            <summary>
+            Contains the parsed form values.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.FormCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.FormCollection" /> class.
+            </summary>
+            <param name="store">The store for the form.</param>
+        </member>
+        <member name="T:Microsoft.Owin.HeaderDictionary">
+            <summary>
+            Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IHeaderDictionary">
+            <summary>
+            Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.GetCommaSeparatedValues(System.String)">
+            <summary>
+            Get the associated values from the collection separated into individual values.
+            Quoted values will not be split, and the quotes will be removed.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated values from the collection separated into individual values, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.Append(System.String,System.String)">
+            <summary>
+            Add a new value. Appends to the header if already present
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.AppendValues(System.String,System.String[])">
+            <summary>
+            Add new values. Each item remains a separate array entry.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values with any existing values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.Set(System.String,System.String)">
+            <summary>
+            Sets a specific header value.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.SetValues(System.String,System.String[])">
+            <summary>
+            Sets the specified header values without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IHeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="P:Microsoft.Owin.IHeaderDictionary.Item(System.String)">
+            <summary>
+            Get or sets the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.HeaderDictionary" /> class.
+            </summary>
+            <param name="store">The underlying data store.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through a collection.
+            </summary>
+            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through a collection.
+            </summary>
+            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Get(System.String)">
+            <summary>
+            Get the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetValues(System.String)">
+            <summary>
+            Get the associated values from the collection without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection without modification, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.GetCommaSeparatedValues(System.String)">
+            <summary>
+            Get the associated values from the collection separated into individual values.
+            Quoted values will not be split, and the quotes will be removed.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated values from the collection separated into individual values, or null if the key is not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Append(System.String,System.String)">
+            <summary>
+            Add a new value. Appends to the header if already present
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.AppendValues(System.String,System.String[])">
+            <summary>
+            Add new values. Each item remains a separate array entry.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values with any existing values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Set(System.String,System.String)">
+            <summary>
+            Sets a specific header value.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header value.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.SetValues(System.String,System.String[])">
+            <summary>
+            Sets the specified header values without modification.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+            <summary>
+            Quotes any values containing comas, and then coma joins all of the values.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="values">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.String,System.String[])">
+            <summary>
+            Adds the given header and values to the collection.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The header values.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.ContainsKey(System.String)">
+            <summary>
+            Determines whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key.
+            </summary>
+            <param name="key">The key.</param>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.String)">
+            <summary>
+            Removes the given header from the collection.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>true if the specified object was removed from the collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.TryGetValue(System.String,System.String[]@)">
+            <summary>
+            Retrieves a value from the dictionary.
+            </summary>
+            <param name="key">The header name.</param>
+            <param name="value">The value.</param>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains the key; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Adds a new list of items to the collection.
+            </summary>
+            <param name="item">The item to add.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Clear">
+            <summary>
+            Clears the entire list of objects.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Returns a value indicating whether the specified object occurs within this collection.
+            </summary>
+            <param name="item">The item.</param>
+            <returns>true if the specified object occurs within this collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String[]}[],System.Int32)">
+            <summary>
+            Copies the <see cref="T:Microsoft.Owin.HeaderDictionary" /> elements to a one-dimensional Array instance at the specified index.
+            </summary>
+            <param name="array">The one-dimensional Array that is the destination of the specified objects copied from the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</param>
+            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
+        </member>
+        <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+            <summary>
+            Removes the given item from the the collection.
+            </summary>
+            <param name="item">The item.</param>
+            <returns>true if the specified object was removed from the collection; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Keys">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />;.
+            </summary>
+            <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Values">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Count">
+            <summary>
+            Gets the number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />;.
+            </summary>
+            <returns>The number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.IsReadOnly">
+            <summary>
+            Gets a value that indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode.
+            </summary>
+            <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.Item(System.String)">
+            <summary>
+            Get or sets the associated value from the collection as a single string.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns>the associated value from the collection as a single string or null if the key is not present.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.HeaderDictionary.System#Collections#Generic#IDictionary{System#String@System#String[]}#Item(System.String)">
+            <summary>
+            Throws KeyNotFoundException if the key is not present.
+            </summary>
+            <param name="key">The header name.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.HostString">
+            <summary>
+            Represents the host portion of a Uri can be used to construct Uri's properly formatted and encoded for use in
+            HTTP headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.#ctor(System.String)">
+            <summary>
+            Creates a new HostString without modification. The value should be Unicode rather than punycode, and may have a port.
+            IPv4 and IPv6 addresses are also allowed, and also may have ports.
+            </summary>
+            <param name="value"></param>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.ToString">
+            <summary>
+            Returns the value as normalized by ToUriComponent().
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.ToUriComponent">
+            <summary>
+            Returns the value properly formatted and encoded for use in a URI in a HTTP header.
+            Any Unicode is converted to punycode. IPv6 addresses will have brackets added if they are missing.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.String)">
+            <summary>
+            Creates a new HostString from the given uri component.
+            Any punycode will be converted to Unicode.
+            </summary>
+            <param name="uriComponent"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.Uri)">
+            <summary>
+            Creates a new HostString from the host and port of the give Uri instance.
+            Punycode will be converted to Unicode.
+            </summary>
+            <param name="uri"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.Equals(Microsoft.Owin.HostString)">
+            <summary>
+            Compares the equality of the Value property, ignoring case.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.Equals(System.Object)">
+            <summary>
+            Compares against the given object only if it is a HostString.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.GetHashCode">
+            <summary>
+            Gets a hash code for the value.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.op_Equality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+            <summary>
+            Compares the two instances for equality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.HostString.op_Inequality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+            <summary>
+            Compares the two instances for inequality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.HostString.Value">
+            <summary>
+            Returns the original value from the constructor.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.CookieManager">
+            <summary>
+            An implementation of ICookieManager that writes directly to IOwinContext.Response.Cookies.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ICookieManager">
+            <summary>
+            An abstraction for reading request cookies and writing response cookies.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Read a cookie with the given name from the request.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Append a cookie to the response.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ICookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Append a delete cookie to the response.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Read a cookie with the given name from the request.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.CookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by appending an expired cookie.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ChunkingCookieManager">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.#ctor">
+            <summary>
+            Creates a new instance of ChunkingCookieManager.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Get the reassembled cookie. Non chunked cookies are returned normally.
+            Cookies with missing chunks just have their "chunks:XX" header returned.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns>The reassembled cookie, if any, or null.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
+            then it will be broken down into multiple cookies as follows:
+            Set-Cookie: CookieName=chunks:3; path=/
+            Set-Cookie: CookieNameC1=Segment1; path=/
+            Set-Cookie: CookieNameC2=Segment2; path=/
+            Set-Cookie: CookieNameC3=Segment3; path=/
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.ChunkingCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
+            the request, delete each chunk.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ChunkingCookieManager.ChunkSize">
+             <summary>
+             The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
+             cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all
+             common browsers.
+            
+             Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
+             </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ChunkingCookieManager.ThrowForPartialCookies">
+            <summary>
+            Throw if not all chunks of a cookie are available on a request for re-assembly.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinContext">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinContext.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinContext.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Request">
+            <summary>
+            Gets a wrapper exposing request specific properties.
+            </summary>
+            <returns>A wrapper exposing request specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Response">
+            <summary>
+            Gets a wrapper exposing response specific properties.
+            </summary>
+            <returns>A wrapper exposing response specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Authentication">
+            <summary>
+            Gets the Authentication middleware functionality available on the current request.
+            </summary>
+            <returns>The authentication middleware functionality available on the current request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinContext.TraceOutput">
+            <summary>
+            Gets or sets the host.TraceOutput environment value.
+            </summary>
+            <returns>The host.TraceOutput TextWriter.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinRequest">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.ReadFormAsync">
+            <summary>
+            Asynchronously reads and parses the request body as a form.
+            </summary>
+            <returns>The parsed form data.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinRequest.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Method">
+            <summary>
+            Gets or set the HTTP method.
+            </summary>
+            <returns>The HTTP method.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Scheme">
+            <summary>
+            Gets or set the HTTP request scheme from owin.RequestScheme.
+            </summary>
+            <returns>The HTTP request scheme from owin.RequestScheme.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.IsSecure">
+            <summary>
+            Returns true if the owin.RequestScheme is https.
+            </summary>
+            <returns>true if this request is using https; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Host">
+            <summary>
+            Gets or set the Host header. May include the port.
+            </summary>
+            <return>The Host header.</return>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.PathBase">
+            <summary>
+            Gets or set the owin.RequestPathBase.
+            </summary>
+            <returns>The owin.RequestPathBase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Path">
+            <summary>
+            Gets or set the request path from owin.RequestPath.
+            </summary>
+            <returns>The request path from owin.RequestPath.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.QueryString">
+            <summary>
+            Gets or set the query string from owin.RequestQueryString.
+            </summary>
+            <returns>The query string from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Query">
+            <summary>
+            Gets the query value collection parsed from owin.RequestQueryString.
+            </summary>
+            <returns>The query value collection parsed from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Uri">
+            <summary>
+            Gets the uniform resource identifier (URI) associated with the request.
+            </summary>
+            <returns>The uniform resource identifier (URI) associated with the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Protocol">
+            <summary>
+            Gets or set the owin.RequestProtocol.
+            </summary>
+            <returns>The owin.RequestProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Headers">
+            <summary>
+            Gets the request headers.
+            </summary>
+            <returns>The request headers.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Cookies">
+            <summary>
+            Gets the collection of Cookies for this request.
+            </summary>
+            <returns>The collection of Cookies for this request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.CacheControl">
+            <summary>
+            Gets or sets the Cache-Control header.
+            </summary>
+            <returns>The Cache-Control header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.MediaType">
+            <summary>
+            Gets or sets the Media-Type header.
+            </summary>
+            <returns>The Media-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Accept">
+            <summary>
+            Gets or set the Accept header.
+            </summary>
+            <returns>The Accept header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.Body">
+            <summary>
+            Gets or set the owin.RequestBody Stream.
+            </summary>
+            <returns>The owin.RequestBody Stream.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.CallCancelled">
+            <summary>
+            Gets or sets the cancellation token for the request.
+            </summary>
+            <returns>The cancellation token for the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.LocalIpAddress">
+            <summary>
+            Gets or set the server.LocalIpAddress.
+            </summary>
+            <returns>The server.LocalIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.LocalPort">
+            <summary>
+            Gets or set the server.LocalPort.
+            </summary>
+            <returns>The server.LocalPort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.RemoteIpAddress">
+            <summary>
+            Gets or set the server.RemoteIpAddress.
+            </summary>
+            <returns>The server.RemoteIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.RemotePort">
+            <summary>
+            Gets or set the server.RemotePort.
+            </summary>
+            <returns>The server.RemotePort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinRequest.User">
+            <summary>
+            Gets or set the server.User.
+            </summary>
+            <returns>The server.User.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.IOwinResponse">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+            <summary>
+            Registers for an event that fires when the response headers are sent.
+            </summary>
+            <param name="callback">The callback method.</param>
+            <param name="state">The callback state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Redirect(System.String)">
+            <summary>
+            Sets a 302 response status code and the Location header.
+            </summary>
+            <param name="location">The location where to redirect the client.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.String)">
+            <summary>
+            Writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[])">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[])">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.IOwinResponse.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.StatusCode">
+            <summary>
+            Gets or sets the optional owin.ResponseStatusCode.
+            </summary>
+            <returns>The optional owin.ResponseStatusCode, or 200 if not set.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ReasonPhrase">
+            <summary>
+            Gets or sets the the optional owin.ResponseReasonPhrase.
+            </summary>
+            <returns>The the optional owin.ResponseReasonPhrase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Protocol">
+            <summary>
+            Gets or sets the owin.ResponseProtocol.
+            </summary>
+            <returns>The owin.ResponseProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Headers">
+            <summary>
+            Gets the response header collection.
+            </summary>
+            <returns>The response header collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Cookies">
+            <summary>
+            Gets a collection used to manipulate the Set-Cookie header.
+            </summary>
+            <returns>A collection used to manipulate the Set-Cookie header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ContentLength">
+            <summary>
+            Gets or sets the Content-Length header.
+            </summary>
+            <returns>The Content-Length header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Expires">
+            <summary>
+            Gets or sets the Expires header.
+            </summary>
+            <returns>The Expires header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.ETag">
+            <summary>
+            Gets or sets the E-Tag header.
+            </summary>
+            <returns>The E-Tag header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.IOwinResponse.Body">
+            <summary>
+            Gets or sets the owin.ResponseBody Stream.
+            </summary>
+            <returns>The owin.ResponseBody Stream.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.OwinStartupAttribute">
+            <summary>
+            Used to mark which class in an assembly should be used for automatic startup.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="startupType">The startup class</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="friendlyName">A non-default configuration, e.g. staging.</param>
+            <param name="startupType">The startup class</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="startupType">The startup class</param>
+            <param name="methodName">Specifies which method to call</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute"/> class
+            </summary>
+            <param name="friendlyName">A non-default configuration, e.g. staging.</param>
+            <param name="startupType">The startup class</param>
+            <param name="methodName">Specifies which method to call</param>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.FriendlyName">
+            <summary>
+            A non-default configuration if any. e.g. Staging.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.StartupType">
+            <summary>
+            The startup class
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.OwinStartupAttribute.MethodName">
+            <summary>
+            The name of the configuration method
+            </summary>
+        </member>
+        <member name="T:Owin.PipelineStage">
+            <summary>
+            An ordered list of known Asp.Net integrated pipeline stages. More details on the ASP.NET integrated pipeline can be found at http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.Authenticate">
+            <summary>
+            Corresponds to the AuthenticateRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAuthenticate">
+            <summary>
+            Corresponds to the PostAuthenticateRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.Authorize">
+            <summary>
+            Corresponds to the AuthorizeRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAuthorize">
+            <summary>
+            Corresponds to the PostAuthorizeRequest stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.ResolveCache">
+            <summary>
+            Corresponds to the ResolveRequestCache stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostResolveCache">
+            <summary>
+            Corresponds to the PostResolveRequestCache stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.MapHandler">
+            <summary>
+            Corresponds to the MapRequestHandler stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostMapHandler">
+            <summary>
+            Corresponds to the PostMapRequestHandler stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.AcquireState">
+            <summary>
+            Corresponds to the AcquireRequestState stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PostAcquireState">
+            <summary>
+            Corresponds to the PostAcquireRequestState stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="F:Owin.PipelineStage.PreHandlerExecute">
+            <summary>
+            Corresponds to the PreRequestHandlerExecute stage of the ASP.NET integrated pipeline.
+            </summary>
+        </member>
+        <member name="T:Owin.MapExtensions">
+            <summary>
+            Extension methods for the MapMiddleware
+            </summary>
+        </member>
+        <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of
+            continuing to the next component in the pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="pathMatch">The path to match</param>
+            <param name="configuration">The branch to take for positive path matches</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,Microsoft.Owin.PathString,System.Action{Owin.IAppBuilder})">
+            <summary>
+            If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of
+            continuing to the next component in the pipeline.
+            </summary>
+            <param name="app"></param>
+            <param name="pathMatch">The path to match</param>
+            <param name="configuration">The branch to take for positive path matches</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapMiddleware">
+            <summary>
+            Used to create path based branches in your application pipeline.
+            The owin.RequestPathBase is not included in the evaluation, only owin.RequestPath.
+            Matching paths have the matching piece removed from owin.RequestPath and added to the owin.RequestPathBase.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},Microsoft.Owin.Mapping.MapOptions)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Mapping.MapMiddleware"/> class
+            </summary>
+            <param name="next">The normal pipeline taken for a negative match</param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapOptions">
+            <summary>
+            Options for the Map middleware
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapOptions.PathMatch">
+            <summary>
+            The path to match
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapOptions.Branch">
+            <summary>
+            The branch taken for a positive match
+            </summary>
+        </member>
+        <member name="T:Owin.MapWhenExtensions">
+            <summary>
+            Extension methods for the MapWhenMiddleware
+            </summary>
+        </member>
+        <member name="M:Owin.MapWhenExtensions.MapWhen(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Boolean},System.Action{Owin.IAppBuilder})">
+            <summary>
+            Branches the request pipeline based on the result of the given predicate.
+            </summary>
+            <param name="app"></param>
+            <param name="predicate">Invoked with the request environment to determine if the branch should be taken</param>
+            <param name="configuration">Configures a branch to take</param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.MapWhenExtensions.MapWhenAsync(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task{System.Boolean}},System.Action{Owin.IAppBuilder})">
+            <summary>
+            Branches the request pipeline based on the async result of the given predicate.
+            </summary>
+            <param name="app"></param>
+            <param name="predicate">Invoked asynchronously with the request environment to determine if the branch should be taken</param>
+            <param name="configuration">Configures a branch to take</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapWhenMiddleware">
+            <summary>
+            Determines if the request should take a specific branch of the pipeline by passing the environment
+            to a user defined callback.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task},Microsoft.Owin.Mapping.MapWhenOptions)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Mapping.MapWhenMiddleware"/> class
+            </summary>
+            <param name="next">The normal application pipeline</param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="environment"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Mapping.MapWhenOptions">
+            <summary>
+            Options for the MapWhen middleware
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Predicate">
+            <summary>
+            The user callback that determines if the branch should be taken
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.PredicateAsync">
+            <summary>
+            The async user callback that determines if the branch should be taken
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Branch">
+            <summary>
+            The branch taken for a positive match
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.OwinContext">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Create a new wrapper.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinContext.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Request">
+            <summary>
+            Gets a wrapper exposing request specific properties.
+            </summary>
+            <returns>A wrapper exposing request specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Response">
+            <summary>
+            Gets a wrapper exposing response specific properties.
+            </summary>
+            <returns>A wrapper exposing response specific properties.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Authentication">
+            <summary>
+            Gets the Authentication middleware functionality available on the current request.
+            </summary>
+            <returns>The authentication middleware functionality available on the current request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinContext.TraceOutput">
+            <summary>
+            Gets or sets the host.TraceOutput environment value.
+            </summary>
+            <returns>The host.TraceOutput TextWriter.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.PathString">
+            <summary>
+            Provides correct escaping for Path and PathBase values when needed to reconstruct a request or redirect URI string
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.PathString.Empty">
+            <summary>
+            Represents the empty path. This field is read-only.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.#ctor(System.String)">
+            <summary>
+            Initialize the path string with a given value. This value must be in un-escaped format. Use
+            PathString.FromUriComponent(value) if you have a path value which is in an escaped format.
+            </summary>
+            <param name="value">The unescaped path to be assigned to the Value property.</param>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.ToString">
+            <summary>
+            Provides the path string escaped in a way which is correct for combining into the URI representation. 
+            </summary>
+            <returns>The escaped path value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.ToUriComponent">
+            <summary>
+            Provides the path string escaped in a way which is correct for combining into the URI representation.
+            </summary>
+            <returns>The escaped path value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.String)">
+            <summary>
+            Returns an PathString given the path as it is escaped in the URI format. The string MUST NOT contain any
+            value that is not a path.
+            </summary>
+            <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+            <returns>The resulting PathString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.Uri)">
+            <summary>
+            Returns an PathString given the path as from a Uri object. Relative Uri objects are not supported.
+            </summary>
+            <param name="uri">The Uri object</param>
+            <returns>The resulting PathString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString)">
+            <summary>
+            Checks if this instance starts with or exactly matches the other instance. Only full segments are matched.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString,Microsoft.Owin.PathString@)">
+            <summary>
+            Checks if this instance starts with or exactly matches the other instance. Only full segments are matched.
+            </summary>
+            <param name="other"></param>
+            <param name="remaining">Any remaining segments from this instance not included in the other instance.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.PathString)">
+            <summary>
+            Adds two PathString instances into a combined PathString value. 
+            </summary>
+            <returns>The combined PathString value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.QueryString)">
+            <summary>
+            Combines a PathString and QueryString into the joined URI formatted string value. 
+            </summary>
+            <returns>The joined URI formatted string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString)">
+            <summary>
+            Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.
+            </summary>
+            <param name="other">The second PathString for comparison.</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString,System.StringComparison)">
+            <summary>
+            Compares this PathString value to another value using a specific StringComparison type
+            </summary>
+            <param name="other">The second PathString for comparison</param>
+            <param name="comparisonType">The StringComparison type to use</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.Equals(System.Object)">
+            <summary>
+            Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.
+            </summary>
+            <param name="obj">The second PathString for comparison.</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.GetHashCode">
+            <summary>
+            Returns the hash code for the PathString value. The hash code is provided by the OrdinalIgnoreCase implementation.
+            </summary>
+            <returns>The hash code</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Equality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Equals
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>True if both PathString values are equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Inequality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Equals
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>True if both PathString values are not equal</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+            <summary>
+            Operator call through to Add
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>The PathString combination of both values</returns>
+        </member>
+        <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.QueryString)">
+            <summary>
+            Operator call through to Add
+            </summary>
+            <param name="left">The left parameter</param>
+            <param name="right">The right parameter</param>
+            <returns>The PathString combination of both values</returns>
+        </member>
+        <member name="P:Microsoft.Owin.PathString.Value">
+            <summary>
+            The unescaped path value
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.PathString.HasValue">
+            <summary>
+            True if the path is not empty
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.QueryString">
+            <summary>
+            Provides correct handling for QueryString value when needed to reconstruct a request or redirect URI string
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.QueryString.Empty">
+            <summary>
+            Represents the empty query string. This field is read-only.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.#ctor(System.String)">
+            <summary>
+            Initialize the query string with a given value. This value must be in escaped and delimited format without
+            a leading '?' character. 
+            </summary>
+            <param name="value">The query string to be assigned to the Value property.</param>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.#ctor(System.String,System.String)">
+            <summary>
+            Initialize a query string with a single given parameter name and value. The value is 
+            </summary>
+            <param name="name">The unencoded parameter name</param>
+            <param name="value">The unencoded parameter value</param>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.ToString">
+            <summary>
+            Provides the query string escaped in a way which is correct for combining into the URI representation. 
+            A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially
+            dangerous are escaped.
+            </summary>
+            <returns>The query string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.ToUriComponent">
+            <summary>
+            Provides the query string escaped in a way which is correct for combining into the URI representation. 
+            A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially
+            dangerous are escaped.
+            </summary>
+            <returns>The query string value</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.String)">
+            <summary>
+            Returns an QueryString given the query as it is escaped in the URI format. The string MUST NOT contain any
+            value that is not a query.
+            </summary>
+            <param name="uriComponent">The escaped query as it appears in the URI format.</param>
+            <returns>The resulting QueryString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.Uri)">
+            <summary>
+            Returns an QueryString given the query as from a Uri object. Relative Uri objects are not supported.
+            </summary>
+            <param name="uri">The Uri object</param>
+            <returns>The resulting QueryString</returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.Equals(Microsoft.Owin.QueryString)">
+            <summary>
+            Indicates whether the current instance is equal to the other instance.
+            </summary>
+            <param name="other"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.Equals(System.Object)">
+            <summary>
+            Indicates whether the current instance is equal to the other instance.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.op_Equality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+            <summary>
+            Compares the two instances for equality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.QueryString.op_Inequality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+            <summary>
+            Compares the two instances for inequality.
+            </summary>
+            <param name="left"></param>
+            <param name="right"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.QueryString.Value">
+            <summary>
+            The escaped query string without the leading '?' character
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.QueryString.HasValue">
+            <summary>
+            True if the query string is not empty
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.RequestCookieCollection">
+            <summary>
+            A wrapper for the request Cookie header
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="store"></param>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.RequestCookieCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.RequestCookieCollection.Item(System.String)">
+            <summary>
+            Returns null rather than throwing KeyNotFoundException
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_ConversionTakesOneParameter">
+            <summary>
+              Looks up a localized string similar to Conversion delegate must take one parameter..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_CookieLimitTooSmall">
+            <summary>
+              Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_ImcompleteChunkedCookie">
+            <summary>
+              Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_MiddlewareNotSupported">
+            <summary>
+              Looks up a localized string similar to The type &apos;{0}&apos; does not match any known middleware pattern..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_MissingOnSendingHeaders">
+            <summary>
+              Looks up a localized string similar to The OWIN key &apos;server.OnSendingHeaders&apos; is not available for this request..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_NoConstructorFound">
+            <summary>
+              Looks up a localized string similar to The class &apos;{0}&apos; does not have a constructor taking {1} arguments..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_NoConversionExists">
+            <summary>
+              Looks up a localized string similar to No conversion available between {0} and {1}..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathMustNotEndWithSlash">
+            <summary>
+              Looks up a localized string similar to The path must not end with a &apos;/&apos;.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathMustStartWithSlash">
+            <summary>
+              Looks up a localized string similar to The path must start with a &apos;/&apos; followed by one or more characters..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_PathRequired">
+            <summary>
+              Looks up a localized string similar to The path is required.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Resources.Exception_QueryStringMustStartWithDelimiter">
+            <summary>
+              Looks up a localized string similar to The query string must start with a &apos;?&apos; unless null or empty..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.AppBuilder">
+            <summary>
+            A standard implementation of IAppBuilder 
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor">
+            <summary>
+            Initializes a new instance of the the type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor(System.Collections.Generic.IDictionary{System.Tuple{System.Type,System.Type},System.Delegate},System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            
+            </summary>
+            <param name="conversions"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.Use(System.Object,System.Object[])">
+            <summary>
+            Adds a middleware node to the OWIN function pipeline. The middleware are
+            invoked in the order they are added: the first middleware passed to Use will
+            be the outermost function, and the last middleware passed to Use will be the
+            innermost.
+            </summary>
+            <param name="middleware">
+            The middleware parameter determines which behavior is being chained into the
+            pipeline. 
+            
+            If the middleware given to Use is a Delegate, then it will be invoked with the "next app" in 
+            the chain as the first parameter. If the delegate takes more than the single argument, 
+            then the additional values must be provided to Use in the args array.
+            
+            If the middleware given to Use is a Type, then the public constructor will be 
+            invoked with the "next app" in the chain as the first parameter. The resulting object
+            must have a public Invoke method. If the object has constructors which take more than
+            the single "next app" argument, then additional values may be provided in the args array.
+            </param>
+            <param name="args">
+            Any additional args passed to Use will be passed as additional values, following the "next app"
+            parameter, when the OWIN call pipeline is build.
+            
+            They are passed as additional parameters if the middleware parameter is a Delegate, or as additional
+            constructor arguments if the middle parameter is a Type.
+            </param>
+            <returns>
+            The IAppBuilder itself is returned. This enables you to chain your use statements together.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.New">
+            <summary>
+            The New method creates a new instance of an IAppBuilder. This is needed to create
+            a tree structure in your processing, rather than a linear pipeline. The new instance share the
+            same Properties, but will be created with a new, empty middleware list.
+            
+            To create a tangent pipeline you would first call New, followed by several calls to Use on 
+            the new builder, ending with a call to Build on the new builder. The return value from Build
+            will be the entry-point to your tangent pipeline. This entry-point may now be added to the
+            main pipeline as an argument to a switching middleware, which will either call the tangent
+            pipeline or the "next app", based on something in the request.
+            
+            That said - all of that work is typically hidden by a middleware like Map, which will do that
+            for you.
+            </summary>
+            <returns>The new instance of the IAppBuilder implementation</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilder.Build(System.Type)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. This is typically done by the hosting component which created the app builder,
+            and does not need to be called by the startup method if the IAppBuilder is passed in.
+            </summary>
+            <param name="returnType">
+            The Type argument indicates which calling convention should be returned, and
+            is typically typeof(<typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/>) for the OWIN
+            calling convention.
+            </param>
+            <returns>
+            Returns an instance of the pipeline's entry point. This object may be safely cast to the
+            type which was provided
+            </returns>
+        </member>
+        <member name="P:Microsoft.Owin.Builder.AppBuilder.Properties">
+            <summary>
+            Contains arbitrary properties which may added, examined, and modified by
+            components during the startup sequence. 
+            </summary>
+            <returns>Returns <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.NotFound">
+            <summary>
+            Simple object used by AppBuilder as seed OWIN callable if the
+            builder.Properties["builder.DefaultApp"] is not set
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.ISystemClock">
+            <summary>
+            Abstracts the system clock to facilitate testing.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.ISystemClock.UtcNow">
+            <summary>
+            Retrieves the current system time in UTC.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.SystemClock">
+            <summary>
+            Provides access to the normal system clock.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Infrastructure.SystemClock.UtcNow">
+            <summary>
+            Retrieves the current system time in UTC.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.WebUtilities">
+            <summary>
+            Response generation utilities.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String)">
+            <summary>
+            Append the given query to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="queryString">The query string to append, if any.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String,System.String)">
+            <summary>
+            Append the given query key and value to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="name">The name of the query key.</param>
+            <param name="value">The query value.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Append the given query keys and values to the uri.
+            </summary>
+            <param name="uri">The base uri.</param>
+            <param name="queryString">A collection of name value query pairs to append.</param>
+            <returns>The combine result.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.ResponseCookieCollection">
+            <summary>
+            A wrapper for the response Set-Cookie header
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.#ctor(Microsoft.Owin.IHeaderDictionary)">
+            <summary>
+            Create a new wrapper
+            </summary>
+            <param name="headers"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String)">
+            <summary>
+            Add a new cookie and value
+            </summary>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Add a new cookie
+            </summary>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String)">
+            <summary>
+            Sets an expired cookie
+            </summary>
+            <param name="key"></param>
+        </member>
+        <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Sets an expired cookie
+            </summary>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticateResult">
+            <summary>
+            Acts as the return value from calls to the IAuthenticationManager's AuthenticeAsync methods.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticateResult.#ctor(System.Security.Principal.IIdentity,Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Security.AuthenticationDescription)">
+            <summary>
+            Create an instance of the result object
+            </summary>
+            <param name="identity">Assigned to Identity. May be null.</param>
+            <param name="properties">Assigned to Properties. Contains extra information carried along with the identity.</param>
+            <param name="description">Assigned to Description. Contains information describing the authentication provider.</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Identity">
+            <summary>
+            Contains the claims that were authenticated by the given AuthenticationType. If the authentication
+            type was not successful the Identity property will be null.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Properties">
+            <summary>
+            Contains extra values that were provided with the original SignIn call.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticateResult.Description">
+            <summary>
+            Contains description properties for the middleware authentication type in general. Does not
+            vary per request.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationDescription">
+            <summary>
+            Contains information describing an authentication provider.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationDescription"/> class
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationDescription"/> class
+            </summary>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Properties">
+            <summary>
+            Contains metadata about the authentication provider.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.AuthenticationType">
+            <summary>
+            Gets or sets the name used to reference the authentication middleware instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Caption">
+            <summary>
+            Gets or sets the display name for the authentication provider.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions">
+            <summary>
+            Extension methods used to indicate at which stage in the integrated pipeline prior middleware should run.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,System.String)">
+            <summary>
+            Call after other middleware to specify when they should run in the integrated pipeline.
+            </summary>
+            <param name="app">The IAppBuilder.</param>
+            <param name="stageName">The name of the integrated pipeline in which to run.</param>
+            <returns>The original IAppBuilder for chaining.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,Owin.PipelineStage)">
+            <summary>
+            Call after other middleware to specify when they should run in the integrated pipeline.
+            </summary>
+            <param name="app">The IAppBuilder.</param>
+            <param name="stage">The stage of the integrated pipeline in which to run.</param>
+            <returns>The original IAppBuilder for chaining.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.AppBuilderLoggerExtensions">
+            <summary>
+            Logging extension methods for IAppBuilder.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.SetLoggerFactory(Owin.IAppBuilder,Microsoft.Owin.Logging.ILoggerFactory)">
+            <summary>
+            Sets the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="loggerFactory"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.GetLoggerFactory(Owin.IAppBuilder)">
+            <summary>
+            Retrieves the server.LoggerFactory from the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.String)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.Type)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <param name="app"></param>
+            <param name="component"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger``1(Owin.IAppBuilder)">
+            <summary>
+            Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.
+            </summary>
+            <typeparam name="TType"></typeparam>
+            <param name="app"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.ILoggerFactory">
+            <summary>
+            Used to create logger instances of the given name.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.ILoggerFactory.Create(System.String)">
+            <summary>
+            Creates a new ILogger instance of the given name.
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.ILogger">
+            <summary>
+            A generic interface for logging.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.ILogger.WriteCore(System.Diagnostics.TraceEventType,System.Int32,System.Object,System.Exception,System.Func{System.Object,System.Exception,System.String})">
+            <summary>
+            Aggregates most logging patterns to a single method.  This must be compatible with the Func representation in the OWIN environment.
+            
+            To check IsEnabled call WriteCore with only TraceEventType and check the return value, no event will be written.
+            </summary>
+            <param name="eventType"></param>
+            <param name="eventId"></param>
+            <param name="state"></param>
+            <param name="exception"></param>
+            <param name="formatter"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.Address">
+            <summary>
+            Contains the parts of an address.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.String,System.String,System.String,System.String)">
+            <summary>
+            Initializes a new <see cref="T:Microsoft.Owin.BuilderProperties.Address"/> with the given parts.
+            </summary>
+            <param name="scheme">The scheme.</param>
+            <param name="host">The host.</param>
+            <param name="port">The port.</param>
+            <param name="path">The path.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Create">
+            <summary>
+            Creates a new <see cref="T:Microsoft.Owin.BuilderProperties.Address"/>
+            </summary>
+            <returns>A new <see cref="T:Microsoft.Owin.BuilderProperties.Address" /></returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether the specified object is equal to the current object.
+            </summary>
+            <param name="other">The other object.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(System.Object)">
+            <summary>
+            Determines whether the specified object is equal to the current object.
+            </summary>
+            <param name="obj">The other object.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Equality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if left and right represent the same address; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Inequality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are not equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if left and right do not represent the same address; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Get``1(System.String)">
+            <summary>
+            Gets a specified key and value from the underlying dictionary.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Address.Set(System.String,System.Object)">
+            <summary>
+            Sets a specified key and value in the underlying dictionary.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Dictionary">
+            <summary>
+            Gets the internal dictionary for this collection.
+            </summary>
+            <returns>The internal dictionary for this collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Scheme">
+            <summary>
+            The uri scheme.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Host">
+            <summary>
+            The uri host.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Port">
+            <summary>
+            The uri port.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Address.Path">
+            <summary>
+            The uri path.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.AddressCollection">
+            <summary>
+            Wraps the host.Addresses list.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.#ctor(System.Collections.Generic.IList{System.Collections.Generic.IDictionary{System.String,System.Object}})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> class.
+            </summary>
+            <param name="list">The address list to set to the collection.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Add(Microsoft.Owin.BuilderProperties.Address)">
+            <summary>
+            Adds the specified address to the collection.
+            </summary>
+            <param name="address">The address to add to the collection.</param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Gets the enumerator that iterates through the collection.
+            </summary>
+            <returns>The enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetEnumerator">
+            <summary>
+            Gets the enumerator that iterates through the collection.
+            </summary>
+            <returns>The enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Create">
+            <summary>
+            Creates a new empty instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" />.
+            </summary>
+            <returns>A new empty instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" />.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the current collection is equal to the specified collection.
+            </summary>
+            <param name="other">The other collection to compare to the current collection.</param>
+            <returns>true if current collection is equal to the specified collection; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(System.Object)">
+            <summary>
+            Determines whether the current collection is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare to the current collection.</param>
+            <returns>true if current collection is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetHashCode">
+            <summary>
+            Gets the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Equality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the first collection is equal to the second collection.
+            </summary>
+            <param name="left">The first collection to compare.</param>
+            <param name="right">The second collection to compare.</param>
+            <returns>true if both collections are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Inequality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+            <summary>
+            Determines whether the first collection is not equal to the second collection.
+            </summary>
+            <param name="left">The first collection to compare.</param>
+            <param name="right">The second collection to compare.</param>
+            <returns>true if both collections are not equal; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.List">
+            <summary>
+            Gets the underlying address list.
+            </summary>
+            <returns>The underlying address list.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Count">
+            <summary>
+            Gets the number of elements in the collection.
+            </summary>
+            <returns>The number of elements in the collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Item(System.Int32)">
+            <summary>
+            Gets the item with the specified index from the collection.
+            </summary>
+            <param name="index">The index.</param>
+            <returns>The item with the specified index.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.AppProperties">
+            <summary>
+            A wrapper for the <see cref="P:Microsoft.Owin.Builder.AppBuilder.Properties" /> IDictionary.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> class.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the current AppProperties is equal to the specified AppProperties.
+            </summary>
+            <param name="other">The other AppProperties to compare with the current instance.</param>
+            <returns>true if the current AppProperties is equal to the specified AppProperties; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(System.Object)">
+            <summary>
+            Determines whether the current AppProperties is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare with the current instance.</param>
+            <returns>true if the current AppProperties is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Equality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the first AppPProperties is equal to the second AppProperties.
+            </summary>
+            <param name="left">The first AppPropeties to compare.</param>
+            <param name="right">The second AppPropeties to compare.</param>
+            <returns>true if both AppProperties are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Inequality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+            <summary>
+            Determines whether the first AppPProperties is not equal to the second AppProperties.
+            </summary>
+            <param name="left">The first AppPropeties to compare.</param>
+            <param name="right">The second AppPropeties to compare.</param>
+            <returns>true if both AppProperties are not equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Get``1(System.String)">
+            <summary>
+            Gets the value from the dictionary with the specified key.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Set(System.String,System.Object)">
+            <summary>
+            Sets the value with the specified key.
+            </summary>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OwinVersion">
+            <summary>
+            Gets or sets the string value for 鈥渙win.Version鈥�.
+            </summary>
+            <returns>The string value for 鈥渙win.Version鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.DefaultApp">
+            <summary>
+            Gets or sets the function delegate for 鈥渂uilder.DefaultApp鈥�.
+            </summary>
+            <returns>The function delegate for 鈥渂uilder.DefaultApp鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AddSignatureConversionDelegate">
+            <summary>
+            Gets or sets the action delegate for 鈥渂uilder.AddSignatureConversion鈥�.
+            </summary>
+            <returns>The action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AppName">
+            <summary>
+            Gets or sets the string value for 鈥渉ost.AppName鈥�.
+            </summary>
+            <returns>The string value for 鈥渉ost.AppName鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.TraceOutput">
+            <summary>
+            Gets or sets the text writer for 鈥渉ost.TraceOutput鈥�.
+            </summary>
+            <returns>The text writer for 鈥渉ost.TraceOutput鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OnAppDisposing">
+            <summary>
+            Gets or sets the cancellation token for 鈥渉ost.OnAppDisposing鈥�.
+            </summary>
+            <returns>The cancellation token for 鈥渉ost.OnAppDisposing鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Addresses">
+            <summary>
+            Gets or sets the address collection for 鈥渉ost.Addresses鈥�.
+            </summary>
+            <returns>The address collection for 鈥渉ost.Addresses鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Capabilities">
+            <summary>
+            Gets or sets the list of 鈥渟erver.Capabilities鈥�.
+            </summary>
+            <returns>The list of 鈥渟erver.Capabilities鈥�.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Dictionary">
+            <summary>
+            Gets the underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.
+            </summary>
+            <returns>The underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.BuilderProperties.Capabilities">
+            <summary>
+            Represents the capabilities for the builder properties.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Create">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.
+            </summary>
+            <returns>A new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether the current Capabilities instance is equal to the specified Capabilities.
+            </summary>
+            <param name="other">The other Capabilities to compare with the current instance.</param>
+            <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(System.Object)">
+            <summary>
+            Determines whether the current Capabilities is equal to the specified object.
+            </summary>
+            <param name="obj">The object to compare with the current instance.</param>
+            <returns>true if the current Capabilities is equal to the specified object; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Equality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Inequality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+            <summary>
+            Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are not equal.
+            </summary>
+            <param name="left">The first object to compare.</param>
+            <param name="right">The second object to compare.</param>
+            <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are not equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Get``1(System.String)">
+            <summary>
+            Gets the value from the dictionary with the specified key.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Set(System.String,System.Object)">
+            <summary>
+            Sets the given key and value in the underlying dictionary.
+            </summary>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.Dictionary">
+            <summary>
+            The underling IDictionary
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.SendFileVersion">
+            <summary>
+            Gets or sets the string value for "sendfile.Version"
+            </summary>
+            <returns>the string value for "sendfile.Version"</returns>
+        </member>
+        <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.WebSocketVersion">
+            <summary>
+            Gets or sets the websocket version.
+            </summary>
+            <returns>The websocket version.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.CookieOptions">
+            <summary>
+            Options used to create a new cookie.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.CookieOptions.#ctor">
+            <summary>
+            Creates a default cookie with a path of '/'.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Domain">
+            <summary>
+            Gets or sets the domain to associate the cookie with.
+            </summary>
+            <returns>The domain to associate the cookie with.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Path">
+            <summary>
+            Gets or sets the cookie path.
+            </summary>
+            <returns>The cookie path.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Expires">
+            <summary>
+            Gets or sets the expiration date and time for the cookie.
+            </summary>
+            <returns>The expiration date and time for the cookie.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.Secure">
+            <summary>
+            Gets or sets a value that indicates whether to transmit the cookie using Secure Sockets Layer (SSL)鈥攖hat is, over HTTPS only.
+            </summary>
+            <returns>true to transmit the cookie only over an SSL connection (HTTPS); otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.CookieOptions.HttpOnly">
+            <summary>
+            Gets or sets a value that indicates whether a cookie is accessible by client-side script.
+            </summary>
+            <returns>true if a cookie is accessible by client-side script; otherwise, false.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.LoggerFactory">
+            <summary>
+            Provides a default ILoggerFactory.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Logging.LoggerFactory.Default">
+            <summary>
+            Provides a default ILoggerFactory based on System.Diagnostics.TraceSorce.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Builder.AppBuilderExtensions">
+            <summary>
+            Extension methods for IAppBuilder.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build(Owin.IAppBuilder)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. May be called to build pipeline branches.
+            </summary>
+            <param name="builder"></param>
+            <returns>The request processing entry point for this section of the pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build``1(Owin.IAppBuilder)">
+            <summary>
+            The Build is called at the point when all of the middleware should be chained
+            together. May be called to build pipeline branches.
+            </summary>
+            <typeparam name="TApp">The application signature.</typeparam>
+            <param name="builder"></param>
+            <returns>The request processing entry point for this section of the pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion(Owin.IAppBuilder,System.Delegate)">
+            <summary>
+            Adds converters for adapting between disparate application signatures.
+            </summary>
+            <param name="builder"></param>
+            <param name="conversion"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion``2(Owin.IAppBuilder,System.Func{``0,``1})">
+            <summary>
+            Adds converters for adapting between disparate application signatures.
+            </summary>
+            <typeparam name="T1"></typeparam>
+            <typeparam name="T2"></typeparam>
+            <param name="builder"></param>
+            <param name="conversion"></param>
+        </member>
+        <member name="T:Microsoft.Owin.Helpers.WebHelpers">
+            <summary>
+            Provides helper methods for processing requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Helpers.WebHelpers.ParseForm(System.String)">
+            <summary>
+            Parses an HTTP form body.
+            </summary>
+            <param name="text">The HTTP form body to parse.</param>
+            <returns>The <see cref="T:Microsoft.Owin.IFormCollection" /> object containing the parsed HTTP form body.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.AppFuncTransition">
+            <summary>
+            Converts between an OwinMiddlware and an <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/>.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.OwinMiddleware">
+            <summary>
+            An abstract base class for a standard middleware pattern.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinMiddleware.#ctor(Microsoft.Owin.OwinMiddleware)">
+            <summary>
+            Instantiates the middleware with an optional pointer to the next component.
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+            <summary>
+            Process an individual request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinMiddleware.Next">
+            <summary>
+            The optional next component.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.AppFuncTransition.#ctor(System.Func{System.Collections.Generic.IDictionary{System.String,System.Object},System.Threading.Tasks.Task})">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.AppFuncTransition.Invoke(Microsoft.Owin.IOwinContext)">
+            <summary>
+            
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition">
+            <summary>
+            Transitions between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition.#ctor(Microsoft.Owin.OwinMiddleware)">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.OwinMiddlewareTransition.Invoke(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Infrastructure.SignatureConversions">
+            <summary>
+            Adds adapters between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(Owin.IAppBuilder)">
+            <summary>
+            Adds adapters between <typeref name="Func&lt;IDictionary&lt;string,object&gt;, Task&gt;"/> and OwinMiddleware.
+            </summary>
+            <param name="app"></param>
+        </member>
+        <member name="T:Microsoft.Owin.OwinRequest">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Create a new environment wrapper exposing request properties.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.ReadFormAsync">
+            <summary>
+            Asynchronously reads and parses the request body as a form.
+            </summary>
+            <returns>The parsed form data.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinRequest.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Method">
+            <summary>
+            Gets or set the HTTP method.
+            </summary>
+            <returns>The HTTP method.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Scheme">
+            <summary>
+            Gets or set the HTTP request scheme from owin.RequestScheme.
+            </summary>
+            <returns>The HTTP request scheme from owin.RequestScheme.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.IsSecure">
+            <summary>
+            Returns true if the owin.RequestScheme is https.
+            </summary>
+            <returns>true if this request is using https; otherwise, false.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Host">
+            <summary>
+            Gets or set the Host header. May include the port.
+            </summary>
+            <return>The Host header.</return>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.PathBase">
+            <summary>
+            Gets or set the owin.RequestPathBase.
+            </summary>
+            <returns>The owin.RequestPathBase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Path">
+            <summary>
+            Gets or set the request path from owin.RequestPath.
+            </summary>
+            <returns>The request path from owin.RequestPath.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.QueryString">
+            <summary>
+            Gets or set the query string from owin.RequestQueryString.
+            </summary>
+            <returns>The query string from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Query">
+            <summary>
+            Gets the query value collection parsed from owin.RequestQueryString.
+            </summary>
+            <returns>The query value collection parsed from owin.RequestQueryString.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Uri">
+            <summary>
+            Gets the uniform resource identifier (URI) associated with the request.
+            </summary>
+            <returns>The uniform resource identifier (URI) associated with the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Protocol">
+            <summary>
+            Gets or set the owin.RequestProtocol.
+            </summary>
+            <returns>The owin.RequestProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Headers">
+            <summary>
+            Gets the request headers.
+            </summary>
+            <returns>The request headers.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Cookies">
+            <summary>
+            Gets the collection of Cookies for this request.
+            </summary>
+            <returns>The collection of Cookies for this request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.CacheControl">
+            <summary>
+            Gets or sets the Cache-Control header.
+            </summary>
+            <returns>The Cache-Control header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.MediaType">
+            <summary>
+            Gets or sets the Media-Type header.
+            </summary>
+            <returns>The Media-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Accept">
+            <summary>
+            Gets or set the Accept header.
+            </summary>
+            <returns>The Accept header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.Body">
+            <summary>
+            Gets or set the owin.RequestBody Stream.
+            </summary>
+            <returns>The owin.RequestBody Stream.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.CallCancelled">
+            <summary>
+            Gets or sets the cancellation token for the request.
+            </summary>
+            <returns>The cancellation token for the request.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.LocalIpAddress">
+            <summary>
+            Gets or set the server.LocalIpAddress.
+            </summary>
+            <returns>The server.LocalIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.LocalPort">
+            <summary>
+            Gets or set the server.LocalPort.
+            </summary>
+            <returns>The server.LocalPort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.RemoteIpAddress">
+            <summary>
+            Gets or set the server.RemoteIpAddress.
+            </summary>
+            <returns>The server.RemoteIpAddress.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.RemotePort">
+            <summary>
+            Gets or set the server.RemotePort.
+            </summary>
+            <returns>The server.RemotePort.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinRequest.User">
+            <summary>
+            Gets or set the server.User.
+            </summary>
+            <returns>The server.User.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.OwinResponse">
+            <summary>
+            This wraps OWIN environment dictionary and provides strongly typed accessors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.#ctor">
+            <summary>
+            Create a new context with only request and response header collections.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Creates a new environment wrapper exposing response properties.
+            </summary>
+            <param name="environment">OWIN environment dictionary which stores state information about the request, response and relevant server state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+            <summary>
+            Registers for an event that fires when the response headers are sent.
+            </summary>
+            <param name="callback">The callback method.</param>
+            <param name="state">The callback state.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Redirect(System.String)">
+            <summary>
+            Sets a 302 response status code and the Location header.
+            </summary>
+            <param name="location">The location where to redirect the client.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.String)">
+            <summary>
+            Writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[])">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given text to the response body stream using UTF-8.
+            </summary>
+            <param name="text">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[])">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+            <summary>
+            Asynchronously writes the given bytes to the response body stream.
+            </summary>
+            <param name="data">The response data.</param>
+            <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes.</param>
+            <param name="count">The number of bytes to write.</param>
+            <param name="token">A token used to indicate cancellation.</param>
+            <returns>A Task tracking the state of the write operation.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Get``1(System.String)">
+            <summary>
+            Gets a value from the OWIN environment, or returns default(T) if not present.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to get.</param>
+            <returns>The value with the specified key or the default(T) if not present.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.OwinResponse.Set``1(System.String,``0)">
+            <summary>
+            Sets the given key and value in the OWIN environment.
+            </summary>
+            <typeparam name="T">The type of the value.</typeparam>
+            <param name="key">The key of the value to set.</param>
+            <param name="value">The value to set.</param>
+            <returns>This instance.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Environment">
+            <summary>
+            Gets the OWIN environment.
+            </summary>
+            <returns>The OWIN environment.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Context">
+            <summary>
+            Gets the request context.
+            </summary>
+            <returns>The request context.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.StatusCode">
+            <summary>
+            Gets or sets the optional owin.ResponseStatusCode.
+            </summary>
+            <returns>The optional owin.ResponseStatusCode, or 200 if not set.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ReasonPhrase">
+            <summary>
+            Gets or sets the the optional owin.ResponseReasonPhrase.
+            </summary>
+            <returns>The the optional owin.ResponseReasonPhrase.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Protocol">
+            <summary>
+            Gets or sets the owin.ResponseProtocol.
+            </summary>
+            <returns>The owin.ResponseProtocol.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Headers">
+            <summary>
+            Gets the response header collection.
+            </summary>
+            <returns>The response header collection.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Cookies">
+            <summary>
+            Gets a collection used to manipulate the Set-Cookie header.
+            </summary>
+            <returns>A collection used to manipulate the Set-Cookie header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ContentLength">
+            <summary>
+            Gets or sets the Content-Length header.
+            </summary>
+            <returns>The Content-Length header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ContentType">
+            <summary>
+            Gets or sets the Content-Type header.
+            </summary>
+            <returns>The Content-Type header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Expires">
+            <summary>
+            Gets or sets the Expires header.
+            </summary>
+            <returns>The Expires header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.ETag">
+            <summary>
+            Gets or sets the E-Tag header.
+            </summary>
+            <returns>The E-Tag header.</returns>
+        </member>
+        <member name="P:Microsoft.Owin.OwinResponse.Body">
+            <summary>
+            Gets or sets the owin.ResponseBody Stream.
+            </summary>
+            <returns>The owin.ResponseBody Stream.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.IAuthenticationManager">
+            <summary>
+            Used to interact with authentication middleware that have been chained in the pipeline
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes">
+            <summary>
+            Lists all of the description data provided by authentication middleware that have been chained
+            </summary>
+            <returns>The authentication descriptions</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes(System.Func{Microsoft.Owin.Security.AuthenticationDescription,System.Boolean})">
+            <summary>
+            Lists the description data of all of the authentication middleware which are true for a given predicate
+            </summary>
+            <param name="predicate">A function provided by the caller which returns true for descriptions that should be in the returned list</param>
+            <returns>The authentication descriptions</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String)">
+            <summary>
+            Call back through the middleware to ask for a specific form of authentication to be performed
+            on the current request
+            </summary>
+            <param name="authenticationType">Identifies which middleware should respond to the request
+            for authentication. This value is compared to the middleware's Options.AuthenticationType property.</param>
+            <returns>Returns an object with the results of the authentication. The AuthenticationResult.Identity
+            may be null if authentication failed. Even if the Identity property is null, there may still be 
+            AuthenticationResult.properties and AuthenticationResult.Description information returned.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String[])">
+            <summary>
+            Called to perform any number of authentication mechanisms on the current request.
+            </summary>
+            <param name="authenticationTypes">Identifies one or more middleware which should attempt to respond</param>
+            <returns>Returns the AuthenticationResult information from the middleware which responded. The 
+            order is determined by the order the middleware are in the pipeline. Latest added is first in the list.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+            <summary>
+            Add information into the response environment that will cause the authentication middleware to challenge
+            the caller to authenticate. This also changes the status code of the response to 401. The nature of that 
+            challenge varies greatly, and ranges from adding a response header or changing the 401 status code to 
+            a 302 redirect.
+            </summary>
+            <param name="properties">Additional arbitrary values which may be used by particular authentication types.</param>
+            <param name="authenticationTypes">Identify which middleware should perform their alterations on the
+            response. If the authenticationTypes is null or empty, that means the 
+            AuthenticationMode.Active middleware should perform their alterations on the response.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(System.String[])">
+            <summary>
+            Add information into the response environment that will cause the authentication middleware to challenge
+            the caller to authenticate. This also changes the status code of the response to 401. The nature of that 
+            challenge varies greatly, and ranges from adding a response header or changing the 401 status code to 
+            a 302 redirect.
+            </summary>
+            <param name="authenticationTypes">Identify which middleware should perform their alterations on the
+            response. If the authenticationTypes is null or empty, that means the 
+            AuthenticationMode.Active middleware should perform their alterations on the response.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties,System.Security.Claims.ClaimsIdentity[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary.
+            Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2
+            access code or token response.
+            </summary>
+            <param name="properties">Contains additional properties the middleware are expected to persist along with
+            the claims. These values will be returned as the AuthenticateResult.properties collection when AuthenticateAsync
+            is called on subsequent requests.</param>
+            <param name="identities">Determines which claims are granted to the signed in user. The 
+            ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType 
+            value to determine which claims are granted by which middleware. The recommended use is to have a single
+            ClaimsIdentity which has the AuthenticationType matching a specific middleware.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(System.Security.Claims.ClaimsIdentity[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary.
+            Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2
+            access code or token response.
+            </summary>
+            <param name="identities">Determines which claims are granted to the signed in user. The 
+            ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType 
+            value to determine which claims are granted by which middleware. The recommended use is to have a single
+            ClaimsIdentity which has the AuthenticationType matching a specific middleware.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to revoke any claims identity associated the the caller. The exact method varies.
+            </summary>
+            <param name="properties">Additional arbitrary values which may be used by particular authentication types.</param>
+            <param name="authenticationTypes">Identifies which middleware should perform the work to sign out.
+            Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear
+            cookies and redirect to an external single-sign out url.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(System.String[])">
+            <summary>
+            Add information to the response environment that will cause the appropriate authentication middleware
+            to revoke any claims identity associated the the caller. The exact method varies.
+            </summary>
+            <param name="authenticationTypes">Identifies which middleware should perform the work to sign out.
+            Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear
+            cookies and redirect to an external single-sign out url.</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.User">
+            <summary>
+            Returns the current user for the request
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationManager.Authenticate(System.String[],System.Action{System.Security.Principal.IIdentity,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Object},System.Object},System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="callback"></param>
+            <param name="state"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationManager.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut environment value as a strong type.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationProperties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> class
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> class
+            </summary>
+            <param name="dictionary"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.Dictionary">
+            <summary>
+            State values about the authentication session.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IsPersistent">
+            <summary>
+            Gets or sets whether the authentication session is persisted across multiple requests.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.RedirectUri">
+            <summary>
+            Gets or sets the full path or absolute URI to be used as an http redirect response value. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IssuedUtc">
+            <summary>
+            Gets or sets the time at which the authentication ticket was issued.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.ExpiresUtc">
+            <summary>
+            Gets or sets the time at which the authentication ticket expires.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationProperties.AllowRefresh">
+            <summary>
+            Gets or sets if refreshing the authentication session should be allowed.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseChallenge">
+            <summary>
+            Exposes the security.Challenge environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseChallenge.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseChallenge"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.AuthenticationTypes">
+            <summary>
+            List of the authentication types that should send a challenge in the response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseGrant">
+            <summary>
+            Exposes the security.SignIn environment value as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseGrant"/> class.
+            </summary>
+            <param name="identity"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsPrincipal,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseGrant"/> class.
+            </summary>
+            <param name="principal"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Identity">
+            <summary>
+            The identity associated with the user sign in.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Principal">
+            <summary>
+            The security principal associated with the user sign in.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationResponseRevoke">
+            <summary>
+            Exposes the security.SignOut and security.SignOutProperties environment values as a strong type.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke"/> class
+            </summary>
+            <param name="authenticationTypes"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.AuthenticationTypes">
+            <summary>
+            List of the authentication types that should be revoked on sign out.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.Properties">
+            <summary>
+            Dictionary used to store state values about the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory">
+            <summary>
+            Provides an ILoggerFactory based on System.Diagnostics.TraceSource.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory"/> class. 
+            </summary>
+            <summary>
+            Creates a factory named "Microsoft.Owin".
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory"/> class.
+            </summary>
+            <param name="rootSourceSwitch"></param>
+            <param name="rootTraceListener"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.Create(System.String)">
+            <summary>
+            Creates a new DiagnosticsLogger for the given component name.
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Logging.LoggerExtensions">
+            <summary>
+            ILogger extension methods for common scenarios.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.IsEnabled(Microsoft.Owin.Logging.ILogger,System.Diagnostics.TraceEventType)">
+            <summary>
+            Checks if the given TraceEventType is enabled.
+            </summary>
+            <param name="logger"></param>
+            <param name="eventType"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteVerbose(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes a verbose log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="data"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteInformation(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes an informational log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.String[])">
+            <summary>
+            Writes a warning log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes a warning log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes an error log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes an error log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String)">
+            <summary>
+            Writes a critical log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+            <summary>
+            Writes a critical log message.
+            </summary>
+            <param name="logger"></param>
+            <param name="message"></param>
+            <param name="error"></param>
+        </member>
+    </members>
+</doc>
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/.signature.p7s b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/.signature.p7s
new file mode 100644
index 0000000..04c93a3
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/Microsoft.Owin.Host.SystemWeb.4.0.0.nupkg b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/Microsoft.Owin.Host.SystemWeb.4.0.0.nupkg
new file mode 100644
index 0000000..3d64aac
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/Microsoft.Owin.Host.SystemWeb.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml
new file mode 100644
index 0000000..705a2ae
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml
@@ -0,0 +1,201 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin.Host.SystemWeb</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler">
+      <summary>灏嗘潵鑷� System.Web 鐨勮姹備綔涓� OWIN 璇锋眰杩涜澶勭悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.#ctor">
+      <summary>浣跨敤榛樿鐨� OWIN 搴旂敤绋嬪簭澶勭悊璇锋眰銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
+      <summary>鍚姩瀵� HTTP 澶勭悊绋嬪簭鐨勫紓姝ヨ皟鐢ㄣ��</summary>
+      <returns>涓�涓� System.IAsyncResult锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</returns>
+      <param name="httpContext">涓�涓� System.Web.HttpContextBase 瀵硅薄锛屽畠鎻愪緵瀵瑰唴閮ㄦ湇鍔″櫒瀵硅薄锛堜緥濡� Request銆丷esponse銆丼ession 鍜� Server锛岀敤浜庝负 HTTP 璇锋眰鎻愪緵鏈嶅姟锛夌殑寮曠敤銆�</param>
+      <param name="callback">褰撳畬鎴愬紓姝ユ柟娉曡皟鐢ㄦ椂瑕佽皟鐢ㄧ殑 System.AsyncCallback銆傚鏋滃洖璋冧负 null锛屽垯涓嶈皟鐢ㄥ鎵樸��</param>
+      <param name="extraData">澶勭悊璇锋眰鎵�闇�鐨勪换浣曢檮鍔犳暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(System.IAsyncResult)">
+      <summary>鍦ㄨ繘绋嬬粨鏉熸椂锛屾彁渚涘紓姝ヨ繘绋嬬粨鏉熸柟娉曘��</summary>
+      <param name="result">涓�涓� System.IAsyncResult锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.IsReusable">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀哄叾浠栬姹傝兘鍚︿娇鐢� System.Web.IHttpHandler 瀹炰緥銆�</summary>
+      <returns>true銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.System#Web#IHttpAsyncHandler#BeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)">
+      <summary>鍚姩瀵� HTTP 澶勭悊绋嬪簭鐨勫紓姝ヨ皟鐢ㄣ��</summary>
+      <returns>涓�涓� <see cref="T:System.IAsyncResult" />锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</returns>
+      <param name="context">涓�涓� <see cref="T:System.Web.HttpContext" /> 瀵硅薄锛屽畠鎻愪緵瀵瑰唴閮ㄦ湇鍔″櫒瀵硅薄锛堜緥濡� Request銆丷esponse銆丼ession 鍜� Server锛岀敤浜庝负 HTTP 璇锋眰鎻愪緵鏈嶅姟锛夌殑寮曠敤銆�</param>
+      <param name="cb">褰撳畬鎴愬紓姝ユ柟娉曡皟鐢ㄦ椂瑕佽皟鐢ㄧ殑 <see cref="T:System.AsyncCallback" />銆傚鏋滃洖璋冧负 null锛屽垯涓嶈皟鐢ㄥ鎵樸��</param>
+      <param name="extraData">澶勭悊璇锋眰鎵�闇�鐨勪换浣曢檮鍔犳暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.System#Web#IHttpHandler#ProcessRequest(System.Web.HttpContext)">
+      <summary>澶勭悊 HTTP 澶勭悊绋嬪簭鐨勮姹傘��</summary>
+      <param name="context">涓婁笅鏂囥��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler">
+      <summary>閫氳繃 OWIN 绠¢亾澶勭悊璺敱銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.#ctor(System.Action{Owin.IAppBuilder})">
+      <summary>鍒濆鍖� OwinRouteHandler</summary>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
+      <summary>鎻愪緵鐢ㄤ簬澶勭悊璇锋眰鐨勫璞°��</summary>
+      <returns>涓�涓鐞嗚姹傜殑瀵硅薄銆�</returns>
+      <param name="requestContext">涓�涓璞★紝灏佽鏈夊叧璇锋眰鐨勪俊鎭��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.System#Web#Routing#IRouteHandler#GetHttpHandler(System.Web.Routing.RequestContext)">
+      <summary>鎻愪緵鐢ㄤ簬澶勭悊璇锋眰鐨勫璞°��</summary>
+      <returns>涓�涓鐞嗚姹傜殑瀵硅薄銆�</returns>
+      <param name="requestContext">涓�涓璞★紝灏佽鏈夊叧璇锋眰鐨勪俊鎭��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.PreApplicationStart">
+      <summary>鍚姩搴旂敤绋嬪簭鏃舵敞鍐� OWIN 璇锋眰澶勭悊妯″潡銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.PreApplicationStart.Initialize">
+      <summary>娉ㄥ唽 OWIN 璇锋眰澶勭悊妯″潡銆�</summary>
+    </member>
+    <member name="T:System.Web.HttpContextBaseExtensions">
+      <summary>鎻愪緵 <see cref="T:System.Web.HttpContextBase" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpContextBase)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpRequestBase)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="T:System.Web.HttpContextExtensions">
+      <summary>鎻愪緵 <see cref="T:System.Web.HttpContext" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpContext)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpRequest)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="T:System.Web.Routing.RouteCollectionExtensions">
+      <summary>鎻愪緵鎵╁睍鏂规硶锛岀敤浜庡皢 OWIN 搴旂敤绋嬪簭娉ㄥ唽涓� System.Web 璺敱銆�</summary>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String)">
+      <summary>娉ㄥ唽榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>璋冪敤 System.Action 鍚姩濮旀墭浠ョ敓鎴� OWIN 搴旂敤绋嬪簭锛岀劧鍚庡湪缁欏畾鐨勮矾寰勪腑涓哄畠娉ㄥ唽涓�涓矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="startup">涓虹敓鎴� OWIN 搴旂敤绋嬪簭鑰岃皟鐢ㄧ殑 System.Action 濮旀墭銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String)">
+      <summary> 娉ㄥ唽榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+      <summary> 璋冪敤 System.Action 鍚姩濮旀墭浠ョ敓鎴� OWIN 搴旂敤绋嬪簭锛岀劧鍚庡湪缁欏畾鐨勮矾寰勪腑涓哄畠娉ㄥ唽涓�涓矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="startup">涓虹敓鎴� OWIN 搴旂敤绋嬪簭鑰岃皟鐢ㄧ殑 System.Action 濮旀墭銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,System.String,``0)">
+      <summary> 涓虹壒瀹氱殑 OWIN 搴旂敤绋嬪簭鍏ュ彛鐐规敞鍐岃矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="app">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐广��</param>
+      <typeparam name="TApp">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐圭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,``0)">
+      <summary> 涓虹壒瀹氱殑 OWIN 搴旂敤绋嬪簭鍏ュ彛鐐规敞鍐岃矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="app">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐广��</param>
+      <typeparam name="TApp">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐圭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="dataTokens">浼犻�掔粰璺敱澶勭悊绋嬪簭鐨勮嚜瀹氫箟鍊硷紝浣嗕笉浣跨敤杩欎簺鍊兼潵纭畾璺敱鏄惁涓庣壒瀹氱殑 URL 妯″紡鍖归厤銆傝繖浜涘�煎皢浼犻�掔粰璺敱澶勭悊绋嬪簭锛屽苟鍙互鍦ㄥ叾涓敤浜庡鐞嗚姹傘��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="dataTokens">浼犻�掔粰璺敱澶勭悊绋嬪簭鐨勮嚜瀹氫箟鍊硷紝浣嗕笉浣跨敤杩欎簺鍊兼潵纭畾璺敱鏄惁涓庣壒瀹氱殑 URL 妯″紡鍖归厤銆傝繖浜涘�煎皢浼犻�掔粰璺敱澶勭悊绋嬪簭锛屽苟鍙互鍦ㄥ叾涓敤浜庡鐞嗚姹傘��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net451/Microsoft.Owin.Host.SystemWeb.xml b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net451/Microsoft.Owin.Host.SystemWeb.xml
new file mode 100644
index 0000000..f2c4c49
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.4.0.0/lib/net451/Microsoft.Owin.Host.SystemWeb.xml
@@ -0,0 +1,639 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin.Host.SystemWeb</name>
+    </assembly>
+    <members>
+        <member name="T:Owin.Loader.DefaultLoader">
+            <summary>
+            Locates the startup class based on the following convention:
+            AssemblyName.Startup, with a method named Configuration
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}})">
+            <summary>
+            Allows for a fallback loader to be specified.
+            </summary>
+            <param name="next"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object})">
+            <summary>
+            Allows for a fallback loader and a Dependency Injection activator to be specified.
+            </summary>
+            <param name="next"></param>
+            <param name="activator"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object},System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
+            <summary>
+            
+            </summary>
+            <param name="next"></param>
+            <param name="activator"></param>
+            <param name="referencedAssemblies"></param>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Executes the loader, searching for the entry point by name.
+            </summary>
+            <param name="startupName">The name of the assembly and type entry point</param>
+            <param name="errorDetails"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Owin.Loader.DefaultLoader.DotByDot(System.String)">
+            <summary>
+            
+            </summary>
+            <param name="text"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Owin.Loader.NullLoader">
+            <summary>
+            A default fallback loader that does nothing.
+            </summary>
+        </member>
+        <member name="M:Owin.Loader.NullLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            A placeholder method that always returns null.
+            </summary>
+            <param name="startup"></param>
+            <param name="errors"></param>
+            <returns>null.</returns>
+        </member>
+        <member name="P:Owin.Loader.NullLoader.Instance">
+            <summary>
+            A singleton instance of the NullLoader type.
+            </summary>
+        </member>
+        <member name="T:SharedResourceNamespace.LoaderResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.AssemblyNotFound">
+            <summary>
+              Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the assembly &apos;{1}&apos; was not found..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.ClassNotFoundInAssembly">
+            <summary>
+              Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the class &apos;{1}&apos; was not found in assembly &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Exception_AttributeNameConflict">
+            <summary>
+              Looks up a localized string similar to The OwinStartup attribute discovered in assembly &apos;{0}&apos; referencing startup type &apos;{1}&apos; conflicts with the attribute in assembly &apos;{2}&apos; referencing startup type &apos;{3}&apos; because they have the same FriendlyName &apos;{4}&apos;. Remove or rename one of the attributes, or reference the desired type directly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.Exception_StartupTypeConflict">
+            <summary>
+              Looks up a localized string similar to The discovered startup type &apos;{0}&apos; conflicts with the type &apos;{1}&apos;. Remove or rename one of the types, or reference the desired type directly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.FriendlyNameMismatch">
+            <summary>
+              Looks up a localized string similar to The OwinStartupAttribute.FriendlyName value &apos;{0}&apos; does not match the given value &apos;{1}&apos; in Assembly &apos;{2}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.MethodNotFoundInClass">
+            <summary>
+              Looks up a localized string similar to No &apos;{0}&apos; method was found in class &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.NoAssemblyWithStartupClass">
+            <summary>
+              Looks up a localized string similar to No assembly found containing a Startup or [AssemblyName].Startup class..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.NoOwinStartupAttribute">
+            <summary>
+              Looks up a localized string similar to No assembly found containing an OwinStartupAttribute..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyEmpty">
+            <summary>
+              Looks up a localized string similar to The OwinStartupAttribute.StartupType value is empty in Assembly &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyMissing">
+            <summary>
+              Looks up a localized string similar to The type &apos;{0}&apos; referenced from assembly &apos;{1}&apos; does not define a property &apos;StartupType&apos; of type &apos;Type&apos;..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.TypeOrMethodNotFound">
+            <summary>
+              Looks up a localized string similar to The given type or method &apos;{0}&apos; was not found. Try specifying the Assembly..
+            </summary>
+        </member>
+        <member name="P:SharedResourceNamespace.LoaderResources.UnexpectedMethodSignature">
+            <summary>
+              Looks up a localized string similar to The &apos;{0}&apos; method on class &apos;{1}&apos; does not have the expected signature &apos;void {0}(IAppBuilder)&apos;..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.#ctor">
+            <summary>
+            This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+            from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Get the reassembled cookie. Non chunked cookies are returned normally.
+            Cookies with missing chunks just have their "chunks:XX" header returned.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns>The reassembled cookie, if any, or null.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
+            then it will be broken down into multiple cookies as follows:
+            Set-Cookie: CookieName=chunks:3; path=/
+            Set-Cookie: CookieNameC1=Segment1; path=/
+            Set-Cookie: CookieNameC2=Segment2; path=/
+            Set-Cookie: CookieNameC3=Segment3; path=/
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
+            the request, delete each chunk.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.Fallback">
+            <summary>
+            A fallback manager used if HttpContextBase can't be located.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ChunkSize">
+             <summary>
+             The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
+             cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all
+             common browsers.
+            
+             Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
+             </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ThrowForPartialCookies">
+            <summary>
+            Throw if not all chunks of a cookie are available on a request for re-assembly.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider">
+            <summary>
+            Used to provide the data protection services that are derived from the MachineKey API. It is the best choice of
+            data protection when you application is hosted by ASP.NET and all servers in the farm are running with the same Machine Key values.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:System.Web.HttpContextBaseExtensions">
+            <summary>
+            Provides extension methods for <see cref="T:System.Web.HttpContextBase"/>.
+            </summary>
+        </member>
+        <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpContextBase)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpRequestBase)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="request"></param>
+            <returns></returns>
+        </member>
+        <member name="T:System.Web.HttpContextExtensions">
+            <summary>
+            Provides extension methods for <see cref="T:System.Web.HttpContext"/>.
+            </summary>
+        </member>
+        <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpContext)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpRequest)">
+            <summary>
+            Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
+            </summary>
+            <param name="request"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler">
+            <summary>
+            Processes requests from System.Web as OWIN requests.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.#ctor">
+            <summary>
+            Processes requests using the default OWIN application.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
+            <summary>
+            Initiates an asynchronous call to the HTTP handler.
+            </summary>
+            <param name="httpContext">
+            An System.Web.HttpContextBase object that provides references to intrinsic server
+            objects (for example, Request, Response, Session, and Server) used to service
+            HTTP requests.
+            </param>
+            <param name="callback">
+            The System.AsyncCallback to call when the asynchronous method call is complete.
+            If callback is null, the delegate is not called.
+            </param>
+            <param name="extraData">
+            Any extra data needed to process the request.
+            </param>
+            <returns>
+            An System.IAsyncResult that contains information about the status of the process.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(System.IAsyncResult)">
+            <summary>
+            Provides an asynchronous process End method when the process ends.
+            </summary>
+            <param name="result">
+            An System.IAsyncResult that contains information about the status of the process.
+            </param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.IsReusable">
+            <summary>
+            Gets a value indicating whether another request can use the System.Web.IHttpHandler instance.
+            </summary>
+            <returns>
+            true.
+            </returns>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler">
+            <summary>
+            Processes a route through an OWIN pipeline.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.#ctor(System.Action{Owin.IAppBuilder})">
+            <summary>
+            Initialize an OwinRouteHandler
+            </summary>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
+            <summary>
+            Provides the object that processes the request.
+            </summary>
+            <returns>
+            An object that processes the request.
+            </returns>
+            <param name="requestContext">An object that encapsulates information about the request.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.PreApplicationStart">
+            <summary>
+            Registers the OWIN request processing module at application startup.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.PreApplicationStart.Initialize">
+            <summary>
+            Registers the OWIN request processing module.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_AppLoderFailure">
+            <summary>
+              Looks up a localized string similar to The following errors occurred while attempting to load the app..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CannotRegisterAfterHeadersSent">
+            <summary>
+              Looks up a localized string similar to Cannot register for &apos;OnSendingHeaders&apos; event after response headers have been sent..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CookieLimitTooSmall">
+            <summary>
+              Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_DuplicateKey">
+            <summary>
+              Looks up a localized string similar to The key &apos;{0}&apos; is already present in the dictionary..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToDisableAutoAppStartup">
+            <summary>
+              Looks up a localized string similar to To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of &quot;false&quot; in your web.config..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToSpecifyAppStartup">
+            <summary>
+              Looks up a localized string similar to To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_ImcompleteChunkedCookie">
+            <summary>
+              Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_UnsupportedPipelineStage">
+            <summary>
+              Looks up a localized string similar to The given stage &apos;{0}&apos; is not supported..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.HttpContext_OwinEnvironmentNotFound">
+            <summary>
+              Looks up a localized string similar to No owin.Environment item was found in the context..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ClientCertException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown while trying to load the client certificate:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_EntryPointException">
+            <summary>
+              Looks up a localized string similar to The OWIN entry point threw an exception:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_OwinCallContextCallbackException">
+            <summary>
+              Looks up a localized string similar to The IAsyncResult callback for OwinCallHandler threw an exception:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RegisterModuleException">
+            <summary>
+              Looks up a localized string similar to Failed to register the OWIN module:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RequestDisconnectCallbackExceptions">
+            <summary>
+              Looks up a localized string similar to The application threw one or more exceptions when notified of a client disconnect:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownDetectionSetupException">
+            <summary>
+              Looks up a localized string similar to Shutdown detection setup failed:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownException">
+            <summary>
+              Looks up a localized string similar to One or more exceptions were thrown during app pool shutdown:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_TimerCallbackException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown from a timer callback:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketException">
+            <summary>
+              Looks up a localized string similar to An exception was thrown while processing the WebSocket:.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportDetected">
+            <summary>
+              Looks up a localized string similar to Support for WebSockets has been detected..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportNotDetected">
+            <summary>
+              Looks up a localized string similar to No support for WebSockets has been detected..
+            </summary>
+        </member>
+        <member name="T:System.Web.Routing.RouteCollectionExtensions">
+            <summary>
+            Provides extension methods for registering OWIN applications as System.Web routes.
+            </summary>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String)">
+            <summary>
+            Registers a route for the default OWIN application.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the default OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,``0)">
+            <summary>
+            Registers a route for a specific OWIN application entry point.
+            </summary>
+            <typeparam name="TApp">The OWIN application entry point type.</typeparam>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="app">The OWIN application entry point.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Invokes the System.Action startup delegate to build the OWIN application
+            and then registers a route for it on the given path.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String)">
+            <summary>
+            Registers a route for the default OWIN application.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the default OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,System.String,``0)">
+            <summary>
+            Registers a route for a specific OWIN application entry point.
+            </summary>
+            <typeparam name="TApp">The OWIN application entry point type.</typeparam>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="app">The OWIN application entry point.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Invokes the System.Action startup delegate to build the OWIN application
+            and then registers a route for it on the given path.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="name">The given name of the route.</param>
+            <param name="pathBase">The route path to map to the given OWIN application.</param>
+            <param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
+            <returns>The created route.</returns>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+            <summary>
+            Provides a way to define routes for an OWIN pipeline.
+            </summary>
+            <param name="routes">The route collection.</param>
+            <param name="routeName">The name of the route.</param>
+            <param name="routeUrl">The URL pattern for the route.</param>
+            <param name="defaults">The values to use if the URL does not contain all the parameters.</param>
+            <param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
+            <param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
+            <param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager">
+            <summary>
+            An implementation of ICookieManager that uses the System.Web.HttpContextBase object model.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.#ctor">
+            <summary>
+            Creates a new instance of SystemWebCookieManager.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
+            <summary>
+            Reads the requested cookie from System.Web.HttpContextBase.Request.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Appends the requested cookie to System.Web.HttpContextBase.Response.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="value"></param>
+            <param name="options"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
+            <summary>
+            Deletes the requested cookie by appending an expired cookie to System.Web.HttpContextBase.Response.Cookies.
+            </summary>
+            <param name="context"></param>
+            <param name="key"></param>
+            <param name="options"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.Fallback">
+            <summary>
+            A fallback manager used if HttpContextBase can't be located.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/.signature.p7s b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/.signature.p7s
new file mode 100644
index 0000000..2ae4ac4
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0.nupkg b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0.nupkg
new file mode 100644
index 0000000..97d3d12
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml
new file mode 100644
index 0000000..705a2ae
--- /dev/null
+++ b/packages/Microsoft.Owin.Host.SystemWeb.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Host.SystemWeb.xml
@@ -0,0 +1,201 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin.Host.SystemWeb</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler">
+      <summary>灏嗘潵鑷� System.Web 鐨勮姹備綔涓� OWIN 璇锋眰杩涜澶勭悊銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.#ctor">
+      <summary>浣跨敤榛樿鐨� OWIN 搴旂敤绋嬪簭澶勭悊璇锋眰銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
+      <summary>鍚姩瀵� HTTP 澶勭悊绋嬪簭鐨勫紓姝ヨ皟鐢ㄣ��</summary>
+      <returns>涓�涓� System.IAsyncResult锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</returns>
+      <param name="httpContext">涓�涓� System.Web.HttpContextBase 瀵硅薄锛屽畠鎻愪緵瀵瑰唴閮ㄦ湇鍔″櫒瀵硅薄锛堜緥濡� Request銆丷esponse銆丼ession 鍜� Server锛岀敤浜庝负 HTTP 璇锋眰鎻愪緵鏈嶅姟锛夌殑寮曠敤銆�</param>
+      <param name="callback">褰撳畬鎴愬紓姝ユ柟娉曡皟鐢ㄦ椂瑕佽皟鐢ㄧ殑 System.AsyncCallback銆傚鏋滃洖璋冧负 null锛屽垯涓嶈皟鐢ㄥ鎵樸��</param>
+      <param name="extraData">澶勭悊璇锋眰鎵�闇�鐨勪换浣曢檮鍔犳暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(System.IAsyncResult)">
+      <summary>鍦ㄨ繘绋嬬粨鏉熸椂锛屾彁渚涘紓姝ヨ繘绋嬬粨鏉熸柟娉曘��</summary>
+      <param name="result">涓�涓� System.IAsyncResult锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.IsReusable">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀哄叾浠栬姹傝兘鍚︿娇鐢� System.Web.IHttpHandler 瀹炰緥銆�</summary>
+      <returns>true銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.System#Web#IHttpAsyncHandler#BeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)">
+      <summary>鍚姩瀵� HTTP 澶勭悊绋嬪簭鐨勫紓姝ヨ皟鐢ㄣ��</summary>
+      <returns>涓�涓� <see cref="T:System.IAsyncResult" />锛屽叾涓寘鍚湁鍏宠繘绋嬬姸鎬佺殑淇℃伅銆�</returns>
+      <param name="context">涓�涓� <see cref="T:System.Web.HttpContext" /> 瀵硅薄锛屽畠鎻愪緵瀵瑰唴閮ㄦ湇鍔″櫒瀵硅薄锛堜緥濡� Request銆丷esponse銆丼ession 鍜� Server锛岀敤浜庝负 HTTP 璇锋眰鎻愪緵鏈嶅姟锛夌殑寮曠敤銆�</param>
+      <param name="cb">褰撳畬鎴愬紓姝ユ柟娉曡皟鐢ㄦ椂瑕佽皟鐢ㄧ殑 <see cref="T:System.AsyncCallback" />銆傚鏋滃洖璋冧负 null锛屽垯涓嶈皟鐢ㄥ鎵樸��</param>
+      <param name="extraData">澶勭悊璇锋眰鎵�闇�鐨勪换浣曢檮鍔犳暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.System#Web#IHttpHandler#ProcessRequest(System.Web.HttpContext)">
+      <summary>澶勭悊 HTTP 澶勭悊绋嬪簭鐨勮姹傘��</summary>
+      <param name="context">涓婁笅鏂囥��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler">
+      <summary>閫氳繃 OWIN 绠¢亾澶勭悊璺敱銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.#ctor(System.Action{Owin.IAppBuilder})">
+      <summary>鍒濆鍖� OwinRouteHandler</summary>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
+      <summary>鎻愪緵鐢ㄤ簬澶勭悊璇锋眰鐨勫璞°��</summary>
+      <returns>涓�涓鐞嗚姹傜殑瀵硅薄銆�</returns>
+      <param name="requestContext">涓�涓璞★紝灏佽鏈夊叧璇锋眰鐨勪俊鎭��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.System#Web#Routing#IRouteHandler#GetHttpHandler(System.Web.Routing.RequestContext)">
+      <summary>鎻愪緵鐢ㄤ簬澶勭悊璇锋眰鐨勫璞°��</summary>
+      <returns>涓�涓鐞嗚姹傜殑瀵硅薄銆�</returns>
+      <param name="requestContext">涓�涓璞★紝灏佽鏈夊叧璇锋眰鐨勪俊鎭��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Host.SystemWeb.PreApplicationStart">
+      <summary>鍚姩搴旂敤绋嬪簭鏃舵敞鍐� OWIN 璇锋眰澶勭悊妯″潡銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Host.SystemWeb.PreApplicationStart.Initialize">
+      <summary>娉ㄥ唽 OWIN 璇锋眰澶勭悊妯″潡銆�</summary>
+    </member>
+    <member name="T:System.Web.HttpContextBaseExtensions">
+      <summary>鎻愪緵 <see cref="T:System.Web.HttpContextBase" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpContextBase)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpRequestBase)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="T:System.Web.HttpContextExtensions">
+      <summary>鎻愪緵 <see cref="T:System.Web.HttpContext" /> 鐨勬墿灞曟柟娉曘��</summary>
+    </member>
+    <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpContext)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpRequest)">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� <see cref="T:Microsoft.Owin.IOwinContext" />銆�</summary>
+    </member>
+    <member name="T:System.Web.Routing.RouteCollectionExtensions">
+      <summary>鎻愪緵鎵╁睍鏂规硶锛岀敤浜庡皢 OWIN 搴旂敤绋嬪簭娉ㄥ唽涓� System.Web 璺敱銆�</summary>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String)">
+      <summary>娉ㄥ唽榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>璋冪敤 System.Action 鍚姩濮旀墭浠ョ敓鎴� OWIN 搴旂敤绋嬪簭锛岀劧鍚庡湪缁欏畾鐨勮矾寰勪腑涓哄畠娉ㄥ唽涓�涓矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="startup">涓虹敓鎴� OWIN 搴旂敤绋嬪簭鑰岃皟鐢ㄧ殑 System.Action 濮旀墭銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String)">
+      <summary> 娉ㄥ唽榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌榛樿 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+      <summary> 璋冪敤 System.Action 鍚姩濮旀墭浠ョ敓鎴� OWIN 搴旂敤绋嬪簭锛岀劧鍚庡湪缁欏畾鐨勮矾寰勪腑涓哄畠娉ㄥ唽涓�涓矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="startup">涓虹敓鎴� OWIN 搴旂敤绋嬪簭鑰岃皟鐢ㄧ殑 System.Action 濮旀墭銆�</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,System.String,``0)">
+      <summary> 涓虹壒瀹氱殑 OWIN 搴旂敤绋嬪簭鍏ュ彛鐐规敞鍐岃矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="name">璺敱鐨勭粰瀹氬悕绉般��</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="app">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐广��</param>
+      <typeparam name="TApp">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐圭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,``0)">
+      <summary> 涓虹壒瀹氱殑 OWIN 搴旂敤绋嬪簭鍏ュ彛鐐规敞鍐岃矾鐢便��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="pathBase">瑕佹槧灏勫埌缁欏畾 OWIN 搴旂敤绋嬪簭鐨勮矾鐢辫矾寰勩��</param>
+      <param name="app">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐广��</param>
+      <typeparam name="TApp">OWIN 搴旂敤绋嬪簭鍏ュ彛鐐圭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeName">璺敱鐨勫悕绉般��</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="dataTokens">浼犻�掔粰璺敱澶勭悊绋嬪簭鐨勮嚜瀹氫箟鍊硷紝浣嗕笉浣跨敤杩欎簺鍊兼潵纭畾璺敱鏄惁涓庣壒瀹氱殑 URL 妯″紡鍖归厤銆傝繖浜涘�煎皢浼犻�掔粰璺敱澶勭悊绋嬪簭锛屽苟鍙互鍦ㄥ叾涓敤浜庡鐞嗚姹傘��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+    <member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
+      <summary> 鎻愪緵涓� OWIN 绠¢亾瀹氫箟璺敱鐨勬柟娉曘��</summary>
+      <returns>鍒涘缓鐨勮矾鐢便��</returns>
+      <param name="routes">璺敱闆嗗悎銆�</param>
+      <param name="routeUrl">璺敱鐨� URL 妯″紡銆�</param>
+      <param name="defaults">褰� URL 涓嶅寘鍚墍鏈夊弬鏁版椂瑕佷娇鐢ㄧ殑鍊笺��</param>
+      <param name="constraints">鐢ㄤ簬鎸囧畾 URL 鍙傛暟鐨勬湁鏁堝�肩殑姝e垯琛ㄨ揪寮忋��</param>
+      <param name="dataTokens">浼犻�掔粰璺敱澶勭悊绋嬪簭鐨勮嚜瀹氫箟鍊硷紝浣嗕笉浣跨敤杩欎簺鍊兼潵纭畾璺敱鏄惁涓庣壒瀹氱殑 URL 妯″紡鍖归厤銆傝繖浜涘�煎皢浼犻�掔粰璺敱澶勭悊绋嬪簭锛屽苟鍙互鍦ㄥ叾涓敤浜庡鐞嗚姹傘��</param>
+      <param name="startup">鍒濆鍖栫敤浜庡鐞嗚矾鐢辫姹傜殑绠¢亾鐨勬柟娉曘��</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.Owin.Security.4.0.0/.signature.p7s b/packages/Microsoft.Owin.Security.4.0.0/.signature.p7s
new file mode 100644
index 0000000..35838a7
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.Security.4.0.0/Microsoft.Owin.Security.4.0.0.nupkg b/packages/Microsoft.Owin.Security.4.0.0/Microsoft.Owin.Security.4.0.0.nupkg
new file mode 100644
index 0000000..8e761c6
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.4.0.0/Microsoft.Owin.Security.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.Security.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml b/packages/Microsoft.Owin.Security.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml
new file mode 100644
index 0000000..d6fef7f
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml
@@ -0,0 +1,549 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin.Security</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.Security.AppBuilderSecurityExtensions">
+      <summary>鎻愪緵鍙湁韬唤楠岃瘉涓棿浠跺疄鐜伴渶瑕佺殑 app.Property 鍊肩殑鎵╁睍鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(Owin.IAppBuilder)">
+      <summary>杩斿洖鍓嶉潰璁剧疆鐨勩�佸閮ㄧ櫥褰曚腑闂翠欢鍦ㄦ祻瑙堝櫒瀵艰埅鍥炶繑鍥� URL 鏃跺簲浣跨敤鐨� AuthenticationType銆�</summary>
+      <param name="app">浼犻�掔粰搴旂敤绋嬪簭鍚姩浠g爜鐨勫簲鐢ㄧ▼搴忕敓鎴愬櫒</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.SetDefaultSignInAsAuthenticationType(Owin.IAppBuilder,System.String)">
+      <summary>鐢变腑闂翠欢璋冪敤锛岀敤浜庢洿鏀瑰閮ㄧ櫥褰曚腑闂翠欢鍦ㄦ祻瑙堝櫒瀵艰埅鍥炶繑鍥� URL 鏃跺簲浣跨敤鐨� AuthenticationType 鐨勫悕绉般��</summary>
+      <param name="app">浼犻�掔粰搴旂敤绋嬪簭鍚姩浠g爜鐨勫簲鐢ㄧ▼搴忕敓鎴愬櫒</param>
+      <param name="authenticationType">澶栭儴涓棿浠剁櫥褰曟椂搴斾娇鐢ㄧ殑 AuthenticationType銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationMode">
+      <summary>鎺у埗韬唤楠岃瘉涓棿浠剁殑琛屼负</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.AuthenticationMode.Active">
+      <summary>鍦ㄤ富鍔ㄦā寮忎笅锛岃韩浠介獙璇佷腑闂翠欢灏嗗湪璇锋眰鍒拌揪鏃舵洿鏀圭敤鎴锋爣璇嗭紝骞跺湪鍝嶅簲绂诲紑鏃舵洿鏀� 401 绾枃鏈��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.AuthenticationMode.Passive">
+      <summary>鍦ㄨ鍔ㄦā寮忎笅锛岃韩浠介獙璇佷腑闂翠欢鍙湪鎻愮ず鏃舵彁渚涚敤鎴锋爣璇嗭紝骞朵笖鍙細鏇存敼鍦ㄩ檮鍔犺川璇㈡暟鎹腑鎸囧畾浜嗚韩浠介獙璇佺被鍨嬬殑 401 鍝嶅簲銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationOptions">
+      <summary>鎵�鏈夎韩浠介獙璇佷腑闂翠欢鐨勫熀鏈�夐」</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationOptions.#ctor(System.String)">
+      <summary>鍒濆鍖� AuthenticationOptions 鍩虹被鐨勫睘鎬�</summary>
+      <param name="authenticationType">鍒嗛厤缁� AuthenticationType 灞炴��</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationMode">
+      <summary>濡傛灉涓� Active锛屽垯韬唤楠岃瘉涓棿浠跺皢鏇存敼浼犲叆鐨勮姹傜敤鎴凤紝骞舵洿鏀逛紶鍑虹殑 401 鏈巿鏉冨搷搴斻�傚鏋滀负 Passive锛屽垯浠呭綋 AuthenticationType 宸茶繘琛屾樉寮忔寚瀹氭椂锛岃韩浠介獙璇佷腑闂翠欢鎵嶆彁渚涙爣璇嗗苟鏇存敼鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationType">
+      <summary>閫夐」涓殑 AuthenticationType 瀵瑰簲浜� IIdentity AuthenticationType 灞炴�с�傚彲浠ュ垎閰嶅叾浠栧�硷紝浠ヤ究鍦ㄤ竴涓閬撲腑澶氭浣跨敤鍚屼竴涓韩浠介獙璇佷腑闂翠欢绫诲瀷銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.Description">
+      <summary>涓哄簲鐢ㄧ▼搴忔彁渚涚殑鏈夊叧韬唤楠岃瘉绫诲瀷鐨勯檮鍔犱俊鎭��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationTicket">
+      <summary>鍖呭惈鐢ㄦ埛鏍囪瘑淇℃伅浠ュ強闄勫姞鐨勮韩浠介獙璇佺姸鎬併��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationTicket.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationTicket" /> 绫荤殑鏂板疄渚�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Identity">
+      <summary>鑾峰彇宸茬粡杩囪韩浠介獙璇佺殑鐢ㄦ埛鏍囪瘑銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Properties">
+      <summary>韬唤楠岃瘉浼氳瘽鐨勯檮鍔犵姸鎬佸�笺��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator">
+      <summary>鏍规嵁璇佷功鐨勪娇鐢ㄨ�呭瘑閽ユ爣璇嗙鎻愪緵鍥哄畾璇佷功楠岃瘉銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validSubjectKeyIdentifiers">涓�缁勫 HTTPS 璇锋眰鏈夋晥鐨勪娇鐢ㄨ�呭瘑閽ユ爣璇嗙銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鐢ㄤ簬韬唤楠岃瘉鐨勮繙绋嬪畨鍏ㄥ鎺ュ瓧灞� (SSL) 璇佷功銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator">
+      <summary>瀹炵幇 http://datatracker.ietf.org/doc/draft-ietf-websec-key-pinning/?include_text=1 涓婁紶閫掔殑璇佷功鍥哄畾楠岃瘉绋嬪簭</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.#ctor(System.Collections.Generic.IEnumerable{System.String},Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validBase64EncodedSubjectPublicKeyInfoHashes">璇佷功鍏挜淇℃伅 Blob 鐨勬湁鏁� base64 缂栫爜鍝堝笇闆嗗悎銆�</param>
+      <param name="algorithm">鐢ㄤ簬鐢熸垚鍝堝笇鐨勭畻娉曘��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鏄惁鑷冲皯鏈変竴涓凡鐭ョ殑 SPKI 鍝堝笇銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateThumbprintValidator">
+      <summary>鍩轰簬璇佷功鎸囩汗鎻愪緵鍥哄畾璇佷功楠岃瘉銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateThumbprintValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validThumbprints">瀵� HTTPS 璇锋眰鏈夋晥鐨勪竴缁勬寚绾广��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉绛惧悕閾句腑鐨勮瘉涔︽寚绾规槸鍚﹁嚦灏戜笌鏍稿噯娓呭崟涓殑涓�涓寚绾圭浉鍖归厤銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.ICertificateValidator">
+      <summary>鐢ㄤ簬鎻愪緵鍥哄畾璇佷功楠岃瘉鐨勬帴鍙o紝璇ラ獙璇佹牴鎹凡鐭ヨ壇濂界殑璇佷功鍒楄〃妫�鏌� HTTPS 閫氫俊锛岄槻姝笉瀹夊叏鐨勬垨鎭舵剰鐨� CA 涓轰富鏈烘墍鏈夎�呮湭鐭ョ殑涓绘満棰佸彂璇佷功銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ICertificateValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鐢ㄤ簬韬唤楠岃瘉鐨勮繙绋嬪畨鍏ㄥ鎺ュ瓧灞� (SSL) 璇佷功銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.ISecureDataFormat`1">
+      <summary>琛ㄧず瑕佷繚鎶ょ殑鏁版嵁銆�</summary>
+      <typeparam name="TData">娉涘瀷绫诲瀷鏁版嵁銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ISecureDataFormat`1.Protect(`0)">
+      <summary>淇濇姢鏁版嵁锛屼娇鍏朵笉鑳借鏍煎紡鍖栥��</summary>
+      <returns>瑕佷繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ISecureDataFormat`1.Unprotect(System.String)">
+      <summary>瑙e瘑鎸囧畾鏂囨湰涓殑鏁版嵁銆�</summary>
+      <returns>瑕佽В瀵嗙殑鏁版嵁銆�</returns>
+      <param name="protectedText">鍙椾繚鎶ょ殑鏂囨湰銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm">
+      <summary>鐢ㄤ簬鐢熸垚浣跨敤鑰呭叕閽ヤ俊鎭� blob 鍝堝笇鐨勭畻娉曘��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm.Sha1">
+      <summary />
+    </member>
+    <member name="F:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm.Sha256">
+      <summary />
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.PropertiesDataFormat"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.PropertiesDataFormat.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtector)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1">
+      <typeparam name="TData"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.#ctor(Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer{`0},Microsoft.Owin.Security.DataProtection.IDataProtector,Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.Protect(`0)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.Unprotect(System.String)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.TicketDataFormat"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.TicketDataFormat.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtector)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder">
+      <summary>琛ㄧず base64 鏂囨湰鏍煎紡缂栫爜鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负 base64 鏍煎紡鐨勫瓧绗︿覆銆�</summary>
+      <returns>宸茶浆鎹负 base64 鏍煎紡鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder">
+      <summary>琛ㄧず Base64Url 鏂囨湰鏍煎紡缂栫爜鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负 Base64Url 鏍煎紡鐨勫瓧绗︿覆銆�</summary>
+      <returns>宸茶浆鎹负 Base64Url 鏍煎紡鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder">
+      <summary>琛ㄧず鏂囨湰缂栫爜鍣ㄧ殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负瀛楃涓层��</summary>
+      <returns>杞崲鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings">
+      <summary>琛ㄧず鏂囨湰缂栫爜銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings.Base64">
+      <summary>鑾峰彇 Base64 鏂囨湰缂栫爜鍣ㄣ��</summary>
+      <returns>Base64 鏂囨湰缂栫爜鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings.Base64Url">
+      <summary>鑾峰彇 Base64Url 鏂囨湰缂栫爜鍣ㄣ��</summary>
+      <returns>Base64Url 鏂囨湰缂栫爜鍣ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers">
+      <summary>鎻愪緵鏁版嵁搴忓垪鍖栫▼搴忋��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers.Properties"></member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers.Ticket">
+      <summary>鑾峰彇鎴栬缃エ璇佹暟鎹簭鍒楀寲绋嬪簭銆�</summary>
+      <returns>绁ㄨ瘉鏁版嵁搴忓垪鍖栫▼搴忋��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1">
+      <summary>琛ㄧず鏁版嵁搴忓垪鍖栫▼搴忕殑鎺ュ彛銆�</summary>
+      <typeparam name="TModel">鏁版嵁妯″瀷鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1.Deserialize(System.Byte[])">
+      <summary>鍙嶅簭鍒楀寲鎸囧畾鐨勬暟鎹��</summary>
+      <param name="data">瑕佸弽搴忓垪鍖栫殑鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1.Serialize(`0)">
+      <summary>浣跨敤缁欏畾鐨勬ā鍨嬪簭鍒楀寲鏁版嵁銆�</summary>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.#ctor"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Deserialize(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Read(System.IO.BinaryReader)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Serialize(Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Write(System.IO.BinaryWriter,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer">
+      <summary>琛ㄧず绁ㄨ瘉搴忓垪鍖栫▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Deserialize(System.Byte[])">
+      <summary>鍙嶅簭鍒楀寲绁ㄨ瘉鏁版嵁銆�</summary>
+      <returns>姝e湪鍙嶅簭鍒楀寲鐨勬暟鎹��</returns>
+      <param name="data">瑕佸弽搴忓垪鍖栫殑鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Read(System.IO.BinaryReader)">
+      <summary>浠庤鍙栧櫒涓鍙栨寚瀹氱殑鏁版嵁銆�</summary>
+      <returns>姝e湪璇诲彇鐨勬暟鎹��</returns>
+      <param name="reader">瑕佷粠涓鍙栫殑璇诲彇鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Serialize(Microsoft.Owin.Security.AuthenticationTicket)">
+      <summary>浣跨敤缁欏畾鐨勬ā鍨嬪簭鍒楀寲鏁版嵁銆�</summary>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Write(System.IO.BinaryWriter,Microsoft.Owin.Security.AuthenticationTicket)">
+      <summary>浠庢寚瀹氱殑鍐欏叆鍣ㄥ啓鍏ユ暟鎹��</summary>
+      <param name="writer">鍐欏叆鍣ㄣ��</param>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions">
+      <summary>搴旂敤绋嬪簭鐢熸垚鍣ㄦ墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.CreateDataProtector(Owin.IAppBuilder,System.String[])">
+      <summary>鍒涘缓鏁版嵁淇濇姢绋嬪簭銆�</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Security.DataProtection.IDataProtector" />銆�</returns>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="purposes">鍒涘缓鏁版嵁淇濇姢绋嬪簭鐨勭洰鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.GetDataProtectionProvider(Owin.IAppBuilder)">
+      <summary>妫�绱㈠簲鐢ㄧ▼搴忕殑鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</summary>
+      <returns>瑕佽幏鍙栫殑 <see cref="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider" /> 瀵硅薄銆�</returns>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.SetDataProtectionProvider(Owin.IAppBuilder,Microsoft.Owin.Security.DataProtection.IDataProtectionProvider)">
+      <summary>璁剧疆鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</summary>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="dataProtectionProvider">瑕佽缃殑鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider">
+      <summary>鐢ㄤ簬鎻愪緵浠庢暟鎹繚鎶� API 娲剧敓鐨勬暟鎹繚鎶ゆ湇鍔°�傚綋搴旂敤绋嬪簭鏈敱 ASP.NET 鎵樼锛屽苟涓旀墍鏈夎繘绋嬩互鐩稿悓鐨勫煙鏍囪瘑杩愯鏃讹紝杩欐槸鏈�浣崇殑鏁版嵁淇濇姢閫夐」銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor">
+      <summary>浣跨敤闅忔満搴旂敤绋嬪簭鍚嶇О鍒濆鍖栨柊鐨� DpapiDataProtectionProvider銆傝繖鍙彲鐢ㄤ簬鍦ㄦ墽琛屽綋鍓嶅簲鐢ㄧ▼搴忕殑鎸佺画鏃堕棿鍐呬繚鎶ゆ暟鎹��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor(System.String)">
+      <summary>鍒濆鍖栦竴涓娇鐢ㄧ粰瀹� appName 浣滀负淇濇姢绠楁硶涓�閮ㄥ垎鐨勬柊 DpapiDataProtectionProvider</summary>
+      <param name="appName">鐢ㄦ埛鎻愪緵鐨勫�硷紝寰�杩旇闂彈淇濇姢鏁版嵁鏃堕渶瑕佽鍊笺�傚湪鑷墭绠$幆澧冧腑锛岄粯璁ゅ�煎彇鑷� IAppBuilder.Properties["owin.AppName"]銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.Create(System.String[])">
+      <summary>杩斿洖鎻愪緵绋嬪簭鐨� IDataProtection 鐨勬柊瀹炰緥銆�</summary>
+      <returns>鏁版嵁淇濇姢鏈嶅姟鐨勫疄渚�</returns>
+      <param name="purposes">闄勫姞鐨勭喌锛岀敤浜庣‘淇濆彧閽堝姝e綋鐩殑鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider">
+      <summary> 鐢ㄤ簬鍒涘缓 IDataProtection 瀹炰緥鐨勫伐鍘傘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider.Create(System.String[])">
+      <summary> 杩斿洖鎻愪緵绋嬪簭鐨� IDataProtection 鐨勬柊瀹炰緥銆�</summary>
+      <returns>鏁版嵁淇濇姢鏈嶅姟鐨勫疄渚嬨��</returns>
+      <param name="purposes">闄勫姞鐨勭喌锛岀敤浜庣‘淇濆彧閽堝姝e綋鐩殑鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtector">
+      <summary> 鐢ㄤ簬淇濇姢鍜屽彇娑堜繚鎶ゆ暟鎹殑鏈嶅姟銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Protect(System.Byte[])">
+      <summary> 璋冪敤璇ラ」鍙互淇濇姢鐢ㄦ埛鏁版嵁銆�</summary>
+      <param name="userData">蹇呴』淇濇姢鐨勫師濮嬫暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Unprotect(System.Byte[])">
+      <summary> 璋冪敤璇ラ」鍙互鍙栨秷淇濇姢鐢ㄦ埛鏁版嵁銆�</summary>
+      <param name="protectedData">瀵圭浉鍚岀殑 IDataProtection 鏈嶅姟璋冪敤 Protect 鍚庤繑鍥炵殑瀛楄妭鏁扮粍銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler">
+      <summary> 澶у鏁拌韩浠介獙璇佷腑闂翠欢鎵ц鐨勫熀浜庤姹傜殑宸ヤ綔鐨勫熀绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseChallengeAsync">
+      <summary>濡傛灉鐩稿叧韬唤楠岃瘉鏂规灏嗚韩浠介獙璇佷氦浜掍綔涓哄叾璇锋眰娴佺殑涓�閮ㄥ垎澶勭悊锛屽垯閲嶅啓姝ゆ柟娉曚互澶勭悊 401 璐ㄨ闂銆傦紙渚嬪娣诲姞鍝嶅簲鏍囧ご锛屾垨灏� 401 缁撴灉鏇存敼涓虹櫥褰曢〉鐨� 302 鎴栧閮ㄧ櫥褰曚綅缃�傦級</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseCoreAsync">
+      <summary>鍙互鐢卞鐞嗙▼搴忛噸鍐欑殑鏍稿績鏂规硶銆傞粯璁よ涓烘槸璋冪敤涓や釜鍏叡鍝嶅簲娲诲姩锛屼竴涓敤浜庡鐞嗙櫥褰�/娉ㄩ攢闂锛屽彟涓�涓敤浜庡鐞� 401 璐ㄨ銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseGrantAsync">
+      <summary>濡傛灉鐩稿叧韬唤楠岃瘉鏂规灏嗘巿鏉�/鍚婇攢浣滀负鍏惰姹傛祦鐨勪竴閮ㄥ垎澶勭悊锛屽垯閲嶅啓姝ゆ柟娉曚互澶勭悊鐧诲綍/娉ㄩ攢闂銆傦紙渚嬪璁剧疆/鍒犻櫎 Cookie锛�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync">
+      <summary>閽堝褰撳墠璇锋眰鏈�澶氭墽琛屼竴娆� AuthenticateCore 涓殑韬唤楠岃瘉閫昏緫锛屽苟杩斿洖缁撴灉銆傚娆¤皟鐢� Authenticate 灏嗗缁堣繑鍥炲師濮嬪�笺�傚簲濮嬬粓璋冪敤姝ゆ柟娉曪紝鑰屼笉瑕佺洿鎺ヨ皟鐢� AuthenticateCore銆�</summary>
+      <returns>鐢辫韩浠介獙璇侀�昏緫鎻愪緵鐨勭エ璇佹暟鎹�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateCoreAsync">
+      <summary>蹇呴』鐢卞鐞嗙▼搴忔彁渚涚殑鏍稿績韬唤楠岃瘉閫昏緫銆傞拡瀵规瘡涓姹傛渶澶氳皟鐢ㄤ竴娆°�備笉瑕佺洿鎺ヨ皟鐢紝鑰屽簲璋冪敤鍖呰 Authenticate 鏂规硶銆�</summary>
+      <returns>鐢辫韩浠介獙璇侀�昏緫鎻愪緵鐨勭エ璇佹暟鎹�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.BaseInitializeAsync(Microsoft.Owin.Security.AuthenticationOptions,Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Context"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.GenerateCorrelationId(Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Helper"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InitializeCoreAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InvokeAsync">
+      <summary>鍦ㄥ垵濮嬪寲涔嬪悗鐢卞叕鍏变唬鐮佽皟鐢ㄤ竴娆°�傚鏋滆韩浠介獙璇佷腑闂翠欢鐩存帴鍝嶅簲宸茬煡鐨勪笓鐢ㄨ矾寰勶紝鍒欏繀椤婚噸鍐欐铏氭嫙璺緞锛屽皢璇锋眰璺緞涓庡叾宸茬煡璺緞杩涜姣旇緝锛屾彁渚涢�傚綋鐨勫搷搴斾俊鎭紝骞跺仠姝㈣繘涓�姝ュ鐞嗐��</summary>
+      <returns>鑻ヨ繑鍥� false锛屽垯鍏叡浠g爜灏嗘寜椤哄簭璋冪敤涓嬩竴涓腑闂翠欢銆傝嫢杩斿洖 true锛屽垯鍏叡浠g爜灏嗗紑濮嬪紓姝ュ畬鎴愯繃绋嬶紝鑰屼笉璋冪敤涓棿浠剁閬撶殑鍏朵綑閮ㄥ垎銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.RequestPathBase"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Response"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.TeardownCoreAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ValidateCorrelationId(Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Logging.ILogger)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1">
+      <summary>澶у鏁拌韩浠介獙璇佷腑闂翠欢鎵ц鐨勫熀浜庤姹傜殑宸ヤ綔鐨勫熀绫汇��</summary>
+      <typeparam name="TOptions">鎸囧畾 AuthenticationOptions 灞炴�х殑绫诲瀷</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.Options"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1">
+      <summary>琛ㄧず韬唤楠岃瘉涓棿浠躲��</summary>
+      <typeparam name="TOptions">韬唤楠岃瘉閫夐」鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.#ctor(Microsoft.Owin.OwinMiddleware,`0)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="next">涓嬩竴涓� OWIN 涓棿浠躲��</param>
+      <param name="options">韬唤楠岃瘉閫夐」銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.CreateHandler">
+      <summary>鍒涘缓韬唤楠岃瘉澶勭悊绋嬪簭銆�</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.Options">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇侀�夐」銆�</summary>
+      <returns>瀹屾垚韬唤楠岃瘉鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.ISecureDataFormat{Microsoft.Owin.Security.AuthenticationTicket},Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.SerializeTicket"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.SetToken(System.String)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.Ticket"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.Token"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.#ctor"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.Create(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.CreateAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnCreate"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnCreateAsync"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnReceive"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnReceiveAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.Receive(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.ReceiveAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.ISecureDataFormat{Microsoft.Owin.Security.AuthenticationTicket},System.String)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.DeserializeTicket(System.String)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.SetTicket(Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.Ticket"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.Token"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.Create(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.CreateAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.Receive(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.ReceiveAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.SecurityHelper">
+      <summary>鍦ㄥ疄鐜拌韩浠介獙璇佷腑闂翠欢鏃朵娇鐢ㄧ殑甯姪鍣ㄤ唬鐮�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.#ctor(Microsoft.Owin.IOwinContext)">
+      <summary>鍦ㄥ疄鐜拌韩浠介獙璇佷腑闂翠欢鏃朵娇鐢ㄧ殑甯姪鍣ㄤ唬鐮�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.AddUserIdentity(System.Security.Principal.IIdentity)">
+      <summary>灏嗕竴涓檮鍔犵殑 ClaimsIdentity 娣诲姞鍒扳�渟erver.User鈥濈幆澧冮敭涓殑 ClaimsPrincipal</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.Equals(Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.Equals(System.Object)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.GetHashCode"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲璐ㄨ璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+      <param name="authenticationMode">涓棿浠跺湪杩愯鏃舵墍澶勭殑韬唤楠岃瘉妯″紡</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignIn(System.String)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲鐧诲綍璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignOut(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲娉ㄩ攢璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+      <param name="authenticationMode">涓棿浠跺湪杩愯鏃舵墍澶勭殑韬唤楠岃瘉妯″紡</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.op_Equality(Microsoft.Owin.Security.Infrastructure.SecurityHelper,Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.op_Inequality(Microsoft.Owin.Security.Infrastructure.SecurityHelper,Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.Exception"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.BaseNotification`1">
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.#ctor(Microsoft.Owin.IOwinContext,`0)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandledResponse"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandleResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗗苟杩斿洖鍒板鎴风銆傝皟鐢ㄦ柟璐熻矗鐢熸垚瀹屾暣鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.Skipped"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.SkipToNextMiddleware">
+      <summary>鍋滄澶勭悊褰撳墠涓棿浠朵腑鐨勮姹傚苟灏嗘帶鍒舵潈浼犻�掔粰涓嬩竴涓」銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.State"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.NotificationResultState"></member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Continue">
+      <summary>缁х画姝e父澶勭悊銆�</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.HandledResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗐��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped">
+      <summary>鍋滄澶勭悊褰撳墠涓棿浠朵腑鐨勮姹傚苟灏嗘帶鍒舵潈浼犻�掔粰涓嬩竴涓」銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandledResponse"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandleResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗗苟杩斿洖鍒板鎴风銆傝皟鐢ㄦ柟璐熻矗鐢熸垚瀹屾暣鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.ProtocolMessage"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.State"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket">
+      <summary>鑾峰彇鎴栬缃� <see cref="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket" /></summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.ProtocolMessage">
+      <summary>鑾峰彇鎴栬缃崗璁秷鎭�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.BaseContext">
+      <summary>琛ㄧず鍩轰笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.BaseContext.#ctor(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.OwinContext"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.Response"></member>
+    <member name="T:Microsoft.Owin.Security.Provider.BaseContext`1">
+      <summary>鐢ㄤ簬鐗瑰畾浜嬩欢涓婁笅鏂囩殑鍩虹被</summary>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.BaseContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Options"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.OwinContext"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Response"></member>
+    <member name="T:Microsoft.Owin.Security.Provider.EndpointContext">
+      <summary>琛ㄧず缁堢粨鐐逛笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext.#ctor(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.EndpointContext.IsRequestCompleted">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘涓婁笅鏂囩殑璇锋眰鏄惁宸插畬鎴愩��</summary>
+      <returns>濡傛灉姝や笂涓嬫枃鐨勮姹傚凡瀹屾垚锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext.RequestCompleted">
+      <summary>鎸囩ず涓婁笅鏂囩殑宸插畬鎴愯姹傘��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.EndpointContext`1">
+      <summary>鐢ㄤ簬鐗瑰畾浜嬩欢涓婁笅鏂囩殑鍩虹被</summary>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)">
+      <summary>鍒涘缓姝や笂涓嬫枃鐨勫疄渚�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.EndpointContext`1.IsRequestCompleted">
+      <summary>濡傛灉涓嶅簲鐢卞叾浠栫粍浠惰繘涓�姝ュ鐞嗚姹傦紝鍒欒繑鍥� True銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.RequestCompleted">
+      <summary>闃绘鍏朵粬缁勪欢杩涗竴姝ュ鐞嗚姹傘�傝皟鐢ㄥ悗锛孖sRequestCompleted 灏嗕负 true銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.ReturnEndpointContext">
+      <summary>琛ㄧず杩斿洖缁堢粨鐐逛笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.ReturnEndpointContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.Identity">
+      <summary>鑾峰彇鎴栬缃涓婁笅鏂囩殑鏍囪瘑銆�</summary>
+      <returns>姝や笂涓嬫枃鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.Properties"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.RedirectUri">
+      <summary>鑾峰彇鎴栬缃繑鍥炴涓婁笅鏂囨椂浣跨敤鐨� URI銆�</summary>
+      <returns>杩斿洖姝や笂涓嬫枃鏃朵娇鐢ㄧ殑 URI銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.SignInAsAuthenticationType">
+      <summary>鑾峰彇鎴栬缃綔涓鸿韩浠介獙璇佺被鍨嬬櫥褰曠殑涓婁笅鏂囥��</summary>
+      <returns>浣滀负韬唤楠岃瘉绫诲瀷鐧诲綍鐨勪笂涓嬫枃銆�</returns>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.Owin.Security.4.0.0/lib/net451/Microsoft.Owin.Security.XML b/packages/Microsoft.Owin.Security.4.0.0/lib/net451/Microsoft.Owin.Security.XML
new file mode 100644
index 0000000..fb50684
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.4.0.0/lib/net451/Microsoft.Owin.Security.XML
@@ -0,0 +1,494 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Owin.Security</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Owin.Security.AppBuilderSecurityExtensions">
+            <summary>
+            Provides extensions methods for app.Property values that are only needed by implementations of authentication middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(Owin.IAppBuilder)">
+            <summary>
+            Returns the previously set AuthenticationType that external sign in middleware should use when the
+            browser navigates back to their return url.
+            </summary>
+            <param name="app">App builder passed to the application startup code</param>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.SetDefaultSignInAsAuthenticationType(Owin.IAppBuilder,System.String)">
+            <summary>
+            Called by middleware to change the name of the AuthenticationType that external middleware should use
+            when the browser navigates back to their return url.
+            </summary>
+            <param name="app">App builder passed to the application startup code</param>
+            <param name="authenticationType">AuthenticationType that external middleware should sign in as.</param>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationMode">
+            <summary>
+            Controls the behavior of authentication middleware
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.AuthenticationMode.Active">
+            <summary>
+            In Active mode the authentication middleware will alter the user identity as the request arrives, and
+            will also alter a plain 401 as the response leaves.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.AuthenticationMode.Passive">
+            <summary>
+            In Passive mode the authentication middleware will only provide user identity when asked, and will only
+            alter 401 responses where the authentication type named in the extra challenge data.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationOptions">
+            <summary>
+            Base Options for all authentication middleware
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationOptions.#ctor(System.String)">
+            <summary>
+            Initialize properties of AuthenticationOptions base class
+            </summary>
+            <param name="authenticationType">Assigned to the AuthenticationType property</param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationType">
+            <summary>
+            The AuthenticationType in the options corresponds to the IIdentity AuthenticationType property. A different
+            value may be assigned in order to use the same authentication middleware type more than once in a pipeline.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationMode">
+            <summary>
+            If Active the authentication middleware alter the request user coming in and
+            alter 401 Unauthorized responses going out. If Passive the authentication middleware will only provide
+            identity and alter responses when explicitly indicated by the AuthenticationType.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationOptions.Description">
+            <summary>
+            Additional information about the authentication type which is made available to the application.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Constants">
+            <summary>
+            String constants used only by the Security assembly
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Constants.DefaultSignInAsAuthenticationType">
+            <summary>
+            Used by middleware extension methods to coordinate the default value Options property SignInAsAuthenticationType
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider">
+            <summary>
+            Factory used to create IDataProtection instances
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtector">
+            <summary>
+            Service used to protect and unprotect data
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Protect(System.Byte[])">
+            <summary>
+            Called to protect user data.
+            </summary>
+            <param name="userData">The original data that must be protected</param>
+            <returns>A different byte array that may be unprotected or altered only by software that has access to 
+            the an identical IDataProtection service.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Unprotect(System.Byte[])">
+            <summary>
+            Called to unprotect user data
+            </summary>
+            <param name="protectedData">The byte array returned by a call to Protect on an identical IDataProtection service.</param>
+            <returns>The byte array identical to the original userData passed to Protect.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1">
+            <summary>
+            Base class for the per-request work performed by most authentication middleware.
+            </summary>
+            <typeparam name="TOptions">Specifies which type for of AuthenticationOptions property</typeparam>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler">
+            <summary>
+            Base class for the per-request work performed by most authentication middleware.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.TeardownAsync">
+            <summary>
+            Called once per request after Initialize and Invoke. 
+            </summary>
+            <returns>async completion</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InvokeAsync">
+            <summary>
+            Called once by common code after initialization. If an authentication middleware responds directly to
+            specifically known paths it must override this virtual, compare the request path to it's known paths, 
+            provide any response information as appropriate, and true to stop further processing.
+            </summary>
+            <returns>Returning false will cause the common code to call the next middleware in line. Returning true will
+            cause the common code to begin the async completion journey without calling the rest of the middleware
+            pipeline.</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync">
+            <summary>
+            Causes the authentication logic in AuthenticateCore to be performed for the current request 
+            at most once and returns the results. Calling Authenticate more than once will always return 
+            the original value. 
+            
+            This method should always be called instead of calling AuthenticateCore directly.
+            </summary>
+            <returns>The ticket data provided by the authentication logic</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateCoreAsync">
+            <summary>
+            The core authentication logic which must be provided by the handler. Will be invoked at most
+            once per request. Do not call directly, call the wrapping Authenticate method instead.
+            </summary>
+            <returns>The ticket data provided by the authentication logic</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseAsync">
+            <summary>
+            Causes the ApplyResponseCore to be invoked at most once per request. This method will be
+            invoked either earlier, when the response headers are sent as a result of a response write or flush,
+            or later, as the last step when the original async call to the middleware is returning.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseCoreAsync">
+            <summary>
+            Core method that may be overridden by handler. The default behavior is to call two common response 
+            activities, one that deals with sign-in/sign-out concerns, and a second to deal with 401 challenges.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseGrantAsync">
+            <summary>
+            Override this method to dela with sign-in/sign-out concerns, if an authentication scheme in question
+            deals with grant/revoke as part of it's request flow. (like setting/deleting cookies)
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseChallengeAsync">
+            <summary>
+            Override this method to deal with 401 challenge concerns, if an authentication scheme in question
+            deals an authentication interaction as part of it's request flow. (like adding a response header, or
+            changing the 401 result to 302 of a login page or external sign-in location.)
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.Initialize(`0,Microsoft.Owin.IOwinContext)">
+            <summary>
+            Initialize is called once per request to contextualize this instance with appropriate state.
+            </summary>
+            <param name="options">The original options passed by the application control behavior</param>
+            <param name="context">The utility object to observe the current request and response</param>
+            <returns>async completion</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.AuthenticationTicket">
+            <summary>
+            Contains user identity information as well as additional authentication state.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.AuthenticationTicket.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationTicket"/> class
+            </summary>
+            <param name="identity"></param>
+            <param name="properties"></param>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Identity">
+            <summary>
+            Gets the authenticated user identity.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Properties">
+            <summary>
+            Additional state values for the authentication session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.ICertificateValidator">
+            <summary>
+            Interface for providing pinned certificate validation, which checks HTTPS 
+            communication against a known good list of certificates to protect against 
+            compromised or rogue CAs issuing certificates for hosts without the 
+            knowledge of the host owner.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.ICertificateValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateThumbprintValidator">
+            <summary>
+            Provides pinned certificate validation based on the certificate thumbprint.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateThumbprintValidator"/> class.
+            </summary>
+            <param name="validThumbprints">A set of thumbprints which are valid for an HTTPS request.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Validates that the certificate thumbprints in the signing chain match at least one whitelisted thumbprint.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Provider.BaseContext`1">
+            <summary>
+            Base class used for certain event contexts
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandleResponse">
+            <summary>
+            Discontinue all processing for this request and return to the client.
+            The caller is responsible for generating the full response.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.SkipToNextMiddleware">
+            <summary>
+            Discontinue processing the request in the current middleware and pass control to the next one.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Continue">
+            <summary>
+            Continue with normal processing.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped">
+            <summary>
+            Discontinue processing the request in the current middleware and pass control to the next one.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.HandledResponse">
+            <summary>
+            Discontinue all processing for this request.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandleResponse">
+            <summary>
+            Discontinue all processing for this request and return to the client.
+            The caller is responsible for generating the full response.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket">
+            <summary>
+            Gets or set the <see cref="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket"/>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.ProtocolMessage">
+            <summary>
+            Gets or sets the Protocol message
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider">
+            <summary>
+            Used to provide the data protection services that are derived from the Data Protection API. It is the best choice of
+            data protection when you application is not hosted by ASP.NET and all processes are running as the same domain identity. 
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor">
+            <summary>
+            Initializes a new DpapiDataProtectionProvider with a random application
+            name. This is only useful to protect data for the duration of the
+            current application execution.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor(System.String)">
+            <summary>
+            Initializes a new DpapiDataProtectionProvider which uses the given
+            appName as part of the protection algorithm
+            </summary>
+            <param name="appName">A user provided value needed to round-trip secured
+            data. The default value comes from the IAppBuilder.Properties["owin.AppName"] 
+            when self-hosted.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.Create(System.String[])">
+            <summary>
+            Returns a new instance of IDataProtection for the provider.
+            </summary>
+            <param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
+            <returns>An instance of a data protection service</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Infrastructure.SecurityHelper">
+            <summary>
+            Helper code used when implementing authentication middleware
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.#ctor(Microsoft.Owin.IOwinContext)">
+            <summary>
+            Helper code used when implementing authentication middleware
+            </summary>
+            <param name="context"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.AddUserIdentity(System.Security.Principal.IIdentity)">
+            <summary>
+            Add an additional ClaimsIdentity to the ClaimsPrincipal in the "server.User" environment key
+            </summary>
+            <param name="identity"></param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+            <summary>
+            Find response challenge details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <param name="authenticationMode">The authentication mode the middleware is running under</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignIn(System.String)">
+            <summary>
+            Find response sign-in details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignOut(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+            <summary>
+            Find response sign-out details for a specific authentication middleware
+            </summary>
+            <param name="authenticationType">The authentication type to look for</param>
+            <param name="authenticationMode">The authentication mode the middleware is running under</param>
+            <returns>The information instructing the middleware how it should behave</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Provider.EndpointContext`1">
+            <summary>
+            Base class used for certain event contexts
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)">
+            <summary>
+            Creates an instance of this context
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.RequestCompleted">
+            <summary>
+            Prevents the request from being processed further by other components. 
+            IsRequestCompleted becomes true after calling.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Provider.EndpointContext`1.IsRequestCompleted">
+            <summary>
+            True if the request should not be processed further by other components.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_AuthenticationTokenDoesNotProvideSyncMethods">
+            <summary>
+              Looks up a localized string similar to The AuthenticationTokenProvider&apos;s required synchronous events have not been registered..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_DefaultDpapiRequiresAppNameKey">
+            <summary>
+              Looks up a localized string similar to The default data protection provider may only be used when the IAppBuilder.Properties contains an appropriate &apos;host.AppName&apos; key..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_MissingDefaultSignInAsAuthenticationType">
+            <summary>
+              Looks up a localized string similar to A default value for SignInAsAuthenticationType was not found in IAppBuilder Properties. This can happen if your authentication middleware are added in the wrong order, or if one is missing..
+            </summary>
+        </member>
+        <member name="P:Microsoft.Owin.Security.Resources.Exception_UnhookAuthenticationStateType">
+            <summary>
+              Looks up a localized string similar to The state passed to UnhookAuthentication may only be the return value from HookAuthentication..
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator">
+            <summary>
+            Provides pinned certificate validation based on the subject key identifier of the certificate.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator"/> class.
+            </summary>
+            <param name="validSubjectKeyIdentifiers">A set of subject key identifiers which are valid for an HTTPS request.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="T:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm">
+            <summary>
+            The algorithm used to generate the subject public key information blob hashes.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator">
+            <summary>
+            Implements a cert pinning validator passed on 
+            http://datatracker.ietf.org/doc/draft-ietf-websec-key-pinning/?include_text=1
+            </summary>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.#ctor(System.Collections.Generic.IEnumerable{System.String},Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator"/> class.
+            </summary>
+            <param name="validBase64EncodedSubjectPublicKeyInfoHashes">A collection of valid base64 encoded hashes of the certificate public key information blob.</param>
+            <param name="algorithm">The algorithm used to generate the hashes.</param>
+        </member>
+        <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+            <summary>
+            Validates at least one SPKI hash is known.
+            </summary>
+            <param name="sender">An object that contains state information for this validation.</param>
+            <param name="certificate">The certificate used to authenticate the remote party.</param>
+            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
+            <param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
+            <returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
+        </member>
+        <member name="M:Microsoft.Win32.NativeMethods.CryptEncodeObject(System.UInt32,System.IntPtr,Microsoft.Win32.NativeMethods.CERT_PUBLIC_KEY_INFO@,System.Byte[],System.UInt32@)">
+            <summary>
+            Encodes a structure of the type indicated by the value of the lpszStructType parameter.
+            </summary>
+            <param name="dwCertEncodingType">Type of encoding used.</param>
+            <param name="lpszStructType">The high-order word is zero, the low-order word specifies the integer identifier for the type of the specified structure so
+            we can use the constants in http://msdn.microsoft.com/en-us/library/windows/desktop/aa378145%28v=vs.85%29.aspx</param>
+            <param name="pvStructInfo">A pointer to the structure to be encoded.</param>
+            <param name="pbEncoded">A pointer to a buffer to receive the encoded structure. This parameter can be NULL to retrieve the size of this information for memory allocation purposes.</param>
+            <param name="pcbEncoded">A pointer to a DWORD variable that contains the size, in bytes, of the buffer pointed to by the pbEncoded parameter.</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>
diff --git a/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/.signature.p7s b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/.signature.p7s
new file mode 100644
index 0000000..d293047
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/Microsoft.Owin.Security.zh-Hans.4.0.0.nupkg b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/Microsoft.Owin.Security.zh-Hans.4.0.0.nupkg
new file mode 100644
index 0000000..825b228
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/Microsoft.Owin.Security.zh-Hans.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml
new file mode 100644
index 0000000..d6fef7f
--- /dev/null
+++ b/packages/Microsoft.Owin.Security.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.Security.xml
@@ -0,0 +1,549 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin.Security</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.Security.AppBuilderSecurityExtensions">
+      <summary>鎻愪緵鍙湁韬唤楠岃瘉涓棿浠跺疄鐜伴渶瑕佺殑 app.Property 鍊肩殑鎵╁睍鏂规硶銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(Owin.IAppBuilder)">
+      <summary>杩斿洖鍓嶉潰璁剧疆鐨勩�佸閮ㄧ櫥褰曚腑闂翠欢鍦ㄦ祻瑙堝櫒瀵艰埅鍥炶繑鍥� URL 鏃跺簲浣跨敤鐨� AuthenticationType銆�</summary>
+      <param name="app">浼犻�掔粰搴旂敤绋嬪簭鍚姩浠g爜鐨勫簲鐢ㄧ▼搴忕敓鎴愬櫒</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.SetDefaultSignInAsAuthenticationType(Owin.IAppBuilder,System.String)">
+      <summary>鐢变腑闂翠欢璋冪敤锛岀敤浜庢洿鏀瑰閮ㄧ櫥褰曚腑闂翠欢鍦ㄦ祻瑙堝櫒瀵艰埅鍥炶繑鍥� URL 鏃跺簲浣跨敤鐨� AuthenticationType 鐨勫悕绉般��</summary>
+      <param name="app">浼犻�掔粰搴旂敤绋嬪簭鍚姩浠g爜鐨勫簲鐢ㄧ▼搴忕敓鎴愬櫒</param>
+      <param name="authenticationType">澶栭儴涓棿浠剁櫥褰曟椂搴斾娇鐢ㄧ殑 AuthenticationType銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationMode">
+      <summary>鎺у埗韬唤楠岃瘉涓棿浠剁殑琛屼负</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.AuthenticationMode.Active">
+      <summary>鍦ㄤ富鍔ㄦā寮忎笅锛岃韩浠介獙璇佷腑闂翠欢灏嗗湪璇锋眰鍒拌揪鏃舵洿鏀圭敤鎴锋爣璇嗭紝骞跺湪鍝嶅簲绂诲紑鏃舵洿鏀� 401 绾枃鏈��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.AuthenticationMode.Passive">
+      <summary>鍦ㄨ鍔ㄦā寮忎笅锛岃韩浠介獙璇佷腑闂翠欢鍙湪鎻愮ず鏃舵彁渚涚敤鎴锋爣璇嗭紝骞朵笖鍙細鏇存敼鍦ㄩ檮鍔犺川璇㈡暟鎹腑鎸囧畾浜嗚韩浠介獙璇佺被鍨嬬殑 401 鍝嶅簲銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationOptions">
+      <summary>鎵�鏈夎韩浠介獙璇佷腑闂翠欢鐨勫熀鏈�夐」</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationOptions.#ctor(System.String)">
+      <summary>鍒濆鍖� AuthenticationOptions 鍩虹被鐨勫睘鎬�</summary>
+      <param name="authenticationType">鍒嗛厤缁� AuthenticationType 灞炴��</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationMode">
+      <summary>濡傛灉涓� Active锛屽垯韬唤楠岃瘉涓棿浠跺皢鏇存敼浼犲叆鐨勮姹傜敤鎴凤紝骞舵洿鏀逛紶鍑虹殑 401 鏈巿鏉冨搷搴斻�傚鏋滀负 Passive锛屽垯浠呭綋 AuthenticationType 宸茶繘琛屾樉寮忔寚瀹氭椂锛岃韩浠介獙璇佷腑闂翠欢鎵嶆彁渚涙爣璇嗗苟鏇存敼鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationType">
+      <summary>閫夐」涓殑 AuthenticationType 瀵瑰簲浜� IIdentity AuthenticationType 灞炴�с�傚彲浠ュ垎閰嶅叾浠栧�硷紝浠ヤ究鍦ㄤ竴涓閬撲腑澶氭浣跨敤鍚屼竴涓韩浠介獙璇佷腑闂翠欢绫诲瀷銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationOptions.Description">
+      <summary>涓哄簲鐢ㄧ▼搴忔彁渚涚殑鏈夊叧韬唤楠岃瘉绫诲瀷鐨勯檮鍔犱俊鎭��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationTicket">
+      <summary>鍖呭惈鐢ㄦ埛鏍囪瘑淇℃伅浠ュ強闄勫姞鐨勮韩浠介獙璇佺姸鎬併��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationTicket.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationTicket" /> 绫荤殑鏂板疄渚�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Identity">
+      <summary>鑾峰彇宸茬粡杩囪韩浠介獙璇佺殑鐢ㄦ埛鏍囪瘑銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationTicket.Properties">
+      <summary>韬唤楠岃瘉浼氳瘽鐨勯檮鍔犵姸鎬佸�笺��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator">
+      <summary>鏍规嵁璇佷功鐨勪娇鐢ㄨ�呭瘑閽ユ爣璇嗙鎻愪緵鍥哄畾璇佷功楠岃瘉銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validSubjectKeyIdentifiers">涓�缁勫 HTTPS 璇锋眰鏈夋晥鐨勪娇鐢ㄨ�呭瘑閽ユ爣璇嗙銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鐢ㄤ簬韬唤楠岃瘉鐨勮繙绋嬪畨鍏ㄥ鎺ュ瓧灞� (SSL) 璇佷功銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator">
+      <summary>瀹炵幇 http://datatracker.ietf.org/doc/draft-ietf-websec-key-pinning/?include_text=1 涓婁紶閫掔殑璇佷功鍥哄畾楠岃瘉绋嬪簭</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.#ctor(System.Collections.Generic.IEnumerable{System.String},Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validBase64EncodedSubjectPublicKeyInfoHashes">璇佷功鍏挜淇℃伅 Blob 鐨勬湁鏁� base64 缂栫爜鍝堝笇闆嗗悎銆�</param>
+      <param name="algorithm">鐢ㄤ簬鐢熸垚鍝堝笇鐨勭畻娉曘��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鏄惁鑷冲皯鏈変竴涓凡鐭ョ殑 SPKI 鍝堝笇銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.CertificateThumbprintValidator">
+      <summary>鍩轰簬璇佷功鎸囩汗鎻愪緵鍥哄畾璇佷功楠岃瘉銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.CertificateThumbprintValidator" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="validThumbprints">瀵� HTTPS 璇锋眰鏈夋晥鐨勪竴缁勬寚绾广��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉绛惧悕閾句腑鐨勮瘉涔︽寚绾规槸鍚﹁嚦灏戜笌鏍稿噯娓呭崟涓殑涓�涓寚绾圭浉鍖归厤銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.ICertificateValidator">
+      <summary>鐢ㄤ簬鎻愪緵鍥哄畾璇佷功楠岃瘉鐨勬帴鍙o紝璇ラ獙璇佹牴鎹凡鐭ヨ壇濂界殑璇佷功鍒楄〃妫�鏌� HTTPS 閫氫俊锛岄槻姝笉瀹夊叏鐨勬垨鎭舵剰鐨� CA 涓轰富鏈烘墍鏈夎�呮湭鐭ョ殑涓绘満棰佸彂璇佷功銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ICertificateValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
+      <summary>楠岃瘉鐢ㄤ簬韬唤楠岃瘉鐨勮繙绋嬪畨鍏ㄥ鎺ュ瓧灞� (SSL) 璇佷功銆�</summary>
+      <returns>涓�涓竷灏斿�硷紝纭畾鏄惁鎺ュ彈浣跨敤鎸囧畾鐨勮瘉涔﹁繘琛岃韩浠介獙璇併��</returns>
+      <param name="sender">鍖呭惈姝ら獙璇佺殑鐘舵�佷俊鎭殑瀵硅薄銆�</param>
+      <param name="certificate">鐢ㄤ簬瀵硅繙绋嬫柟杩涜韬唤楠岃瘉鐨勮瘉涔︺��</param>
+      <param name="chain">涓庤繙绋嬭瘉涔﹀叧鑱旂殑璇佷功棰佸彂鏈烘瀯閾俱��</param>
+      <param name="sslPolicyErrors">涓庤繙绋嬭瘉涔﹀叧鑱旂殑涓�涓垨澶氫釜閿欒銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.ISecureDataFormat`1">
+      <summary>琛ㄧず瑕佷繚鎶ょ殑鏁版嵁銆�</summary>
+      <typeparam name="TData">娉涘瀷绫诲瀷鏁版嵁銆�</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ISecureDataFormat`1.Protect(`0)">
+      <summary>淇濇姢鏁版嵁锛屼娇鍏朵笉鑳借鏍煎紡鍖栥��</summary>
+      <returns>瑕佷繚鎶ょ殑鏁版嵁銆�</returns>
+      <param name="data">鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.ISecureDataFormat`1.Unprotect(System.String)">
+      <summary>瑙e瘑鎸囧畾鏂囨湰涓殑鏁版嵁銆�</summary>
+      <returns>瑕佽В瀵嗙殑鏁版嵁銆�</returns>
+      <param name="protectedText">鍙椾繚鎶ょ殑鏂囨湰銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm">
+      <summary>鐢ㄤ簬鐢熸垚浣跨敤鑰呭叕閽ヤ俊鎭� blob 鍝堝笇鐨勭畻娉曘��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm.Sha1">
+      <summary />
+    </member>
+    <member name="F:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm.Sha256">
+      <summary />
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.PropertiesDataFormat"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.PropertiesDataFormat.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtector)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1">
+      <typeparam name="TData"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.#ctor(Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer{`0},Microsoft.Owin.Security.DataProtection.IDataProtector,Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.Protect(`0)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.SecureDataFormat`1.Unprotect(System.String)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.TicketDataFormat"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.TicketDataFormat.#ctor(Microsoft.Owin.Security.DataProtection.IDataProtector)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder">
+      <summary>琛ㄧず base64 鏂囨湰鏍煎紡缂栫爜鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64TextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负 base64 鏍煎紡鐨勫瓧绗︿覆銆�</summary>
+      <returns>宸茶浆鎹负 base64 鏍煎紡鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder">
+      <summary>琛ㄧず Base64Url 鏂囨湰鏍煎紡缂栫爜鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负 Base64Url 鏍煎紡鐨勫瓧绗︿覆銆�</summary>
+      <returns>宸茶浆鎹负 Base64Url 鏍煎紡鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder">
+      <summary>琛ㄧず鏂囨湰缂栫爜鍣ㄧ殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder.Decode(System.String)">
+      <summary>涓烘寚瀹氱殑鏂囨湰瑙g爜銆�</summary>
+      <returns>琛ㄧず瑙g爜鏁版嵁鐨� <see cref="T:System.Byte" />銆�</returns>
+      <param name="text">瑕佽В鐮佺殑鏂囨湰銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Encoder.ITextEncoder.Encode(System.Byte[])">
+      <summary>灏嗘暟鎹浆鎹负瀛楃涓层��</summary>
+      <returns>杞崲鐨勬暟鎹瓧绗︿覆銆�</returns>
+      <param name="data">瑕佽浆鎹㈢殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings">
+      <summary>琛ㄧず鏂囨湰缂栫爜銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings.Base64">
+      <summary>鑾峰彇 Base64 鏂囨湰缂栫爜鍣ㄣ��</summary>
+      <returns>Base64 鏂囨湰缂栫爜鍣ㄣ��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Encoder.TextEncodings.Base64Url">
+      <summary>鑾峰彇 Base64Url 鏂囨湰缂栫爜鍣ㄣ��</summary>
+      <returns>Base64Url 鏂囨湰缂栫爜鍣ㄣ��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers">
+      <summary>鎻愪緵鏁版嵁搴忓垪鍖栫▼搴忋��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers.Properties"></member>
+    <member name="P:Microsoft.Owin.Security.DataHandler.Serializer.DataSerializers.Ticket">
+      <summary>鑾峰彇鎴栬缃エ璇佹暟鎹簭鍒楀寲绋嬪簭銆�</summary>
+      <returns>绁ㄨ瘉鏁版嵁搴忓垪鍖栫▼搴忋��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1">
+      <summary>琛ㄧず鏁版嵁搴忓垪鍖栫▼搴忕殑鎺ュ彛銆�</summary>
+      <typeparam name="TModel">鏁版嵁妯″瀷鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1.Deserialize(System.Byte[])">
+      <summary>鍙嶅簭鍒楀寲鎸囧畾鐨勬暟鎹��</summary>
+      <param name="data">瑕佸弽搴忓垪鍖栫殑鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.IDataSerializer`1.Serialize(`0)">
+      <summary>浣跨敤缁欏畾鐨勬ā鍨嬪簭鍒楀寲鏁版嵁銆�</summary>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.#ctor"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Deserialize(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Read(System.IO.BinaryReader)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Serialize(Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.PropertiesSerializer.Write(System.IO.BinaryWriter,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="T:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer">
+      <summary>琛ㄧず绁ㄨ瘉搴忓垪鍖栫▼搴忋��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Deserialize(System.Byte[])">
+      <summary>鍙嶅簭鍒楀寲绁ㄨ瘉鏁版嵁銆�</summary>
+      <returns>姝e湪鍙嶅簭鍒楀寲鐨勬暟鎹��</returns>
+      <param name="data">瑕佸弽搴忓垪鍖栫殑鏁版嵁銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Read(System.IO.BinaryReader)">
+      <summary>浠庤鍙栧櫒涓鍙栨寚瀹氱殑鏁版嵁銆�</summary>
+      <returns>姝e湪璇诲彇鐨勬暟鎹��</returns>
+      <param name="reader">瑕佷粠涓鍙栫殑璇诲彇鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Serialize(Microsoft.Owin.Security.AuthenticationTicket)">
+      <summary>浣跨敤缁欏畾鐨勬ā鍨嬪簭鍒楀寲鏁版嵁銆�</summary>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataHandler.Serializer.TicketSerializer.Write(System.IO.BinaryWriter,Microsoft.Owin.Security.AuthenticationTicket)">
+      <summary>浠庢寚瀹氱殑鍐欏叆鍣ㄥ啓鍏ユ暟鎹��</summary>
+      <param name="writer">鍐欏叆鍣ㄣ��</param>
+      <param name="model">鏁版嵁妯″瀷銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions">
+      <summary>搴旂敤绋嬪簭鐢熸垚鍣ㄦ墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.CreateDataProtector(Owin.IAppBuilder,System.String[])">
+      <summary>鍒涘缓鏁版嵁淇濇姢绋嬪簭銆�</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Security.DataProtection.IDataProtector" />銆�</returns>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="purposes">鍒涘缓鏁版嵁淇濇姢绋嬪簭鐨勭洰鐨勫垪琛ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.GetDataProtectionProvider(Owin.IAppBuilder)">
+      <summary>妫�绱㈠簲鐢ㄧ▼搴忕殑鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</summary>
+      <returns>瑕佽幏鍙栫殑 <see cref="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider" /> 瀵硅薄銆�</returns>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.AppBuilderExtensions.SetDataProtectionProvider(Owin.IAppBuilder,Microsoft.Owin.Security.DataProtection.IDataProtectionProvider)">
+      <summary>璁剧疆鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</summary>
+      <param name="app">搴旂敤绋嬪簭鐢熸垚鍣ㄣ��</param>
+      <param name="dataProtectionProvider">瑕佽缃殑鏁版嵁淇濇姢鎻愪緵绋嬪簭銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider">
+      <summary>鐢ㄤ簬鎻愪緵浠庢暟鎹繚鎶� API 娲剧敓鐨勬暟鎹繚鎶ゆ湇鍔°�傚綋搴旂敤绋嬪簭鏈敱 ASP.NET 鎵樼锛屽苟涓旀墍鏈夎繘绋嬩互鐩稿悓鐨勫煙鏍囪瘑杩愯鏃讹紝杩欐槸鏈�浣崇殑鏁版嵁淇濇姢閫夐」銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor">
+      <summary>浣跨敤闅忔満搴旂敤绋嬪簭鍚嶇О鍒濆鍖栨柊鐨� DpapiDataProtectionProvider銆傝繖鍙彲鐢ㄤ簬鍦ㄦ墽琛屽綋鍓嶅簲鐢ㄧ▼搴忕殑鎸佺画鏃堕棿鍐呬繚鎶ゆ暟鎹��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor(System.String)">
+      <summary>鍒濆鍖栦竴涓娇鐢ㄧ粰瀹� appName 浣滀负淇濇姢绠楁硶涓�閮ㄥ垎鐨勬柊 DpapiDataProtectionProvider</summary>
+      <param name="appName">鐢ㄦ埛鎻愪緵鐨勫�硷紝寰�杩旇闂彈淇濇姢鏁版嵁鏃堕渶瑕佽鍊笺�傚湪鑷墭绠$幆澧冧腑锛岄粯璁ゅ�煎彇鑷� IAppBuilder.Properties["owin.AppName"]銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.Create(System.String[])">
+      <summary>杩斿洖鎻愪緵绋嬪簭鐨� IDataProtection 鐨勬柊瀹炰緥銆�</summary>
+      <returns>鏁版嵁淇濇姢鏈嶅姟鐨勫疄渚�</returns>
+      <param name="purposes">闄勫姞鐨勭喌锛岀敤浜庣‘淇濆彧閽堝姝e綋鐩殑鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider">
+      <summary> 鐢ㄤ簬鍒涘缓 IDataProtection 瀹炰緥鐨勫伐鍘傘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider.Create(System.String[])">
+      <summary> 杩斿洖鎻愪緵绋嬪簭鐨� IDataProtection 鐨勬柊瀹炰緥銆�</summary>
+      <returns>鏁版嵁淇濇姢鏈嶅姟鐨勫疄渚嬨��</returns>
+      <param name="purposes">闄勫姞鐨勭喌锛岀敤浜庣‘淇濆彧閽堝姝e綋鐩殑鍙栨秷淇濇姢鍙椾繚鎶ょ殑鏁版嵁銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.DataProtection.IDataProtector">
+      <summary> 鐢ㄤ簬淇濇姢鍜屽彇娑堜繚鎶ゆ暟鎹殑鏈嶅姟銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Protect(System.Byte[])">
+      <summary> 璋冪敤璇ラ」鍙互淇濇姢鐢ㄦ埛鏁版嵁銆�</summary>
+      <param name="userData">蹇呴』淇濇姢鐨勫師濮嬫暟鎹��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Unprotect(System.Byte[])">
+      <summary> 璋冪敤璇ラ」鍙互鍙栨秷淇濇姢鐢ㄦ埛鏁版嵁銆�</summary>
+      <param name="protectedData">瀵圭浉鍚岀殑 IDataProtection 鏈嶅姟璋冪敤 Protect 鍚庤繑鍥炵殑瀛楄妭鏁扮粍銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler">
+      <summary> 澶у鏁拌韩浠介獙璇佷腑闂翠欢鎵ц鐨勫熀浜庤姹傜殑宸ヤ綔鐨勫熀绫汇��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseChallengeAsync">
+      <summary>濡傛灉鐩稿叧韬唤楠岃瘉鏂规灏嗚韩浠介獙璇佷氦浜掍綔涓哄叾璇锋眰娴佺殑涓�閮ㄥ垎澶勭悊锛屽垯閲嶅啓姝ゆ柟娉曚互澶勭悊 401 璐ㄨ闂銆傦紙渚嬪娣诲姞鍝嶅簲鏍囧ご锛屾垨灏� 401 缁撴灉鏇存敼涓虹櫥褰曢〉鐨� 302 鎴栧閮ㄧ櫥褰曚綅缃�傦級</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseCoreAsync">
+      <summary>鍙互鐢卞鐞嗙▼搴忛噸鍐欑殑鏍稿績鏂规硶銆傞粯璁よ涓烘槸璋冪敤涓や釜鍏叡鍝嶅簲娲诲姩锛屼竴涓敤浜庡鐞嗙櫥褰�/娉ㄩ攢闂锛屽彟涓�涓敤浜庡鐞� 401 璐ㄨ銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseGrantAsync">
+      <summary>濡傛灉鐩稿叧韬唤楠岃瘉鏂规灏嗘巿鏉�/鍚婇攢浣滀负鍏惰姹傛祦鐨勪竴閮ㄥ垎澶勭悊锛屽垯閲嶅啓姝ゆ柟娉曚互澶勭悊鐧诲綍/娉ㄩ攢闂銆傦紙渚嬪璁剧疆/鍒犻櫎 Cookie锛�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync">
+      <summary>閽堝褰撳墠璇锋眰鏈�澶氭墽琛屼竴娆� AuthenticateCore 涓殑韬唤楠岃瘉閫昏緫锛屽苟杩斿洖缁撴灉銆傚娆¤皟鐢� Authenticate 灏嗗缁堣繑鍥炲師濮嬪�笺�傚簲濮嬬粓璋冪敤姝ゆ柟娉曪紝鑰屼笉瑕佺洿鎺ヨ皟鐢� AuthenticateCore銆�</summary>
+      <returns>鐢辫韩浠介獙璇侀�昏緫鎻愪緵鐨勭エ璇佹暟鎹�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateCoreAsync">
+      <summary>蹇呴』鐢卞鐞嗙▼搴忔彁渚涚殑鏍稿績韬唤楠岃瘉閫昏緫銆傞拡瀵规瘡涓姹傛渶澶氳皟鐢ㄤ竴娆°�備笉瑕佺洿鎺ヨ皟鐢紝鑰屽簲璋冪敤鍖呰 Authenticate 鏂规硶銆�</summary>
+      <returns>鐢辫韩浠介獙璇侀�昏緫鎻愪緵鐨勭エ璇佹暟鎹�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.BaseInitializeAsync(Microsoft.Owin.Security.AuthenticationOptions,Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Context"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.GenerateCorrelationId(Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Helper"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InitializeCoreAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InvokeAsync">
+      <summary>鍦ㄥ垵濮嬪寲涔嬪悗鐢卞叕鍏变唬鐮佽皟鐢ㄤ竴娆°�傚鏋滆韩浠介獙璇佷腑闂翠欢鐩存帴鍝嶅簲宸茬煡鐨勪笓鐢ㄨ矾寰勶紝鍒欏繀椤婚噸鍐欐铏氭嫙璺緞锛屽皢璇锋眰璺緞涓庡叾宸茬煡璺緞杩涜姣旇緝锛屾彁渚涢�傚綋鐨勫搷搴斾俊鎭紝骞跺仠姝㈣繘涓�姝ュ鐞嗐��</summary>
+      <returns>鑻ヨ繑鍥� false锛屽垯鍏叡浠g爜灏嗘寜椤哄簭璋冪敤涓嬩竴涓腑闂翠欢銆傝嫢杩斿洖 true锛屽垯鍏叡浠g爜灏嗗紑濮嬪紓姝ュ畬鎴愯繃绋嬶紝鑰屼笉璋冪敤涓棿浠剁閬撶殑鍏朵綑閮ㄥ垎銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.RequestPathBase"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.Response"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.TeardownCoreAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ValidateCorrelationId(Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Logging.ILogger)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1">
+      <summary>澶у鏁拌韩浠介獙璇佷腑闂翠欢鎵ц鐨勫熀浜庤姹傜殑宸ヤ綔鐨勫熀绫汇��</summary>
+      <typeparam name="TOptions">鎸囧畾 AuthenticationOptions 灞炴�х殑绫诲瀷</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.Options"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1">
+      <summary>琛ㄧず韬唤楠岃瘉涓棿浠躲��</summary>
+      <typeparam name="TOptions">韬唤楠岃瘉閫夐」鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.#ctor(Microsoft.Owin.OwinMiddleware,`0)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="next">涓嬩竴涓� OWIN 涓棿浠躲��</param>
+      <param name="options">韬唤楠岃瘉閫夐」銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.CreateHandler">
+      <summary>鍒涘缓韬唤楠岃瘉澶勭悊绋嬪簭銆�</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1" />銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.Options">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇侀�夐」銆�</summary>
+      <returns>瀹屾垚韬唤楠岃瘉鐨勪换鍔°��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.ISecureDataFormat{Microsoft.Owin.Security.AuthenticationTicket},Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.SerializeTicket"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.SetToken(System.String)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.Ticket"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.Token"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.#ctor"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.Create(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.CreateAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnCreate"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnCreateAsync"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnReceive"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.OnReceiveAsync"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.Receive(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider.ReceiveAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.ISecureDataFormat{Microsoft.Owin.Security.AuthenticationTicket},System.String)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.DeserializeTicket(System.String)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.SetTicket(Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.Ticket"></member>
+    <member name="P:Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext.Token"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.Create(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.CreateAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.Receive(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.IAuthenticationTokenProvider.ReceiveAsync(Microsoft.Owin.Security.Infrastructure.AuthenticationTokenReceiveContext)"></member>
+    <member name="T:Microsoft.Owin.Security.Infrastructure.SecurityHelper">
+      <summary>鍦ㄥ疄鐜拌韩浠介獙璇佷腑闂翠欢鏃朵娇鐢ㄧ殑甯姪鍣ㄤ唬鐮�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.#ctor(Microsoft.Owin.IOwinContext)">
+      <summary>鍦ㄥ疄鐜拌韩浠介獙璇佷腑闂翠欢鏃朵娇鐢ㄧ殑甯姪鍣ㄤ唬鐮�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.AddUserIdentity(System.Security.Principal.IIdentity)">
+      <summary>灏嗕竴涓檮鍔犵殑 ClaimsIdentity 娣诲姞鍒扳�渟erver.User鈥濈幆澧冮敭涓殑 ClaimsPrincipal</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.Equals(Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.Equals(System.Object)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.GetHashCode"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲璐ㄨ璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+      <param name="authenticationMode">涓棿浠跺湪杩愯鏃舵墍澶勭殑韬唤楠岃瘉妯″紡</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignIn(System.String)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲鐧诲綍璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignOut(System.String,Microsoft.Owin.Security.AuthenticationMode)">
+      <summary>鏌ユ壘鐗瑰畾韬唤楠岃瘉涓棿浠剁殑鍝嶅簲娉ㄩ攢璇︾粏淇℃伅</summary>
+      <returns>涓轰腑闂翠欢鐨勮涓烘柟寮忔彁渚涙寚绀虹殑淇℃伅</returns>
+      <param name="authenticationType">瑕佹煡鎵剧殑韬唤楠岃瘉绫诲瀷</param>
+      <param name="authenticationMode">涓棿浠跺湪杩愯鏃舵墍澶勭殑韬唤楠岃瘉妯″紡</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.op_Equality(Microsoft.Owin.Security.Infrastructure.SecurityHelper,Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.op_Inequality(Microsoft.Owin.Security.Infrastructure.SecurityHelper,Microsoft.Owin.Security.Infrastructure.SecurityHelper)"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.Exception"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.BaseNotification`1">
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.#ctor(Microsoft.Owin.IOwinContext,`0)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandledResponse"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandleResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗗苟杩斿洖鍒板鎴风銆傝皟鐢ㄦ柟璐熻矗鐢熸垚瀹屾暣鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.Skipped"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.SkipToNextMiddleware">
+      <summary>鍋滄澶勭悊褰撳墠涓棿浠朵腑鐨勮姹傚苟灏嗘帶鍒舵潈浼犻�掔粰涓嬩竴涓」銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.BaseNotification`1.State"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.MessageReceivedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.NotificationResultState"></member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Continue">
+      <summary>缁х画姝e父澶勭悊銆�</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.HandledResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗐��</summary>
+    </member>
+    <member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped">
+      <summary>鍋滄澶勭悊褰撳墠涓棿浠朵腑鐨勮姹傚苟灏嗘帶鍒舵潈浼犻�掔粰涓嬩竴涓」銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandledResponse"></member>
+    <member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandleResponse">
+      <summary>鍋滄閽堝姝よ姹傜殑鎵�鏈夊鐞嗗苟杩斿洖鍒板鎴风銆傝皟鐢ㄦ柟璐熻矗鐢熸垚瀹屾暣鍝嶅簲銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.ProtocolMessage"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.State"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenReceivedNotification`2.ProtocolMessage"></member>
+    <member name="T:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2">
+      <typeparam name="TMessage"></typeparam>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.#ctor(Microsoft.Owin.IOwinContext,`1)"></member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket">
+      <summary>鑾峰彇鎴栬缃� <see cref="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket" /></summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.ProtocolMessage">
+      <summary>鑾峰彇鎴栬缃崗璁秷鎭�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.BaseContext">
+      <summary>琛ㄧず鍩轰笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.BaseContext.#ctor(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.OwinContext"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext.Response"></member>
+    <member name="T:Microsoft.Owin.Security.Provider.BaseContext`1">
+      <summary>鐢ㄤ簬鐗瑰畾浜嬩欢涓婁笅鏂囩殑鍩虹被</summary>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.BaseContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Options"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.OwinContext"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Request"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.BaseContext`1.Response"></member>
+    <member name="T:Microsoft.Owin.Security.Provider.EndpointContext">
+      <summary>琛ㄧず缁堢粨鐐逛笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext.#ctor(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.EndpointContext.IsRequestCompleted">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘涓婁笅鏂囩殑璇锋眰鏄惁宸插畬鎴愩��</summary>
+      <returns>濡傛灉姝や笂涓嬫枃鐨勮姹傚凡瀹屾垚锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext.RequestCompleted">
+      <summary>鎸囩ず涓婁笅鏂囩殑宸插畬鎴愯姹傘��</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.EndpointContext`1">
+      <summary>鐢ㄤ簬鐗瑰畾浜嬩欢涓婁笅鏂囩殑鍩虹被</summary>
+      <typeparam name="TOptions"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)">
+      <summary>鍒涘缓姝や笂涓嬫枃鐨勫疄渚�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.EndpointContext`1.IsRequestCompleted">
+      <summary>濡傛灉涓嶅簲鐢卞叾浠栫粍浠惰繘涓�姝ュ鐞嗚姹傦紝鍒欒繑鍥� True銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.RequestCompleted">
+      <summary>闃绘鍏朵粬缁勪欢杩涗竴姝ュ鐞嗚姹傘�傝皟鐢ㄥ悗锛孖sRequestCompleted 灏嗕负 true銆�</summary>
+    </member>
+    <member name="T:Microsoft.Owin.Security.Provider.ReturnEndpointContext">
+      <summary>琛ㄧず杩斿洖缁堢粨鐐逛笂涓嬫枃銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.Provider.ReturnEndpointContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.AuthenticationTicket)"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.Identity">
+      <summary>鑾峰彇鎴栬缃涓婁笅鏂囩殑鏍囪瘑銆�</summary>
+      <returns>姝や笂涓嬫枃鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.Properties"></member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.RedirectUri">
+      <summary>鑾峰彇鎴栬缃繑鍥炴涓婁笅鏂囨椂浣跨敤鐨� URI銆�</summary>
+      <returns>杩斿洖姝や笂涓嬫枃鏃朵娇鐢ㄧ殑 URI銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.Provider.ReturnEndpointContext.SignInAsAuthenticationType">
+      <summary>鑾峰彇鎴栬缃綔涓鸿韩浠介獙璇佺被鍨嬬櫥褰曠殑涓婁笅鏂囥��</summary>
+      <returns>浣滀负韬唤楠岃瘉绫诲瀷鐧诲綍鐨勪笂涓嬫枃銆�</returns>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Microsoft.Owin.zh-Hans.4.0.0/.signature.p7s b/packages/Microsoft.Owin.zh-Hans.4.0.0/.signature.p7s
new file mode 100644
index 0000000..1313ec8
--- /dev/null
+++ b/packages/Microsoft.Owin.zh-Hans.4.0.0/.signature.p7s
Binary files differ
diff --git a/packages/Microsoft.Owin.zh-Hans.4.0.0/Microsoft.Owin.zh-Hans.4.0.0.nupkg b/packages/Microsoft.Owin.zh-Hans.4.0.0/Microsoft.Owin.zh-Hans.4.0.0.nupkg
new file mode 100644
index 0000000..4611a02
--- /dev/null
+++ b/packages/Microsoft.Owin.zh-Hans.4.0.0/Microsoft.Owin.zh-Hans.4.0.0.nupkg
Binary files differ
diff --git a/packages/Microsoft.Owin.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml b/packages/Microsoft.Owin.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml
new file mode 100644
index 0000000..5ea91f0
--- /dev/null
+++ b/packages/Microsoft.Owin.zh-Hans.4.0.0/lib/net45/zh-Hans/Microsoft.Owin.xml
@@ -0,0 +1,1755 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>Microsoft.Owin</name>
+  </assembly>
+  <members>
+    <member name="T:Microsoft.Owin.CookieOptions">
+      <summary>琛ㄧず Cookie 閫夐」銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.CookieOptions.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.CookieOptions" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Domain">
+      <summary>鑾峰彇鎴栬缃涓� Cookie 鍏宠仈鐨勫煙銆�</summary>
+      <returns>瑕佷笌 Cookie 鍏宠仈鐨勫煙銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Expires">
+      <summary>鑾峰彇鎴栬缃� Cookie 鐨勫埌鏈熸棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>Cookie 鐨勫埌鏈熸棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.HttpOnly">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚﹀彲閫氳繃瀹㈡埛绔剼鏈闂� Cookie銆�</summary>
+      <returns>濡傛灉鍙�氳繃瀹㈡埛绔剼鏈闂� Cookie锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Path">
+      <summary>鑾峰彇鎴栬缃浣跨敤褰撳墠 Cookie 浼犺緭鐨勮櫄鎷熻矾寰勩��</summary>
+      <returns>瑕佷娇鐢ㄥ綋鍓� Cookie 浼犺緭鐨勮櫄鎷熻矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.CookieOptions.Secure">
+      <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚﹁浣跨敤瀹夊叏濂楁帴瀛楀眰 (SSL)锛堝嵆浠呴�氳繃 HTTPS锛変紶杈� Cookie銆�</summary>
+      <returns>鑻ヨ閫氳繃 SSL 杩炴帴 (HTTPS) 浼犺緭 Cookie锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.FormCollection">
+      <summary>Contains the form value providers for the application.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.FormCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.FormCollection" /> class.</summary>
+      <param name="store">The store for the form.</param>
+    </member>
+    <member name="T:Microsoft.Owin.HeaderDictionary">
+      <summary>Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.HeaderDictionary" /> class.</summary>
+      <param name="store">The store value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Adds a new list of items in the collection.</summary>
+      <param name="item">The item to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Add(System.String,System.String[])">
+      <summary>Adds a new list of items in the collection.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Append(System.String,System.String)">
+      <summary>Adds a new value. Appends to the header if already present.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+      <summary>Quotes any values containing comas, and then coma joins all of the values with any existing values.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.AppendValues(System.String,System.String[])">
+      <summary>Adds new values. Each item remains a separate array entry.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Clear">
+      <summary>Clears the entire list of objects.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Returns a value indicating whether the specified object occurs within this collection.</summary>
+      <returns>true if the specified object occurs within this collection; otherwise, false.</returns>
+      <param name="item">The item.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.ContainsKey(System.String)">
+      <summary>Determines whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> contains a specific key; otherwise, false.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String[]}[],System.Int32)">
+      <summary>Copies the <see cref="T:Microsoft.Owin.HeaderDictionary" /> elements to a one-dimensional Array instance at the specified index.</summary>
+      <param name="array">The one-dimensional Array that is the destination of the specified objects copied from the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</param>
+      <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Count">
+      <summary>Gets the number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>The number of elements contained in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Get(System.String)">
+      <summary>Gets the associated value from the collection.</summary>
+      <returns>The associated value from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetCommaSeparatedValues(System.String)">
+      <summary>Parses out comma separated headers into individual values.</summary>
+      <returns>The comma separated headers to parse.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetEnumerator">
+      <summary>Returns an enumerator that iterates through a collection.</summary>
+      <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.GetValues(System.String)">
+      <summary>Gets the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+      <returns>The associated values from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.IsReadOnly">
+      <summary>Gets a value that indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> is in read-only mode; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Item(System.String)">
+      <summary>Get or set the associated header value in the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated header value in the collection.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Keys">
+      <summary>Gets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String[]})">
+      <summary>Indicates whether the specified object can be removed in the collection.</summary>
+      <returns>true if the specified object can be removed in the collection; otherwise, false.</returns>
+      <param name="item">The item.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Remove(System.String)">
+      <summary>Indicates whether the specified object can be removed in the collection.</summary>
+      <returns>true if the specified object can be removed in the collection; otherwise, false.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.Set(System.String,System.String)">
+      <summary>Sets a specific header value.</summary>
+      <param name="key">The key.</param>
+      <param name="value">The value of the header.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+      <summary>Quotes any values containing comas, and then coma joins all of the values.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.SetValues(System.String,System.String[])">
+      <summary>Sets the specified header values without modification.</summary>
+      <param name="key">The key.</param>
+      <param name="values">The values.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.System#Collections#Generic#IDictionary{TKey@TValue}#Item(System.String)">
+      <summary>Gets or sets an <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</summary>
+      <returns>An <see cref="T:System.Collections.ICollection" /> that contains the keys in the <see cref="T:Microsoft.Owin.HeaderDictionary" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.System#Collections#IEnumerable#GetEnumerator">
+      <summary>Returns an enumerator that iterates through a collection.</summary>
+      <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HeaderDictionary.TryGetValue(System.String,System.String[]@)">
+      <summary>Indicates whether the <see cref="T:Microsoft.Owin.HeaderDictionary" /> tries to get the value.</summary>
+      <returns>true if the <see cref="T:Microsoft.Owin.HeaderDictionary" /> tries to get the value; otherwise, false.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="P:Microsoft.Owin.HeaderDictionary.Values">
+      <summary>Gets the attribute value.</summary>
+      <returns>The attribute value.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.HostString"></member>
+    <member name="M:Microsoft.Owin.HostString.#ctor(System.String)"></member>
+    <member name="M:Microsoft.Owin.HostString.Equals(Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.Equals(System.Object)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.String)">
+      <returns>Returns <see cref="T:Microsoft.Owin.HostString" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.FromUriComponent(System.Uri)">
+      <returns>Returns <see cref="T:Microsoft.Owin.HostString" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.GetHashCode">
+      <returns>Returns <see cref="T:System.Int32" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.op_Equality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.op_Inequality(Microsoft.Owin.HostString,Microsoft.Owin.HostString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.ToString">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.HostString.ToUriComponent">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.HostString.Value">
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.IFormCollection">
+      <summary>Represents an interface of collection of forms.</summary>
+    </member>
+    <member name="T:Microsoft.Owin.IHeaderDictionary">
+      <summary>A wrapper for <see cref="P:Microsoft.Owin.OwinRequest.Headers" /> and <see cref="P:Microsoft.Owin.OwinResponse.Headers" />.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.Append(System.String,System.String)">
+      <summary>Adds the specified header to the dictionary.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="value">The header value to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.AppendCommaSeparatedValues(System.String,System.String[])">
+      <summary>Adds the header values to the dictionary as a comma-separated value.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="values">The header values to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.AppendValues(System.String,System.String[])">
+      <summary>Adds the header values to the dictionary unmodified.</summary>
+      <param name="key">The key of the header to add.</param>
+      <param name="values">The header values to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.GetCommaSeparatedValues(System.String)">
+      <summary>Parses out comma separated headers into individual values.  Quoted values will not be coma split, and the quotes will be removed.</summary>
+      <returns>The collection of header values.</returns>
+      <param name="key">The key of the header to get.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IHeaderDictionary.Item(System.String)">
+      <summary>Gets or sets the header with the specified key.</summary>
+      <returns>The header with the specified key.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.Set(System.String,System.String)">
+      <summary>Assigns a new header value for the specified key.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="value">The new header value to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.SetCommaSeparatedValues(System.String,System.String[])">
+      <summary>Assigns the header values to the dictionary as a comma-separated value.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="values">The header values to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IHeaderDictionary.SetValues(System.String,System.String[])">
+      <summary>Assigns the header values to the dictionary unmodified.</summary>
+      <param name="key">The key of the header to set.</param>
+      <param name="values">The header values to set.</param>
+    </member>
+    <member name="T:Microsoft.Owin.IOwinContext">
+      <summary>This wraps OWIN environment dictionary and provides strongly typed accessors.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Authentication">
+      <summary>Gets the authentication middleware functionality available on the current request.</summary>
+      <returns>The authentication middleware functionality available on the current request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Environment">
+      <summary>Gets the wrapped OWIN environment.</summary>
+      <returns>The wrapped OWIN environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinContext.Get``1(System.String)">
+      <summary>Gets a value from the OWIN environment, or returns default(T) if not present.</summary>
+      <returns>The value with the specified key or the default(T) if not present..</returns>
+      <param name="key">The key of the value to get.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Request">
+      <summary>Gets a wrapper exposing request specific properties.</summary>
+      <returns>A wrapper exposing request specific properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.Response">
+      <summary>Gets a wrapper exposing response specific properties.</summary>
+      <returns>A wrapper exposing response specific properties.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinContext.Set``1(System.String,``0)">
+      <summary>Sets the given key and value in the OWIN environment.</summary>
+      <returns>This instance.</returns>
+      <param name="key">The key of the value to set.</param>
+      <param name="value">The value to set.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinContext.TraceOutput"></member>
+    <member name="T:Microsoft.Owin.IOwinRequest">
+      <summary>Represents the request for the open web interface.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Accept">
+      <summary>Gets or sets the accepted request.</summary>
+      <returns>The accepted request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Body">
+      <summary>Gets or sets the request body.</summary>
+      <returns>The request body.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.CacheControl">
+      <summary>Gets or sets the request cache control.</summary>
+      <returns>The request cache control.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.CallCancelled">
+      <summary>Gets or sets the call cancellation token for the request.</summary>
+      <returns>The call cancellation token for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.ContentType">
+      <summary>Gets or sets the type of the context associated with the request.</summary>
+      <returns>The type of the context associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Context">
+      <summary>Gets the request context.</summary>
+      <returns>The request context.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Cookies">
+      <summary>Gets the collection of cookies for the request.</summary>
+      <returns>The collection of cookies for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Environment">
+      <summary>Gets the request environment.</summary>
+      <returns>The request environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.Get``1(System.String)">
+      <summary>Gets the type of the request.</summary>
+      <returns>The returned request.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The type of the request.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Headers">
+      <summary>Gets the request headers.</summary>
+      <returns>The request headers.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Host">
+      <summary>Gets or sets the request host.</summary>
+      <returns>The request host.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.IsSecure">
+      <summary>Gets or sets whether this request is secure.</summary>
+      <returns>true if this request is secure; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.LocalIpAddress">
+      <summary>Gets or sets the local IP address of the object that made the request.</summary>
+      <returns>The local IP address of the object that made the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.LocalPort">
+      <summary>Gets or sets the port used in making the request.</summary>
+      <returns>The port used in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.MediaType">
+      <summary>Gets or sets the type of the media in making the request.</summary>
+      <returns>The type of the media in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Method">
+      <summary>Gets or sets the method used in making the request.</summary>
+      <returns>The method used in making the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Path">
+      <summary>Gets or sets the request path.</summary>
+      <returns>The request path.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.PathBase">
+      <summary>Gets or sets the request path base.</summary>
+      <returns>The request path base.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Protocol">
+      <summary>Gets or sets the protocol used in the request.</summary>
+      <returns>The protocol used in the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Query">
+      <summary>Gets the query composed of readable string collection for the request.</summary>
+      <returns>The query composed of readable string collection for the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.QueryString">
+      <summary>Gets or sets the query string used in the query.</summary>
+      <returns>The query string used in the query.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.ReadFormAsync">
+      <summary>Asynchronously reads the form associated with the request.</summary>
+      <returns>The read form associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.RemoteIpAddress">
+      <summary>Gets or sets the remote IP address associated with the request.</summary>
+      <returns>The remote IP address associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.RemotePort">
+      <summary>Gets or sets the remote port associated with the request.</summary>
+      <returns>The remote port associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Scheme">
+      <summary>Gets or sets the request scheme.</summary>
+      <returns>The request scheme.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinRequest.Set``1(System.String,``0)">
+      <summary>Sets the type of the request.</summary>
+      <returns>The retrieved request.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The request value.</param>
+      <typeparam name="T">The type of the request.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.Uri">
+      <summary>Gets the uniform resource identifier (URI) associated with the request.</summary>
+      <returns>The uniform resource identifier (URI) associated with the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinRequest.User">
+      <summary>Gets or sets the user that made the request.</summary>
+      <returns>The user that made the request.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.IOwinResponse">
+      <summary>Represents an OWIN response.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Body">
+      <summary>Gets or sets the body of the <see cref="T:System.IO.Stream" />.</summary>
+      <returns>The body of the <see cref="T:System.IO.Stream" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ContentLength">
+      <summary>Gets or sets the content returned by the request.</summary>
+      <returns>The number of bytes returned by the request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ContentType">
+      <summary>Gets or sets the content type of the output stream.</summary>
+      <returns>The content type of the output stream.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Context">
+      <summary>Gets the context for the <see cref="T:Microsoft.Owin.IOwinContext" />.</summary>
+      <returns>The context for the <see cref="T:Microsoft.Owin.IOwinContext" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Cookies">
+      <summary>Gets the <see cref="T:Microsoft.Owin.ResponseCookieCollection" />.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.ResponseCookieCollection" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Environment">
+      <summary>Gets the fully qualified path of the current working directory.</summary>
+      <returns>The fully qualified path of the current working directory.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ETag">
+      <summary>Gets or sets an ETag that identifies a version of the file.</summary>
+      <returns>An ETag that identifies a version of the file.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Expires">
+      <summary>Gets or sets the duration before the response expires.</summary>
+      <returns>The duration before the response expires.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Get``1(System.String)">
+      <summary>Gets the list of the OWIN response.</summary>
+      <returns>The list of the OWIN response.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Headers">
+      <summary>Gets a collection of headers.</summary>
+      <returns>A collection of headers.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)">
+      <summary>Adds the response headers.</summary>
+      <param name="callback">The callback method.</param>
+      <param name="state">The current state.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.Protocol">
+      <summary>Gets or sets the information about a protocol.</summary>
+      <returns>The information about a protocol.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.ReasonPhrase">
+      <summary>Gets or sets the reason phrase, which typically is sent by servers.</summary>
+      <returns>The reason phrase.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Redirect(System.String)">
+      <summary>Redirects a response from the specified location.</summary>
+      <param name="location">The location where to redirect the response.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Set``1(System.String,``0)">
+      <summary>Returns a new set with the elements of the second set removed from the first.</summary>
+      <returns>A set containing elements of the first set that are not contained in the second set.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.IOwinResponse.StatusCode">
+      <summary>Gets or sets the OWIN status code of the output returned to the client.</summary>
+      <returns>The OWIN status code of the output returned to the client.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[])">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="data">The data contained.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.Byte[],System.Int32,System.Int32)">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="data">The data contained.</param>
+      <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes to the port.</param>
+      <param name="count">The number of bytes to write.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.Write(System.String)">
+      <summary>Writes the date contained in the given array to the file.</summary>
+      <param name="text">The contained text.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[])">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+      <param name="offset">The zero-based byte offset in the <paramref name="data" /> parameter at which to begin copying bytes to the port.</param>
+      <param name="count">The number of bytes to write.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="data">The data to contain.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="text">The text value.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IOwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)">
+      <summary>Writes information to a response asynchronously.</summary>
+      <returns>The information to write.</returns>
+      <param name="text">The text value.</param>
+      <param name="token">The token.</param>
+    </member>
+    <member name="T:Microsoft.Owin.IReadableStringCollection">
+      <summary>Accessors for headers, query, forms, etc.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.IReadableStringCollection.Get(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated value from the collection.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="M:Microsoft.Owin.IReadableStringCollection.GetValues(System.String)">
+      <summary>Get the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+      <returns>The associated values from the collection in their original format.</returns>
+      <param name="key">The key.</param>
+    </member>
+    <member name="P:Microsoft.Owin.IReadableStringCollection.Item(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+      <returns>The associated value from the collection.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinContext">
+      <summary>Provides strongly typed accessors and wraps OWIN environment dictionary.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinContext" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinContext" /> class.</summary>
+      <param name="environment">The environment.</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Authentication">
+      <summary>Gets the <see cref="P:Microsoft.Owin.OwinContext.Authentication" /> middleware functionality available on the current request.</summary>
+      <returns>The <see cref="P:Microsoft.Owin.OwinContext.Authentication" /> middleware functionality available on the current request.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Environment">
+      <summary>Gets the wrapped OWIN environment.</summary>
+      <returns>The wrapped OWIN environment.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.Get``1(System.String)">
+      <summary>Gets a value from the OWIN environment, or returns default(T) if not present.</summary>
+      <returns>A value from the OWIN environment.</returns>
+      <param name="key">The key.</param>
+      <typeparam name="T">The generic type.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Request">
+      <summary>Gets a wrapper exposing request specific properties.</summary>
+      <returns>A wrapper exposing request specific properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.Response">
+      <summary>Gets a wrapper exposing response specific properties.</summary>
+      <returns>A wrapper exposing response specific properties.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinContext.Set``1(System.String,``0)">
+      <summary>Sets the given key and value in the OWIN environment.</summary>
+      <returns>The given key and value in the OWIN environment.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+      <typeparam name="T">The generic Type.</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinContext.TraceOutput"></member>
+    <member name="T:Microsoft.Owin.OwinMiddleware">
+      <summary>琛ㄧず OWIN 涓棿浠躲��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinMiddleware.#ctor(Microsoft.Owin.OwinMiddleware)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="next">涓嬩竴涓� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀹炰緥銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinMiddleware.Invoke(Microsoft.Owin.IOwinContext)"></member>
+    <member name="P:Microsoft.Owin.OwinMiddleware.Next">
+      <summary>杞埌涓嬩竴涓� <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀹炰緥銆�</summary>
+      <returns>
+        <see cref="T:Microsoft.Owin.OwinMiddleware" /> 瀵硅薄銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinRequest"></member>
+    <member name="M:Microsoft.Owin.OwinRequest.#ctor"></member>
+    <member name="M:Microsoft.Owin.OwinRequest.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinRequest" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Accept"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Body">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勬鏂囥��</summary>
+      <returns>姝よ姹傜殑姝f枃銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.CacheControl"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.CallCancelled"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.ContentType"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Context"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Cookies"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Environment">
+      <summary>鑾峰彇涓庤姹傚叧鑱旂殑鐜銆�</summary>
+      <returns>涓庤姹傚叧鑱旂殑鐜銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.Get``1(System.String)">
+      <summary>鑾峰彇鎸囧畾鐨� OWIN 璇锋眰銆�</summary>
+      <returns>濡傛灉鎴愬姛锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="key">閿��</param>
+      <typeparam name="T">璇锋眰鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Headers"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Host">
+      <summary>鑾峰彇鎴栬缃鍦� OWIN 璇锋眰涓娇鐢ㄧ殑涓绘満鏍囧ご鍊笺��</summary>
+      <returns>OWIN 璇锋眰涓殑涓绘満鏍囧ご鍊笺��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.IsSecure">
+      <summary>鑾峰彇涓�涓�硷紝璇ュ�兼寚绀� OWIN 杩炴帴鏄惁浣跨敤瀹夊叏濂楁帴瀛椼��</summary>
+      <returns>濡傛灉杩炴帴鏄� SSL 杩炴帴锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.LocalIpAddress"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.LocalPort"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.MediaType"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Method">
+      <summary>鑾峰彇鎴栬缃姹傜殑鏂规硶銆�</summary>
+      <returns>璇锋眰鐨勬柟娉曘��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Path">
+      <summary>鑾峰彇鎴栬缃綋鍓嶈姹傜殑铏氭嫙璺緞銆�</summary>
+      <returns>褰撳墠璇锋眰鐨勮櫄鎷熻矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.PathBase">
+      <summary>鑾峰彇鎴栬缃� OWIN 璇锋眰鐨勮矾鐢辫矾寰勩��</summary>
+      <returns>OWIN 璇锋眰鐨勮矾鐢辫矾寰勩��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Protocol"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Query"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.QueryString">
+      <summary>鑾峰彇 HTTP 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</summary>
+      <returns>HTTP 鏌ヨ瀛楃涓插彉閲忕殑闆嗗悎銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.ReadFormAsync"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.RemoteIpAddress"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.RemotePort"></member>
+    <member name="P:Microsoft.Owin.OwinRequest.Scheme">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勬柟妗堝悕绉般��</summary>
+      <returns>姝よ姹傜殑鏂规鍚嶇О銆�</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinRequest.Set``1(System.String,``0)">
+      <summary>璁剧疆鎸囧畾鐨勮姹傘��</summary>
+      <param name="key">閿��</param>
+      <param name="value">璇锋眰鐨勫�笺��</param>
+      <typeparam name="T">OWIN 璇锋眰鐨勭被鍨嬨��</typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.Uri">
+      <summary>鑾峰彇褰撳墠璇锋眰鐨� URI 鐨勪俊鎭��</summary>
+      <returns>褰撳墠璇锋眰鐨� URI 鐨勪俊鎭��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinRequest.User">
+      <summary>鑾峰彇鎴栬缃璇锋眰鐨勭敤鎴峰悕銆�</summary>
+      <returns>姝よ姹傜殑鐢ㄦ埛鍚嶃��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.OwinResponse">
+      <summary>琛ㄧず OWIN 鍝嶅簲銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.#ctor"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.OwinResponse" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="environment">鐜銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Body">
+      <summary>鑾峰彇鎴栬缃搷搴旂殑姝f枃娴併��</summary>
+      <returns>鍝嶅簲鐨勬鏂囨祦銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.ContentLength"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.ContentType">
+      <summary>鑾峰彇鎴栬缃緭鍑烘祦鐨勫唴瀹圭被鍨嬨��</summary>
+      <returns>杈撳嚭娴佺殑鍐呭绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Context"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Cookies"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Environment">
+      <summary>鑾峰彇涓庡搷搴斿叧鑱旂殑鐜銆�</summary>
+      <returns>涓庡搷搴斿叧鑱旂殑鐜銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.ETag"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Expires"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Get``1(System.String)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.Headers"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.OnSendingHeaders(System.Action{System.Object},System.Object)"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.Protocol"></member>
+    <member name="P:Microsoft.Owin.OwinResponse.ReasonPhrase"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Redirect(System.String)">
+      <summary>浠庢寚瀹氱殑浣嶇疆閲嶅畾鍚戝搷搴斻��</summary>
+      <param name="location">瑕佸皢鍝嶅簲閲嶅畾鍚戝埌鐨勪綅缃��</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.Set``1(System.String,``0)">
+      <typeparam name="T"></typeparam>
+    </member>
+    <member name="P:Microsoft.Owin.OwinResponse.StatusCode">
+      <summary>鑾峰彇鎴栬缃繑鍥炲埌瀹㈡埛绔殑杈撳嚭鐨� OWIN 鐘舵�佷唬鐮併��</summary>
+      <returns>杩斿洖鍒板鎴风鐨勮緭鍑虹殑 OWIN 鐘舵�佷唬鐮併��</returns>
+    </member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.Byte[],System.Int32,System.Int32)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.Write(System.String)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[])"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.Byte[],System.Threading.CancellationToken)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String)"></member>
+    <member name="M:Microsoft.Owin.OwinResponse.WriteAsync(System.String,System.Threading.CancellationToken)"></member>
+    <member name="T:Microsoft.Owin.OwinStartupAttribute">
+      <summary>Represents the startup attributes for the Owin.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="friendlyName">The friendly name.</param>
+      <param name="startupType">The type of startup.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.String,System.Type,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="friendlyName">The friendly name.</param>
+      <param name="startupType">The type of startup.</param>
+      <param name="methodName">The method name.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="startupType">The type of startup.</param>
+    </member>
+    <member name="M:Microsoft.Owin.OwinStartupAttribute.#ctor(System.Type,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.OwinStartupAttribute" /> class.</summary>
+      <param name="startupType">The type of startup.</param>
+      <param name="methodName">The method name.</param>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.FriendlyName">
+      <summary>Gets the friendly name for the attribute.</summary>
+      <returns>The friendly name for the attribute.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.MethodName">
+      <summary>Gets the method name for the attribute.</summary>
+      <returns>The method name for the attribute.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.OwinStartupAttribute.StartupType">
+      <summary>Gets the type of startup.</summary>
+      <returns>The type of startup.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.PathString">
+      <summary>Provides correct escaping for Path and PathBase values when needed to reconstruct a request or redirect URI string.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.#ctor(System.String)">
+      <summary>Initialize the path string with a given value. This value must be in unescaped format. Use PathString.FromUriComponent(value) if you have a path value which is in an escaped format.</summary>
+      <param name="value">The unescaped path to be assigned to the Value property.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.PathString)">
+      <summary>Adds two PathString instances into a combined PathString value.</summary>
+      <returns>Returns the combined PathString.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Add(Microsoft.Owin.QueryString)">
+      <summary>Combines a PathString and QueryString into the joined URI formatted string value.</summary>
+      <returns>Returns the joined URI formatted string.</returns>
+    </member>
+    <member name="F:Microsoft.Owin.PathString.Empty">
+      <summary>Represents the empty path. This field is read-only.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString)">
+      <summary>Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="other">The second PathString for comparison.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(Microsoft.Owin.PathString,System.StringComparison)">
+      <summary>Compares this PathString value to another value using a specific StringComparison type.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="other">The second PathString for comparison.</param>
+      <param name="comparisonType">The StringComparison type to us.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.Equals(System.Object)">
+      <summary>Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="obj">The second PathString for comparison.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.String)">
+      <summary>Returns an PathString given the path as it is escaped in the URI format. The string MUST NOT contain any value that is not a path.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.FromUriComponent(System.Uri)">
+      <summary>Returns a PathString given the path as from a Uri object. Relative Uri objects are not supported.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uri">The Uri object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.GetHashCode">
+      <summary>Returns the hash code for the PathString value. The hash code is provided by the OrdinalIgnoreCase implementation.</summary>
+      <returns>The hash code.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.PathString.HasValue">
+      <summary>True if the path is not empty.</summary>
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Add.</summary>
+      <returns>The PathString combination of both values.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Addition(Microsoft.Owin.PathString,Microsoft.Owin.QueryString)">
+      <summary>Operator call through to Add.</summary>
+      <returns>The PathString combination of both values.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Equality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Equals.</summary>
+      <returns>True if both PathString values are equal.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.op_Inequality(Microsoft.Owin.PathString,Microsoft.Owin.PathString)">
+      <summary>Operator call through to Equals.</summary>
+      <returns>True if both PathString values are not equal.</returns>
+      <param name="left">The left parameter.</param>
+      <param name="right">The right parameter.</param>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.StartsWithSegments(Microsoft.Owin.PathString,Microsoft.Owin.PathString@)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.ToString">
+      <summary>Provides the path string escaped in a way which is correct for combining into the URI representation.</summary>
+      <returns>Returns the escaped path value.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.PathString.ToUriComponent">
+      <summary>Provides the path string escaped in a way which is correct for combining into the URI representation.</summary>
+      <returns>Returns the escaped path value.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.PathString.Value">
+      <summary>The unescaped path value.</summary>
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.QueryString">
+      <summary>Provides correct handling for QueryString value when needed to reconstruct a request or redirect URI string.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.#ctor(System.String)">
+      <summary>Initialize the query string with a given value. This value must be in escaped and delimited format without a leading '?' character.</summary>
+      <param name="value">The query string to be assigned to the Value property.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.#ctor(System.String,System.String)">
+      <summary>Initialize a query string with a single given parameter name and value. The value is.</summary>
+      <param name="name">The unencoded parameter name.</param>
+      <param name="value">The unencoded parameter value.</param>
+    </member>
+    <member name="F:Microsoft.Owin.QueryString.Empty">
+      <summary>Represents the empty query string. This field is read-only.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.Equals(Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.Equals(System.Object)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.String)">
+      <summary>Returns a PathString given the path as it is escaped in the URI format. The string MUST NOT contain any value that is not a path.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uriComponent">The escaped path as it appears in the URI format.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.FromUriComponent(System.Uri)">
+      <summary>Returns a PathString given the path as from a Uri object. Relative Uri objects are not supported.</summary>
+      <returns>The resulting PathString.</returns>
+      <param name="uri">The Uri object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.GetHashCode">
+      <returns>Returns <see cref="T:System.Int32" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.QueryString.HasValue">
+      <summary>True if the query string is not empty.</summary>
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.op_Equality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.op_Inequality(Microsoft.Owin.QueryString,Microsoft.Owin.QueryString)">
+      <returns>Returns <see cref="T:System.Boolean" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.ToString">
+      <summary>Provides the query string escaped in a way which is correct for combining into the URI representation. A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially dangerous are escaped.</summary>
+      <returns>The query string value.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.QueryString.ToUriComponent">
+      <summary>Provides the query string escaped in a way which is correct for combining into the URI representation. A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially dangerous are escaped.</summary>
+      <returns>The query string value.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.QueryString.Value">
+      <summary>The unescaped query string without the leading '?' character.</summary>
+      <returns>Returns <see cref="T:System.String" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.ReadableStringCollection">
+      <summary>Accessors for query, forms, etc.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String[]})">
+      <summary>Create a new wrapper</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.Get(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.GetEnumerator"></member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.GetValues(System.String)">
+      <summary>Get the associated values from the collection in their original format. Returns null if the key is not present.</summary>
+    </member>
+    <member name="P:Microsoft.Owin.ReadableStringCollection.Item(System.String)">
+      <summary>Get the associated value from the collection. Multiple values will be merged. Returns null if the key is not present.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ReadableStringCollection.System#Collections#IEnumerable#GetEnumerator"></member>
+    <member name="T:Microsoft.Owin.RequestCookieCollection">
+      <summary>A wrapper for the request Cookie header</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>Create a new wrapper</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.GetEnumerator"></member>
+    <member name="P:Microsoft.Owin.RequestCookieCollection.Item(System.String)">
+      <summary>Returns null rather than throwing KeyNotFoundException</summary>
+    </member>
+    <member name="M:Microsoft.Owin.RequestCookieCollection.System#Collections#IEnumerable#GetEnumerator"></member>
+    <member name="T:Microsoft.Owin.ResponseCookieCollection">
+      <summary>A wrapper for the response Set-Cookie header.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.#ctor(Microsoft.Owin.IHeaderDictionary)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.ResponseCookieCollection" /> class.</summary>
+      <param name="headers">The collection of response Set-Cookie header.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String)">
+      <summary>Adds a new cookie and value.</summary>
+      <param name="key">The key of the cookie to add.</param>
+      <param name="value">The value of the cookie to add.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Append(System.String,System.String,Microsoft.Owin.CookieOptions)">
+      <summary>Adds a new cookie and value.</summary>
+      <param name="key">The key of the cookie to add.</param>
+      <param name="value">The value of the cookie to add.</param>
+      <param name="options">The options for cookie.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String)">
+      <summary>Sets the cookie expired.</summary>
+      <param name="key">The key of the cookie to set.</param>
+    </member>
+    <member name="M:Microsoft.Owin.ResponseCookieCollection.Delete(System.String,Microsoft.Owin.CookieOptions)">
+      <summary>Sets the cookie expired.</summary>
+      <param name="key">The key of the cookie to set.</param>
+      <param name="options">The options for cookie.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Builder.AppBuilder">
+      <summary>A standard implementation of IAppBuilder</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.#ctor"></member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.Build(System.Type)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. This is typically done by the hosting component which created the app builder, and does not need to be called by the startup method if the IAppBuilder is passed in.</summary>
+      <returns>Returns an instance of the pipeline's entry point. This object may be safely cast to the type which was provided</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.New">
+      <summary>The New method creates a new instance of an IAppBuilder. This is needed to create a tree structure in your processing, rather than a linear pipeline. The new instance share the same Properties, but will be created with a new, empty middleware list. To create a tangent pipeline you would first call New, followed by several calls to Use on the new builder, ending with a call to Build on the new builder. The return value from Build will be the entry-point to your tangent pipeline. This entry-point may now be added to the main pipeline as an argument to a switching middleware, which will either call the tangent pipeline or the "next app", based on something in the request. That said - all of that work is typically hidden by a middleware like Map, which will do that for you.</summary>
+      <returns>The new instance of the IAppBuilder implementation</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Builder.AppBuilder.Properties">
+      <summary>Contains arbitrary properties which may added, examined, and modified by components during the startup sequence.</summary>
+      <returns>Returns <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilder.Use(System.Object,System.Object[])">
+      <summary>Adds a middleware node to the OWIN function pipeline. The middleware are invoked in the order they are added: the first middleware passed to Use will be the outermost function, and the last middleware passed to Use will be the innermost.</summary>
+      <returns>The IAppBuilder itself is returned. This enables you to chain your use statements together.</returns>
+      <param name="middleware">The middleware parameter determines which behavior is being chained into the pipeline. If the middleware given to Use is a Delegate, then it will be invoked with the "next app" in the chain as the first parameter. If the delegate takes more than the single argument, then the additional values must be provided to Use in the args array. If the middleware given to Use is a Type, then the public constructor will be invoked with the "next app" in the chain as the first parameter. The resulting object must have a public Invoke method. If the object has constructors which take more than the single "next app" argument, then additional values may be provided in the args array.</param>
+      <param name="args">Any additional args passed to Use will be passed as additional values, following the "next app" parameter, when the OWIN call pipeline is build. They are passed as additional parameters if the middleware parameter is a Delegate, or as additional constructor arguments if the middle parameter is a Type.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Builder.AppBuilderExtensions">
+      <summary>Extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion(Owin.IAppBuilder,System.Delegate)">
+      <summary>Adds converters for adapting between disparate application signatures.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.AddSignatureConversion``2(Owin.IAppBuilder,System.Func{``0,``1})">
+      <summary>Adds converters for adapting between disparate application signatures.</summary>
+      <typeparam name="T1"></typeparam>
+      <typeparam name="T2"></typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build(Owin.IAppBuilder)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. May be called to build pipeline branches.</summary>
+      <returns>The request processing entry point for this section of the pipeline.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Builder.AppBuilderExtensions.Build``1(Owin.IAppBuilder)">
+      <summary>The Build is called at the point when all of the middleware should be chained together. May be called to build pipeline branches.</summary>
+      <returns>The request processing entry point for this section of the pipeline.</returns>
+      <typeparam name="TApp">The application signature.</typeparam>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.Address">
+      <summary>Contains parts of an address and the complete address.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> class.</summary>
+      <param name="dictionary">The dictionary.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.#ctor(System.String,System.String,System.String,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> class.</summary>
+      <param name="scheme">The scheme.</param>
+      <param name="host">The host.</param>
+      <param name="port">The port.</param>
+      <param name="path">The path.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Create">
+      <summary>Creates a new <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</summary>
+      <returns>A new <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> to create.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Dictionary">
+      <summary>Gets the internal dictionary for this collection.</summary>
+      <returns>The internal dictionary for this collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="other">The other object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Equals(System.Object)">
+      <summary>Determines whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="obj">The other object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Get``1(System.String)">
+      <summary>Gets the list of keys in the <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</summary>
+      <returns>The list of keys in the <see cref="T:Microsoft.Owin.BuilderProperties.Address" />.</returns>
+      <param name="key">The key value.</param>
+      <typeparam name="T">The type generic.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.GetHashCode">
+      <summary>Returns the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Host">
+      <summary>Gets or sets the host for the builder.</summary>
+      <returns>The host for the builder.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Equality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are equal.</summary>
+      <returns>true if left and right represent the same address; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second objet to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.op_Inequality(Microsoft.Owin.BuilderProperties.Address,Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Determines whether two specified instance of <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> are not equal.</summary>
+      <returns>true if left and right do not represent the same address; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Path">
+      <summary>Gets or sets the string that describes the path.</summary>
+      <returns>The string that describes the path.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Port">
+      <summary>Gets or sets the port number of the address.</summary>
+      <returns>The port number of the address.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Address.Scheme">
+      <summary>Gets or sets the scheme name for this address.</summary>
+      <returns>The scheme name.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Address.Set(System.String,System.Object)">
+      <summary>Sets the <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> with the specified key and value.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.BuilderProperties.Address" /> with the specified key and value.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.AddressCollection">
+      <summary>Wraps the host.Addresses list.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.#ctor(System.Collections.Generic.IList{System.Collections.Generic.IDictionary{System.String,System.Object}})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> class.</summary>
+      <param name="list">The address list to set to the collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Add(Microsoft.Owin.BuilderProperties.Address)">
+      <summary>Adds the specified address to the collection.</summary>
+      <param name="address">The address to add to the collection.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Count">
+      <summary>Gets the number of elements in the collection.</summary>
+      <returns>The number of elements in the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Create">
+      <summary>Creates a new instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> with empty list.</summary>
+      <returns>A new instance of <see cref="T:Microsoft.Owin.BuilderProperties.AddressCollection" /> with empty list.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the current collection is equal to the specified collection.</summary>
+      <returns>true if current collection is equal to the specified collection; otherwise, false.</returns>
+      <param name="other">The other collection to compare to the current collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.Equals(System.Object)">
+      <summary>Determines whether the current collection is equal to the specified object.</summary>
+      <returns>true if current collection is equal to the specified object; otherwise, false.</returns>
+      <param name="obj">The object to compare to the current collection.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetEnumerator">
+      <summary>Gets the enumerator that iterates through the collection.</summary>
+      <returns>The enumerator that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.GetHashCode">
+      <summary>Gets the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.Item(System.Int32)">
+      <summary>Gets the item with the specified index from the collection.</summary>
+      <returns>The item with the specified index.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AddressCollection.List">
+      <summary>Gets the underlying address list.</summary>
+      <returns>The underlying address list.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Equality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the first collection is equal to the second collection.</summary>
+      <returns>true if both collections are equal; otherwise, false.</returns>
+      <param name="left">The first collection to compare.</param>
+      <param name="right">The second collection to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.op_Inequality(Microsoft.Owin.BuilderProperties.AddressCollection,Microsoft.Owin.BuilderProperties.AddressCollection)">
+      <summary>Determines whether the first collection is not equal to the second collection.</summary>
+      <returns>true if both collections are not equal; otherwise, false.</returns>
+      <param name="left">The first collection to compare.</param>
+      <param name="right">The second collection to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AddressCollection.System#Collections#IEnumerable#GetEnumerator">
+      <summary>Gets the enumerator that iterates through the collection.</summary>
+      <returns>The enumerator that can be used to iterate through the collection.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.AppProperties">
+      <summary>A wrapper for the <see cref="P:Microsoft.Owin.Builder.AppBuilder.Properties" /> IDictionary.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> class.</summary>
+      <param name="dictionary">The dictionary to set for this instance.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Addresses">
+      <summary>Gets or sets the address collection for 鈥渉ost.Addresses鈥�.</summary>
+      <returns>The address collection for 鈥渉ost.Addresses鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AddSignatureConversionDelegate">
+      <summary>Gets or sets the action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</summary>
+      <returns>The action delegate for 鈥渂uilder.AddSignatureConversion鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.AppName">
+      <summary>Gets or sets the string value for 鈥渉ost.AppName鈥�.</summary>
+      <returns>The string value for 鈥渉ost.AppName鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Capabilities">
+      <summary>Gets or sets the list of 鈥渟erver.Capabilities鈥�.</summary>
+      <returns>The list of 鈥渟erver.Capabilities鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.DefaultApp">
+      <summary>Gets or sets the function delegate for 鈥渂uilder.DefaultApp鈥�.</summary>
+      <returns>The function delegate for 鈥渂uilder.DefaultApp鈥�.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.Dictionary">
+      <summary>Gets the underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</summary>
+      <returns>The underlying dictionary for this <see cref="T:Microsoft.Owin.BuilderProperties.AppProperties" /> instance.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the current AppProperties is equal to the specified AppProperties.</summary>
+      <returns>true if the current AppProperties is equal to the specified AppProperties; otherwise, false.</returns>
+      <param name="other">The other AppProperties to compare with the current instance.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Equals(System.Object)">
+      <summary>Determines whether the current AppProperties is equal to the specified object.</summary>
+      <returns>true if the current AppProperties is equal to the specified object; otherwise, false.</returns>
+      <param name="obj">The object to compare with the current instance.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Get``1(System.String)">
+      <summary>Gets the value from the dictionary with the specified key.</summary>
+      <returns>The value with the specified key.</returns>
+      <param name="key">The key of the value to get.</param>
+      <typeparam name="T">The type of the value.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.GetHashCode">
+      <summary>Returns the hash code for this instance.</summary>
+      <returns>The hash code for this instance.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OnAppDisposing">
+      <summary>Gets or sets the cancellation token for 鈥渉ost.OnAppDisposing鈥�.</summary>
+      <returns>The cancellation token for 鈥渉ost.OnAppDisposing鈥�.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Equality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the first AppPProperties is equal to the second AppProperties.</summary>
+      <returns>true if both AppProperties are equal; otherwise, false.</returns>
+      <param name="left">The first AppPropeties to compare.</param>
+      <param name="right">The second AppPropeties to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.op_Inequality(Microsoft.Owin.BuilderProperties.AppProperties,Microsoft.Owin.BuilderProperties.AppProperties)">
+      <summary>Determines whether the first AppPProperties is not equal to the second AppProperties.</summary>
+      <returns>true if both AppProperties are not equal; otherwise, false.</returns>
+      <param name="left">The first AppPropeties to compare.</param>
+      <param name="right">The second AppPropeties to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.OwinVersion">
+      <summary>Gets or sets the string value for 鈥渙win.Version鈥�.</summary>
+      <returns>The string value for 鈥渙win.Version鈥�.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.AppProperties.Set(System.String,System.Object)">
+      <summary>Sets the value with the specified key.</summary>
+      <returns>This instance.</returns>
+      <param name="key">The key of the value to set.</param>
+      <param name="value">The value to set.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.AppProperties.TraceOutput">
+      <summary>Gets or sets the text writer for 鈥渉ost.TraceOutput鈥�.</summary>
+      <returns>The text writer for 鈥渉ost.TraceOutput鈥�.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.BuilderProperties.Capabilities">
+      <summary>Represents the capabilities for the builder properties.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> class.</summary>
+      <param name="dictionary">A collection of object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Create">
+      <summary>Creates the builder <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</summary>
+      <returns>The builder <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.Dictionary">
+      <summary>Gets a collection of objects.</summary>
+      <returns>A collection of objects.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Indicates a value whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="other">The object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Equals(System.Object)">
+      <summary>Indicates a value whether the specified object is equal to the current object.</summary>
+      <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+      <param name="obj">The specified object.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Get``1(System.String)">
+      <summary>Gets the value of the capabilities using the specified key.</summary>
+      <returns>The value of the capabilities.</returns>
+      <param name="key">The key value.</param>
+      <typeparam name="T">The generic Type.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.GetHashCode">
+      <summary>Serves as a hash function for a particular type.</summary>
+      <returns>A hash code for the current object.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Equality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.</summary>
+      <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.op_Inequality(Microsoft.Owin.BuilderProperties.Capabilities,Microsoft.Owin.BuilderProperties.Capabilities)">
+      <summary>Determines whether two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal.</summary>
+      <returns>true if the two specified instances of <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> are equal; otherwise, false.</returns>
+      <param name="left">The first object to compare.</param>
+      <param name="right">The second object to compare.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.SendFileVersion">
+      <summary>Gets or sets the file version to send.</summary>
+      <returns>The file version to send.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.BuilderProperties.Capabilities.Set(System.String,System.Object)">
+      <summary>Sets the builder for the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" /> with the specified key and value.</summary>
+      <returns>The builder for the <see cref="T:Microsoft.Owin.BuilderProperties.Capabilities" />.</returns>
+      <param name="key">The key.</param>
+      <param name="value">The value.</param>
+    </member>
+    <member name="P:Microsoft.Owin.BuilderProperties.Capabilities.WebSocketVersion">
+      <summary>Gets or sets the web socket version.</summary>
+      <returns>The version of the web socket.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions">
+      <summary>Represents the integrated pipeline extensions.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,Owin.PipelineStage)">
+      <summary>Uses a stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</summary>
+      <returns>A stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</returns>
+      <param name="app">The IAppBuilder.</param>
+      <param name="stage">The pipeline stage.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.IntegratedPipelineExtensions.UseStageMarker(Owin.IAppBuilder,System.String)">
+      <summary>Uses a stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</summary>
+      <returns>A stage marker for the <see cref="T:Microsoft.Owin.Extensions.IntegratedPipelineExtensions" />.</returns>
+      <param name="app">The IAppBuilder.</param>
+      <param name="stageName">The stage of name.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Extensions.UseHandlerMiddleware">
+      <summary>Represents a middleware for executing in-line function middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.</summary>
+      <param name="next">The pointer to next middleware.</param>
+      <param name="handler">The in-line function request handler.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Extensions.UseHandlerMiddleware" /> class.</summary>
+      <param name="next">The pointer to next middleware.</param>
+      <param name="handler">The in-line function request handler.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Extensions.UseHandlerMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Invokes the handler for processing the request.</summary>
+      <returns>The <see cref="T:System.Threading.Tasks.Task" /> object that represents the request operation.</returns>
+      <param name="context">The OWIN context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Helpers.WebHelpers">
+      <summary>琛ㄧず Web 甯姪鍣ㄣ��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Helpers.WebHelpers.ParseForm(System.String)"></member>
+    <member name="T:Microsoft.Owin.Infrastructure.ISystemClock">
+      <summary>鎻愪緵绯荤粺鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Infrastructure.ISystemClock.UtcNow">
+      <summary>鑾峰彇宸插熀浜庢湰鍦扮郴缁熺殑鏃堕挓鏃堕棿璁剧疆涓哄綋鍓嶉�氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>宸茶缃负褰撳墠閫氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.SignatureConversions">
+      <summary>鎻愪緵 OWIN 绛惧悕鐨勮浆鎹€��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(Owin.IAppBuilder)">
+      <summary>鍚戝簲鐢ㄧ▼搴忔坊鍔犺浆鎹€��</summary>
+      <param name="app">搴旂敤绋嬪簭銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.SystemClock">
+      <summary>鎻愪緵绯荤粺鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.SystemClock.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Infrastructure.SystemClock" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Infrastructure.SystemClock.UtcNow">
+      <summary>鑾峰彇宸插熀浜庢湰鍦扮郴缁熺殑鏃堕挓鏃堕棿璁剧疆涓哄綋鍓嶉�氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</summary>
+      <returns>宸茶缃负褰撳墠閫氱敤鍗忚皟鏃堕棿 (UTC) 鐨勬棩鏈熷拰鏃堕棿銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Infrastructure.WebUtilities">
+      <summary>琛ㄧず OWIN 鍩虹缁撴瀯鐨� Web 瀹炵敤宸ュ叿銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>娣诲姞鍏锋湁缁欏畾鏍囪瘑绗︾殑鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈠瓧绗︿覆鐨� URI銆�</param>
+      <param name="queryString">瑕佹坊鍔犵殑鏌ヨ瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String)">
+      <summary>娣诲姞鍏锋湁缁欏畾鏍囪瘑绗︾殑鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈠瓧绗︿覆鐨� URI銆�</param>
+      <param name="queryString">瑕佹坊鍔犵殑鏌ヨ瀛楃涓层��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Infrastructure.WebUtilities.AddQueryString(System.String,System.String,System.String)">
+      <summary>娣诲姞鏌ヨ瀛楃涓层��</summary>
+      <returns>娣诲姞鐨勬煡璇㈠瓧绗︿覆銆�</returns>
+      <param name="uri">姝ゆ煡璇㈢殑 URI銆�</param>
+      <param name="name">鎸囧畾鐨勬煡璇㈢殑鍚嶇О銆�</param>
+      <param name="value">瑕佹坊鍔犵殑鏌ヨ鐨勫�笺��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.AppBuilderLoggerExtensions">
+      <summary>Logging extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger``1(Owin.IAppBuilder)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <typeparam name="TType">The type of the logger.</typeparam>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.String)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <param name="name">The name of the logger.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.CreateLogger(Owin.IAppBuilder,System.Type)">
+      <summary>Creates a new ILogger instance from the server.LoggerFactory in the Properties collection.</summary>
+      <returns>The created <see cref="T:Microsoft.Owin.Logging.ILogger" />.</returns>
+      <param name="app">The application builder.</param>
+      <param name="component">The component of the logger.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.GetLoggerFactory(Owin.IAppBuilder)">
+      <summary>Retrieves the server.LoggerFactory from the Properties collection.</summary>
+      <returns>The <see cref="T:Microsoft.Owin.Logging.ILoggerFactory" /> object.</returns>
+      <param name="app">The application builder.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.AppBuilderLoggerExtensions.SetLoggerFactory(Owin.IAppBuilder,Microsoft.Owin.Logging.ILoggerFactory)">
+      <summary>Sets the server.LoggerFactory in the Properties collection.</summary>
+      <param name="app">The application builder.</param>
+      <param name="loggerFactory">The logger factory.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory">
+      <summary>琛ㄧず璇婃柇璁板綍鍣ㄥ伐鍘傘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.#ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener)">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Logging.DiagnosticsLoggerFactory" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="rootSourceSwitch">鏍规簮寮�鍏炽��</param>
+      <param name="rootTraceListener">鏍硅窡韪睛鍚櫒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.DiagnosticsLoggerFactory.Create(System.String)">
+      <summary>鍒涘缓姝よ褰曞櫒鐨勫疄渚嬨��</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Logging.ILogger" />銆�</returns>
+      <param name="name">璁板綍鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.ILogger">
+      <summary>鎻愪緵璁板綍鍣ㄧ殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.ILogger.WriteCore(System.Diagnostics.TraceEventType,System.Int32,System.Object,System.Exception,System.Func{System.Object,System.Exception,System.String})">
+      <summary>灏嗗ぇ澶氭暟鏃ュ織璁板綍妯″紡鑱氬悎鎴愪竴涓柟娉曘�傝繖蹇呴』涓� OWIN 鐜涓殑 Func 琛ㄧず鏂规硶鍏煎銆傝嫢瑕佹鏌� IsEnabled锛岃鍙娇鐢� TraceEventType 璋冪敤 WriteCore 骞舵鏌ヨ繑鍥炲�硷紝灏嗕笉鍐欏叆浠讳綍浜嬩欢銆�</summary>
+      <returns>濡傛灉浜嬩欢鍖呭惈鏃ュ織璁板綍妯″紡锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="eventType">浜嬩欢绫诲瀷銆�</param>
+      <param name="eventId">浜嬩欢鏍囪瘑绗︺��</param>
+      <param name="state">浜嬩欢鐨勭姸鎬併��</param>
+      <param name="exception">寮傚父銆�</param>
+      <param name="formatter">鏍煎紡鍖栫▼搴忋��</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.ILoggerFactory">
+      <summary>琛ㄧず璁板綍鍣ㄥ伐鍘傜殑鎺ュ彛銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.ILoggerFactory.Create(System.String)">
+      <summary>鍒涘缓姝よ褰曞櫒鐨勫疄渚嬨��</summary>
+      <returns>鍒涘缓鐨� <see cref="T:Microsoft.Owin.Logging.ILogger" />銆�</returns>
+      <param name="name">璁板綍鍣ㄧ殑鍚嶇О銆�</param>
+    </member>
+    <member name="T:Microsoft.Owin.Logging.LoggerExtensions">
+      <summary>琛ㄧず璁板綍鍣ㄦ墿灞曘��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.IsEnabled(Microsoft.Owin.Logging.ILogger,System.Diagnostics.TraceEventType)">
+      <summary>纭畾鏄惁宸插惎鐢ㄨ褰曞櫒銆�</summary>
+      <returns>濡傛灉鍚敤浜嗚褰曞櫒锛屽垯涓� true锛涘惁鍒欎负 false銆�</returns>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="eventType">璺熻釜浜嬩欢绫诲瀷銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑涓ラ噸娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">涓ラ噸娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteCritical(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑涓ラ噸娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">涓ラ噸娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑閿欒娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">閿欒娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteError(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑閿欒娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">瑕佸啓鍏ョ殑閿欒娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteInformation(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑淇℃伅娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">淇℃伅娑堟伅銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteVerbose(Microsoft.Owin.Logging.ILogger,System.String)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑璇︾粏娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.Exception)">
+      <summary>鍐欏叆鎸囧畾璁板綍鍣ㄧ殑璀﹀憡娑堟伅銆�</summary>
+      <param name="logger">璁板綍鍣ㄣ��</param>
+      <param name="message">瑕佸啓鍏ョ殑璀﹀憡娑堟伅銆�</param>
+      <param name="error">閿欒銆�</param>
+    </member>
+    <member name="M:Microsoft.Owin.Logging.LoggerExtensions.WriteWarning(Microsoft.Owin.Logging.ILogger,System.String,System.String[])"></member>
+    <member name="T:Microsoft.Owin.Logging.LoggerFactory">
+      <summary>鎻愪緵 OWIN 璁板綍鍣ㄥ伐鍘傘��</summary>
+    </member>
+    <member name="P:Microsoft.Owin.Logging.LoggerFactory.Default">
+      <summary>鑾峰彇榛樿鐨勮褰曞櫒宸ュ巶銆�</summary>
+      <returns>榛樿鐨勮褰曞櫒宸ュ巶銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapMiddleware">
+      <summary>Used to create path based branches in your application pipeline.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.Owin.Mapping.MapOptions)"></member>
+    <member name="M:Microsoft.Owin.Mapping.MapMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Process individual request.</summary>
+      <returns>The task that completes the process.</returns>
+      <param name="context">The context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapOptions">
+      <summary>Options for the Map middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapOptions.#ctor"></member>
+    <member name="P:Microsoft.Owin.Mapping.MapOptions.Branch">
+      <summary>The branch taken for a positive match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.OwinMiddleware" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapOptions.PathMatch">
+      <summary>The path to match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.PathString" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapWhenMiddleware">
+      <summary>Represents the map when middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Microsoft.Owin.Mapping.MapWhenOptions)"></member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenMiddleware.Invoke(Microsoft.Owin.IOwinContext)">
+      <summary>Executes the specified context.</summary>
+      <returns>The specified context.</returns>
+      <param name="context">The context.</param>
+    </member>
+    <member name="T:Microsoft.Owin.Mapping.MapWhenOptions">
+      <summary>Options for the MapWhen middleware.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Mapping.MapWhenOptions.#ctor"></member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Branch">
+      <summary>The branch taken for a positive match.</summary>
+      <returns>Returns <see cref="T:Microsoft.Owin.OwinMiddleware" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.Predicate">
+      <summary>The user callback that determines if the branch should be taken.</summary>
+      <returns>Returns <see cref="T:System.Func`2" />.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Mapping.MapWhenOptions.PredicateAsync">
+      <summary>The async user callback that determines if the branch should be taken.</summary>
+      <returns>Returns <see cref="T:System.Func`2" />.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticateResult">
+      <summary>Acts as the return value from calls to the IAuthenticationManager's AuthenticeAsync methods.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticateResult.#ctor(System.Security.Principal.IIdentity,Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.Security.AuthenticationDescription)">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticateResult" /> class with the specified data.</summary>
+      <param name="identity">The claims that were authenticated by the given AuthenticationType.</param>
+      <param name="properties">The extra values that were provided with the original SignIn call.</param>
+      <param name="description">The description properties for the middleware authentication type.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Description">
+      <summary>Gets or sets the description properties for the middleware authentication type in general. Does not vary per request.</summary>
+      <returns>The description properties for the middleware authentication type.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Identity">
+      <summary>Gets or sets the claims that were authenticated by the given AuthenticationType. If the authentication type was not successful the Identity property will be null.</summary>
+      <returns>The claims that were authenticated by the given AuthenticationType.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticateResult.Properties">
+      <summary>Gets or sets the extra values that were provided with the original SignIn call.</summary>
+      <returns>The extra values that were provided with the original SignIn call.</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationDescription">
+      <summary>琛ㄧず瀹夊叏韬唤楠岃瘉鐨勬弿杩般��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationDescription" /> 绫荤殑鏂板疄渚嬨��</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationDescription.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationDescription" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="properties">姝よ韩浠介獙璇佺殑灞炴�с��</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.AuthenticationType">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺被鍨嬨��</summary>
+      <returns>姝よ韩浠介獙璇佺殑绫诲瀷銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Caption">
+      <summary>鑾峰彇鎴栬缃韬唤楠岃瘉鐨勬枃鏈爣棰樸��</summary>
+      <returns>姝よ韩浠介獙璇佺殑鏂囨湰鏍囬銆�</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationDescription.Properties">
+      <summary>鑾峰彇鎴栬缃韬唤楠岃瘉鐨勫睘鎬с��</summary>
+      <returns>姝よ韩浠介獙璇佺殑灞炴�с��</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationProperties">
+      <summary>Contains the authentication properties.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" /> class.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationProperties.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
+      <summary>Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" /> class.</summary>
+      <param name="dictionary">The underlying dictionary used to store these properties.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.Dictionary">
+      <summary>Gets the underlying dictionary used to store these properties.</summary>
+      <returns>The underlying dictionary used to store these properties.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.ExpiresUtc">
+      <summary>Gets or sets the expiration date and time of authentication.</summary>
+      <returns>The expiration date and time of authentication.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IsPersistent">
+      <summary>Gets or sets a value that indicates whether authentication is persistent.</summary>
+      <returns>true if authentication is persistent; otherwise, false.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.IssuedUtc">
+      <summary>Gets or sets the issuance date and time of authentication.</summary>
+      <returns>The issuance date and time of authentication.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationProperties.RedirectUri"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseChallenge">
+      <summary>琛ㄧず韬唤楠岃瘉鍝嶅簲璐ㄨ銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseChallenge.#ctor(System.String[],Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.AuthenticationTypes">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑绫诲瀷銆�</summary>
+      <returns>韬唤楠岃瘉鐨勭被鍨嬨��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseChallenge.Properties"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseGrant">
+      <summary>琛ㄧず鎺堜簣韬唤楠岃瘉鍝嶅簲鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseGrant.#ctor(System.Security.Claims.ClaimsPrincipal,Microsoft.Owin.Security.AuthenticationProperties)"></member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Identity">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑鏍囪瘑銆�</summary>
+      <returns>韬唤楠岃瘉鐨勬爣璇嗐��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Principal">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺殑涓讳綋銆�</summary>
+      <returns>韬唤楠岃瘉鐨勪富浣撱��</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseGrant.Properties"></member>
+    <member name="T:Microsoft.Owin.Security.AuthenticationResponseRevoke">
+      <summary>琛ㄧず鍚婇攢韬唤楠岃瘉鍝嶅簲鐨勭被銆�</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.AuthenticationResponseRevoke.#ctor(System.String[])">
+      <summary>鍒濆鍖� <see cref="T:Microsoft.Owin.Security.AuthenticationResponseRevoke" /> 绫荤殑鏂板疄渚嬨��</summary>
+      <param name="authenticationTypes">韬唤楠岃瘉绫诲瀷銆�</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.AuthenticationResponseRevoke.AuthenticationTypes">
+      <summary>鑾峰彇鎴栬缃韩浠介獙璇佺被鍨嬨��</summary>
+      <returns>韬唤楠岃瘉绫诲瀷銆�</returns>
+    </member>
+    <member name="T:Microsoft.Owin.Security.IAuthenticationManager">
+      <summary>Represents a list of objects to validate in the authentication manager.</summary>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String)">
+      <summary>Authenticates the result asynchronously.</summary>
+      <returns>The result to authenticate asynchronously.</returns>
+      <param name="authenticationType">The type of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.AuthenticateAsync(System.String[])">
+      <summary>Authenticates the result asynchronously.</summary>
+      <returns>The result to authenticate asynchronously.</returns>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseChallenge">
+      <summary>Gets or sets the authentication response challenge.</summary>
+      <returns>The authentication response challenge.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseGrant">
+      <summary>Gets or sets the authentication response to grant.</summary>
+      <returns>The authentication response to grant.</returns>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.AuthenticationResponseRevoke">
+      <summary>Gets or sets the authentication response to revoke.</summary>
+      <returns>The authentication response to revoke.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(Microsoft.Owin.Security.AuthenticationProperties,System.String[])">
+      <summary>Creates a challenge for the authentication manager.</summary>
+      <param name="properties">The <see cref="T:Microsoft.Owin.Security.AuthenticationProperties" />.</param>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.Challenge(System.String[])">
+      <summary>Creates a challenge for the authentication manager.</summary>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes">
+      <summary>Gets the authentication types in the authentication manager.</summary>
+      <returns>The authentication types in the authentication manager.</returns>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.GetAuthenticationTypes(System.Func{Microsoft.Owin.Security.AuthenticationDescription,System.Boolean})">
+      <summary>Gets the authentication types in the authentication manager.</summary>
+      <returns>The authentication types in the authentication manager.</returns>
+      <param name="predicate">The predicate.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties,System.Security.Claims.ClaimsIdentity[])">
+      <summary>Handles the sign-in process during authentication.</summary>
+      <param name="properties">The properties.</param>
+      <param name="identities">The identities.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignIn(System.Security.Claims.ClaimsIdentity[])">
+      <summary>Handles the sign-in process during authentication.</summary>
+      <param name="identities">The identities.</param>
+    </member>
+    <member name="M:Microsoft.Owin.Security.IAuthenticationManager.SignOut(System.String[])">
+      <summary>Handles the sign-out process after authentication.</summary>
+      <param name="authenticationTypes">The types of authentication.</param>
+    </member>
+    <member name="P:Microsoft.Owin.Security.IAuthenticationManager.User">
+      <summary>Gets or sets the ClaimsPrincipal user.</summary>
+      <returns>The ClaimsPrincipal user.</returns>
+    </member>
+    <member name="T:Owin.AppBuilderUseExtensions">
+      <summary>Extension methods for IAppBuilder.</summary>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Run(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task})">
+      <param name="handler">An app that handles all requests</param>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Use(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
+      <param name="handler">An app that handles the request or calls the given next Func</param>
+    </member>
+    <member name="M:Owin.AppBuilderUseExtensions.Use``1(Owin.IAppBuilder,System.Object[])">
+      <param name="args">Any additional arguments for the middleware constructor</param>
+      <typeparam name="T">The middleware type</typeparam>
+    </member>
+    <member name="T:Owin.MapExtensions">
+      <summary>Extension methods for the MapMiddleware</summary>
+    </member>
+    <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,Microsoft.Owin.PathString,System.Action{Owin.IAppBuilder})"></member>
+    <member name="M:Owin.MapExtensions.Map(Owin.IAppBuilder,System.String,System.Action{Owin.IAppBuilder})">
+      <summary>If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of continuing to the next component in the pipeline.</summary>
+      <param name="pathMatch">The path to match</param>
+      <param name="configuration">The branch to take for positive path matches</param>
+    </member>
+    <member name="T:Owin.MapWhenExtensions">
+      <summary>Extension methods for the MapWhenMiddleware</summary>
+    </member>
+    <member name="M:Owin.MapWhenExtensions.MapWhen(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Boolean},System.Action{Owin.IAppBuilder})">
+      <summary>Branches the request pipeline based on the result of the given predicate.</summary>
+      <param name="predicate">Invoked with the request environment to determine if the branch should be taken</param>
+      <param name="configuration">Configures a branch to take</param>
+    </member>
+    <member name="M:Owin.MapWhenExtensions.MapWhenAsync(Owin.IAppBuilder,System.Func{Microsoft.Owin.IOwinContext,System.Threading.Tasks.Task{System.Boolean}},System.Action{Owin.IAppBuilder})"></member>
+    <member name="T:Owin.PipelineStage">
+      <summary>Specifies an enumeration of pipeline state.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.AcquireState">
+      <summary>The state is AcquireState.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.Authenticate">
+      <summary>The state is Authenticate.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.Authorize">
+      <summary>The state is Authorize.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.MapHandler">
+      <summary>The state is MapHandler.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAcquireState">
+      <summary>The state is PostAcquireState.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAuthenticate">
+      <summary>The state is PostAuthenticate.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostAuthorize">
+      <summary>The state is PostAuthorize.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostMapHandler">
+      <summary>The state is PostMapHandler.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PostResolveCache">
+      <summary>The state is PostResolveCache.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.PreHandlerExecute">
+      <summary>The state is PreHandlerExecute.</summary>
+    </member>
+    <member name="F:Owin.PipelineStage.ResolveCache">
+      <summary>The state is ResolveCache.</summary>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/packages/Owin.1.0/.signature.p7s b/packages/Owin.1.0/.signature.p7s
new file mode 100644
index 0000000..8f58703
--- /dev/null
+++ b/packages/Owin.1.0/.signature.p7s
Binary files differ
diff --git a/packages/Owin.1.0/Owin.1.0.nupkg b/packages/Owin.1.0/Owin.1.0.nupkg
new file mode 100644
index 0000000..4bc0421
--- /dev/null
+++ b/packages/Owin.1.0/Owin.1.0.nupkg
Binary files differ

--
Gitblit v1.9.3