我猜,你的問題是這樣的:
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer),() => JsonSerializerFactory.Value);
如果您使用Autofac作爲容器/依賴解析器,你要註冊與Autofac序列化,不能與即將TO-被替換的全局依賴解析器。
builder.Register(ctx => JsonSerializerFactory.Value).As<JsonSerializer>();
此外,我看到你正在使用OWIN。當您使用OWIN時,您不會引用GlobalHost
- 您分別設置了集線器配置。 The docs have an example showing how to do it:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var builder = new ContainerBuilder();
// STANDARD SIGNALR SETUP:
// Get your HubConfiguration. In OWIN, you'll create one
// rather than using GlobalHost.
var config = new HubConfiguration();
// Register your SignalR hubs.
builder.RegisterHubs(Assembly.GetExecutingAssembly());
// Set the dependency resolver to be Autofac.
var container = builder.Build();
config.Resolver = new AutofacDependencyResolver(container);
// OWIN SIGNALR SETUP:
// Register the Autofac middleware FIRST, then the standard SignalR middleware.
app.UseAutofacMiddleware(container);
app.MapSignalR("/signalr", config);
}
}
謝謝,可能需要幾天時間我才能檢查結果並標記爲正確。我知道這將與全局主機有關,只是不確定註冊該串行器的語法。 – MrBliz
這對我不起作用。它註冊一切正常,但串行器似乎搞亂了通信。一旦我有了序列化程序,來自主機的消息就不會再向客戶端發送消息了。 @MrBliz你能分享一下你是否有這個固定的? – Jasper
我沒有。我結束了客戶端上的pascal套件 – MrBliz