[英]404 error on signalr/hubs and on jquery scripts
我刚刚开始将SignalR
与C#一起使用,似乎很有趣。
我创建了一个ASP.NET Empty Web Application
并按照下面提到的教程进行操作
我在MSDN上找到了SignalR入门教程。
我已经完成了本教程中提到的所有步骤。 当它在ASP.NET Development Server
上运行时,它似乎可以在我的本地计算机上运行。
但是,当我将项目部署到IIS7
,它不起作用。
当我与小提琴手检查时,它在html页面中包含的所有脚本文件上都显示404结果。
这是提琴手所显示的
甚至我也从StackOverflow上的帖子中找到了一些建议,而当我更改web.config
文件时,该建议似乎也不起作用。
最后,我根据SignalR的FAQ修改了web.config
。
这是我的web.config文件:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
</configuration>
Global.asax文件:
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
// Register the default hubs route: ~/signalr/hubs
RouteTable.Routes.MapHubs();
}
// Rest of the Methods(Session_Start,Application_BeginRequest..) are empty
}
我也变了
<script type="text/javascript" src="/signalr/hubs"></script>
至
<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs") %>'></script>
和
<script type="text/javascript" src='<%= ResolveUrl("~/signalr/hubs") %>'></script>
他们似乎也不起作用。
请随时询问是否需要任何信息。
任何帮助,将不胜感激
更新资料
根据Aron的建议,对Global.asax
文件进行了以下更改
RouteTable.Routes.IgnoreRoute("Scripts/");
现在, jQuery
脚本似乎也正在加载和运行。
这是托管在IIS上的更新的错误消息,它来自“浏览器”窗口的“ Console
选项卡。
SCRIPT5022: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.
您的IIS设置可能有问题。 请尝试为.js扩展名添加MIME类型。 引用此链接
当IIS无法处理扩展名较少的URL时,可能会发生404错误
MSDN文章演示了如何在2.0版中创建SignalR应用程序。 但是您使用signalr 1.0以及Visual Studio的较旧版本。 升级Visual Studio,并使用块包管理器将Signalr 2.0要求添加到您的项目中。 我认为,第一次尝试最好使用asp.net Web应用程序而不是MVC(如MSDN文章)。 这样您就不会有路由问题。 我可以毫无问题地运行示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.