SignalR集线器在部署后未定义(通过VS2012工作)



好的,这似乎是一个关于通过VS2012运行(运行良好)与在本地win7 IIS 7.5计算机上部署之间的差异的问题。

NB-最终通过fiddler,呼叫/信号机/集线器返回404

javascript中报告的错误为:

messageHub is undefined

其中

var messageHub = $.connection.startHub;

在我的集线器类中

[HubName("startHub")]
public class ourHub : Hub
{
....

我正在App Start 中调用MapHubs

protected void Application_Start(object sender, EventArgs e)
{
//Required for SignalR
RouteTable.Routes.MapHubs();
}

我在web.config…中有RAMFAR(runAllManagedModulesForAllRequests="true">)设置

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>

问题似乎是关于我如何定义自动生成的信号机/集线器

这是一个asp.net应用程序(不是mvc),所以故障排除页面(https://github.com/SignalR/SignalR/wiki/Faq)似乎表示

<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs") %>'></script>

它既不能通过VS进行调试,也不能在部署时工作我也试过

<script src="/signalr/hubs"></script>  (also with the type declaration)
<script src="~/signalr/hubs"></script>

在其他类似的线程中,已经提到应用修补程序http://support.microsoft.com/kb/980368但win7下载状态不适用于我的电脑。。。

NB SignalR版本为1.1.3。

我还下载了StockTicker应用程序,它在VS中再次运行良好,但在部署时报告了相同的潜在问题,因为$.connection.stockTikerMini是未定义的

非常感谢:)

好吧,在检查了振铃器并没有发现任何错误后(并创建了其他自动生成的集线器,最终结果相同),我得出结论,这是"其中之一"错误,可能根本不是集线器。因此,我完全取消了SignalR的切换,并通过nuget重新添加。这一次我没有得到404,而是在集线器中生成了一个错误(这个错误与SignalR无关),一旦排序,它就在调试中挂在一起,并且(至关重要!)一旦部署。

希望我知道根本原因是什么,但删除任何与SignalR相关的内容并重新添加似乎奏效了。。。

最新更新