使用SignalR在ASP.Net中的聊天应用程序出错

时间:2014-10-25 06:17:25

标签: asp.net signalr chat

我正在开发一个具有聊天功能的Web应用程序。我开始使用SignalR进行开发,但单独运行该特定网页时出现错误。这是我得到的错误。

Parser Error

Description: An error occurred during the parsing of a resource 
required to service this request.Please review the following specific 
parse error details and modify your source file appropriately. 

Parser Error Message: 'Virtual_Classroom.chat' is not allowed here 
because it does not extend class 'System.Web.UI.Page'.

Source Error: 
Line 1:  <%@ Page Language="C#" AutoEventWireup="true" 
CodeBehind="chat.aspx.cs"       Inherits="Virtual_Classroom.chat" %>
Line 2:  
Line 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Source File: /chat.aspx    Line: 1 

Virtual Classroom是我项目的名称,chat.aspx是网页。我编译并单独使用chat.aspx页面运行.chat.aspx中的代码隐藏文件如下。

namespace Virtual_Classroom
{
  [HubName("myChatHub")]
  public partial class chat : Hub
  {
    public void send(string message)
    {
      Clients.All.addMessage(message);
    }
  }
}

为了使类从Hub类派生,我删除了System.Web.UI.Page并在上面的代码中添加了Hub。我知道这是导致错误。但我不知道如何摆脱这个错误  我是.Net的新手。请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

这很容易。您的网页chat.aspx由两部分组成 - 布局( .aspx)和背后的代码( .aspx.cs),它们是同一个类的一部分,并且必需后面的代码中的类应该从System.Web.UI.Page派生(如问题中所述)。因此,当您破坏页面时,应该还原此更改。

如果你想为聊天创建一个信号r hub - 你应该为它创建一个单独的类(在这种情况下,最好这个类也应该在一个单独的* .cs文件中),当然它的另一个名字 - 我认为ChatHub适合你的情况。