我在asp.net mvc中遇到SignalR的问题 我在下面添加一个包:
并添加Startup.cs
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Paksh.Startup))]
namespace Paksh
{
public class Startup
{
public static void ConfigureSignalR(IAppBuilder app)
{
app.MapSignalR();
}
}
}
但我收到错误:
尝试加载应用时发生以下错误。 - OwinStartupAttribute.FriendlyName值''与给定值不匹配' ProductionConfiguration'在Assembly' Paksh,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。 - 给定的类型或方法' ProductionConfiguration'没找到。尝试指定程序集。 要禁用OWIN启动发现,请添加appSetting owin:AutomaticAppStartup,其值为" false"在你的web.config中。 要指定OWIN启动程序集,类或方法,请在web.config中添加appSetting owin:AppStartup以及完全限定的启动类或配置方法名称。
答案 0 :(得分:9)
错误明确指出
找不到给定的[...]方法'ProductionConfiguration'。
这意味着OWIN Startup Class Detection正在查找您提供的类型ProductionConfiguration
上的Paksh.Startup
方法,但无法找到它。有些东西告诉我你的 web.config 中也有类似的东西:
<appSettings>
<add key="owin:appStartup" value="ProductionConfiguration" />
</appSettings>
您有几种方法可以解决这个问题:
ConfigureSignalR
方法的名称更改为ProductionConfiguration
OwinStartupAttribute
:[assembly: OwinStartup(typeof(Paksh.Startup), "ConfigureSignalR")]
要了解OWIN启动类检测,请阅读更多here。
答案 1 :(得分:0)
我遇到与OP类似的错误,但是使用属性而不是web.config
。我有:
[assembly: OwinStartup("Configuration", typeof(StartUp))]
namespace WebPipes
{
public class StartUp
{
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration.UseSqlServerStorage("HangfireDB");
app.UseHangfireServer();
app.UseHangfireDashboard();
}
}
}
OwinStartup
中的参数不正确,第一个参数表示友好名称,而不是方法名称。但是,以下代码确实有效:
[assembly: OwinStartup(typeof(StartUp), "Configuration")]
namespace WebPipes
{
public class StartUp
{
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration.UseSqlServerStorage("HangfireDB");
app.UseHangfireServer();
app.UseHangfireDashboard();
}
}
}