3

我使用 SignalR、Visual Studio 2013(但应用程序在 2012 年)、框架 4.5 创建了简单的聊天应用程序。

我只使用 ASP.NET 网络表单(不是 MVC)

当我通过视觉工作室运行时它工作。但是当我在 IIS 中配置它时,它在页面控制台中给出以下错误 -

GET http://localhost/chat/signalr/hubs 404 (Not Found) localhost/:30
Uncaught TypeError: Cannot read property 'client' of undefined localhost/chat/:112

'chat' 是虚拟目录的名称。

添加了跟随。以及在 web.config -

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

来自 Global.asax.cs- 的代码

protected void Application_Start(object sender, EventArgs e)
    {
        // Register the default hubs route: ~/signalr/hubs
        RouteTable.Routes.MapHubs();
    }

来自 Index.Html 的代码 -

<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-1.0.0.js"></script>

<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>

我也试过这个,但没有成功 -

<script src="<%= ResolveUrl("~/signalr/hubs") %>" type="text/javascript"></script>

注意 - 我指的是这个http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room 在此先感谢。

4

3 回答 3

0

如果你在 Visual Studio 中运行它,你可能会使用版本 8 中的 IIS Express。SignalR 使用 IIS 7.x 不完全支持的 Web 套接字,因此你必须使用 Windows 8 或 Server 2012。当然你可以使用 IIS Express 8 在开发过程中。

于 2013-07-25T18:40:42.717 回答
0

我遇到了确切的问题,在安装 IIS 7.5 无扩展支持修补程序后已修复

于 2013-10-14T18:09:32.507 回答
0

你能尝试使用 websocket 作为传输层吗

var connection = $.hubConnection('http://' + window.location.host); var proxy = connection.createHubProxy('chatHub');

connection.start({ transport: ['webSockets'] }).done(function () { });

于 2016-11-10T09:03:28.623 回答