将SignalR应用于ASP.NET网站

时间:2017-11-23 05:20:09

标签: c# asp.net signalr startup

我试图为我的网站创建一个聊天室(ASP.NET C#)。最初,我选择 ASP.NET网站来开发我的网站,而不是 ASP.NET Web应用程序

在我尝试应用SignalR之前,一切似乎都很好。

我有必要的参考资料,.dll也可以通过 NuGet 在以下路径下载(例如)

D:\CL\CL\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll

现在问题是 Startup.cs (如下所示)

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(CL.Startup))]

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapSignalR();
    }
}

由于我的网站创建为 ASP.NET网站,因此它没有名称空间。 因此,CL.Startup部分会出现以下错误。

    System.EntryPointNotFoundException: The following errors occurred while attempting to load the app.
    - The OwinStartupAttribute.FriendlyName value '' does not match the given value 'CL.Startup' in Assembly 'App_Code.g9dw5cpb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
    - The given type or method 'CL(1).Startup' was not found. Try specifying the Assembly.
    To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
    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.

ASP.NET网站是否有其他方法可以应用SignalR? 或者是否有其他建议的解决方案为我的网站实施聊天室?

thx for reading。

1 个答案:

答案 0 :(得分:0)

我正在查看一些较旧的信号器项目,并且我认为您缺少OwinStartupAttribute类和项目命名空间。请在第一次创建项目时调用项目名称,并将属性添加到程序集中。

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(CL.Startup))]
namespace CL
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();



        }
    }
} 

此OwinStartupAttribute类

用于标记程序集中的哪个类应该用于自动启动。