Search code examples
c#iisiis-7signalrsignalr-hub

Signalr/Hub not loading in IIS 7 but working correctly in Visual Studio


I am working on a Web Application on the Asp .Net 4.0 framework that uses SignalR, having installed it from the Nuget package. When I debug or run the application without debugging locally it works correctly. However, when it is deployed to the production server it is unable to find the signal/hubs file that is being dynamically injected into the httphandlers. Due to it's dynamic nature it has to be created on the fly, so I can't just copy the working file into the project either.

I have tried the following methods of loading the file:

<script src="/signalr/hubs" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>

And in the code behind:

ScriptManager.GetCurrent(Page).Scripts.Add(new ScriptReference("~/signalr/hubs"));

All of these work locally but not on the server. The path that is rendered in the html looks correct, but there is no file there, delivering a 404 error. If it matters, the server has given the application Full Trust and the application is being run as an application under another site in IIS that uses a subdomain.


Solution

  • The problem was solved by setting the following flags in the web.config.

    <configuration>
        <system.webServer>
            <validation validateIntegratedModeConfiguration="false" />
            <modules runAllManagedModulesForAllRequests="true">
            </modules>
        </system.webServer>
    </configuration>
    

    For some reason Nuget did not set these values for Elmah or SignalR