Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS上的信号器正在断开连接_C#_Wpf_Iis_Signalr - Fatal编程技术网

C# IIS上的信号器正在断开连接

C# IIS上的信号器正在断开连接,c#,wpf,iis,signalr,C#,Wpf,Iis,Signalr,我有一个使用Signal的生产聊天应用程序。第一阶段是连接的全内存映射。我使用带有guid的静态字典作为roomname/groupname。我在字典中映射连接以模拟我在组中进行的相同添加/删除呼叫,这样我就可以使用Clients.Group(roomname)或Clients.Group(Connection.roomname)向一部分人发送消息 无论看起来是随机的,可能每周有一到两次我的所有桌面用户都断开连接,他们可以通过重新启动应用程序立即重新连接。他们似乎在被丢弃时会重新连接,但并不完全

我有一个使用Signal的生产聊天应用程序。第一阶段是连接的全内存映射。我使用带有guid的静态字典作为roomname/groupname。我在字典中映射连接以模拟我在组中进行的相同添加/删除呼叫,这样我就可以使用Clients.Group(roomname)或Clients.Group(Connection.roomname)向一部分人发送消息

无论看起来是随机的,可能每周有一到两次我的所有桌面用户都断开连接,他们可以通过重新启动应用程序立即重新连接。他们似乎在被丢弃时会重新连接,但并不完全是因为他们会收到呼叫,即使他们不应该收到,因为他们“离开”,并且呼叫将是空的,这意味着他们拥有操纵该组所需的信息,但他们不是该组的一部分

这可能是重新连接/重新连接发射的问题,但没有重新加入所有适当的组(因为这不能保证)?我处理onconnected和ondisconnected,但我不处理onreconned

这也可能是服务器上的内存问题,但我不认为我超出了允许的最大内存,因为我存储的都是文本和包含文本的对象。对话结束后,我会清除连接

一些相关代码(显然是断章取义):

公共类连接
{
私有字符串roomName;
私人词典用户;
私人列表消息;
二等兵布尔回答;
私人CRMHub CRMHub;
私有日期时间;
公共静态字典连接=新建字典();
conn=新连接(个人房间);
conn.Users.Add(Context.User.Identity.Name,tempUser);
连接。添加(康涅狄格州私人房间);
添加(Context.ConnectionId,personalRoom);
     public class Connection
       {
          private string roomName;
          private Dictionary<string, ChatUser> users;
          private List<ChatMessage> messages;
          private bool answered;
          private CRMHub crmHub;
          private DateTime createdOn;


  public static Dictionary<string, Connection> Connections = new Dictionary<string, Connection>();


 conn = new Connection(personalRoom);
           conn.Users.Add(Context.User.Identity.Name, tempUser);
           Connections.Add(personalRoom, conn);
           Groups.Add(Context.ConnectionId, personalRoom);