【发布时间】:2012-12-13 18:05:26
【问题描述】:
我将在这个问题的开头说我大约 30 小时前开始使用 SignalR,所以请原谅任何业余问题,如果你知道一些我错过的文档,请随时向我指出。另外,我不是想写一篇博文——只是解释我为达到目标所经历的步骤。
TLDR?跳到最后的问题...
我需要使用 Sql Server 背板(很想使用 Redis,但我们目前不处理 Redis,并且不习惯在一个开发周期中引入太多许多新技术)。目前,Microsoft.AspNet.SignalR.SqlServer 没有可用的 NuGet 包,所以我必须使用 Github 源代码。
所以我去了源代码,编译并添加了对 Microsoft.AspNet.SignalR.SqlServer.dll 的引用,但现在编译失败(特别是在我的代码中引用 GlobalHost.DependencyResolver.UseSqlServer( ... ) 时 - 这是一个依赖冲突,其中 @987654326 @code 期待*.SignalR.Core 的更新版本——这并不奇怪,因为自从 NuGet 包发布以来,Github 的版本(毫无疑问)有很多变化)。 :(
所以下一步是使用我用*.SqlServer 编译的*.Core。下一个问题 - 新的 SignalR 版本不再适用于 *.Hosting.Common 或 *.Hosting.AspNet,它们已被 *.Owin 库替换。
所以,我添加了 *.Owin(和 Owin - 来自 NuGet),但现在我遇到了另一个问题:MapHubs( ... ) 扩展方法不再有效 - 在 Owin 中有名为 MapHubs( IAppBuilder builder, ... ) 的扩展方法,但它们没有不再使用 RouteTable 了 - 它们使用 Owin.IAppBuilder (因此需要引用 Owin,我想)。
所以这就是我所在的位置。我快速阅读了Owin(似乎是一个很酷的概念),但我并不特别在意花几个小时来解决这个问题,只是为了能够在服务器端设置 SignalR。那么,现在来回答问题:
- 我是否应该尝试让
*.SqlServer与 SignalR 的旧 NuGet 包配合得很好(换句话说,更改*.SqlServer的依赖关系是否可能会引入不可靠的行为)?或者,是否有一个版本的*.SqlServer可以与 SignalR 的当前 NuGet 版本一起使用? - 通过 Owin 主机方法运行 SignalR 需要哪些具体步骤(如果没有引入 Nancy 集成,我找不到任何示例 - 或者这是正确的方法)?
- MapHubs 方法的替代方法是什么?我从哪里获得 IAppBuilder?我什至应该这样做吗?
- 在Google Groups post 中,David Fowler 指出,在 Owin 支持下,不再需要 AspNet 依赖项。很好 - 但是现在有任何理由在 ASP.Net MVC 应用程序中使用 SignalR 吗?
- 如果 SignalR 的任何部分都没有通过服务器上的 IIS 托管,客户端回退(即 SSE 或长轮询)是通过 IIS 还是独立使用 Owin 主机?
- 最后,我计划在 ASP.Net MVC 4 项目中运行 SignalR,该项目作为虚拟目录托管在另一个现有站点之外 - 我想在单个域中工作。当我的网站托管在 IIS 7.5 中时,使用 Owin 方法是否仍然可行?
更新:根据上述1.,我设法通过使*.SqlServer 依赖于当前的NuGet *.Core 实现来编译代码。所以现在我可以继续开发。我不认为我想在生产中使用它——我只需要做一个与处理对象相关的小改动——但我只是不认为这是一个好方法。所以我关于 Owin 方法的问题仍然存在——除非有人能说服我我所采取的方法是好的。
谢谢, 扎克
【问题讨论】:
-
这类问题太宽泛了。相反,请尝试提出人们可能真正想要回答的不同的具体问题。
-
是的,我明白你在说什么,大卫 - 我通常会尽量具体地回答 SO 问题。问题是,我一直未能找到与概述的问题相关的任何有用信息——所以我真的不知道从哪里开始。我知道你们仍在开发下一个版本,开发是理所当然地比文档更重要的重点,但如果没有工作示例,甚至很难知道要问什么。
-
另外,虽然问题 2 和 5 可能过于笼统(我现在将看到删除/改进它们),但有一些(问题 1、3、4 和 6)是,恕我直言,很具体...
-
仍然没有人会回复。如果您想讨论某些事情,请前往jabbr.net/#/rooms/signalr
标签: asp.net-mvc signalr