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

时间:2014-02-28 15:59:39

标签: jquery asp.net visual-studio-2012 signalr signalr-hub

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

NB - 最终通过fiddler运行对/ signalr / hubs的调用返回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.stockTickerMini未定义

非常感谢:)

1 个答案:

答案 0 :(得分:0)

好吧,经过振铃并发现没有错,(并创建其他自动生成的集线器,具有相同的最终结果)我得出结论,这是“其中一个”错误,也许它不是中心的集线器所有。 因此,我完全取消了SignalR,并通过nuget重新添加。这次我没有得到404但是在它自己的集线器中产生了一个错误(与SignalR无关的错误),并且一旦对它进行了排序,一旦部署,它们都会在调试中挂起,并且(一般来说!)。

希望我知道其根本原因是什么,但删除任何与SignalR相关的内容并重新添加似乎都可以解决问题......