我刚开始在C#中使用SignalR
,似乎很有意思。
我创建了ASP.NET Empty Web Application
并按照下面提到的教程
我在MSDN上找到了Getting Started with SignalR教程。
我已经完成了本教程中提到的所有步骤。当它在ASP.NET Development Server
上运行时,它似乎可以在我的本地机器上运行。
但是当我将项目部署到我的IIS7
时,它不起作用。
当我使用fiddler检查时,它在html页面中包含的所有脚本文件中都有404的结果。
这是小提琴手展示的
即使我从StackOverflow上的帖子中找到了一些建议,当我更改我的web.config
文件时,它似乎也不起作用。
最后我根据FAQ's of SignalR修改了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>.
答案 0 :(得分:1)
您的IIS设置可能存在问题。请尝试为.js扩展名添加MIME类型。请参阅此link
答案 1 :(得分:1)
答案 2 :(得分:0)
MSDN文章演示了如何在2.0版中创建SignalR应用程序。但你使用信号器1.0,可能是视觉工作室的旧版本。升级visual studio并使用nugget包管理器为您的项目添加signalr 2.0需求。我认为作为第一次尝试,最好使用asp.net Web应用程序而不是MVC(作为MSDN文章)。所以你不会有路由问题。我可以毫无问题地运行样本。