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.
Replace:
with:
You Js file should be include like this :
The above is the answer for this one but I want to point out if you already have URL Rewriting for generic rules which I did and I was confused as to my 404 issue that was not solved by this one, I added the following rule to overwrite my greedy matching that was causing the 404 for URL Rewrite.
This is just here in case someone has a similar issue.