signalR :未生成 /signalr/hubs

2024-01-30

我可以得到这个tutorial http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr在新项目中工作,但不在我现有的项目中工作。

我的项目是一个 ASP.Net MVC 4 Web 应用程序,web.config 文件中具有以下属性:

<appSettings>
  <add key="webpages:Enabled" value="true"/>
</appSettings>

这是因为我的应用程序是单页应用程序,它在客户端使用 AngularJS。我的应用程序中唯一的页面是index.cshtml,我在其中添加了signalR的相关代码:

 <!-- signalR chat -->
<script src="~/Scripts/jquery.signalR-1.0.0.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="/signalr/hubs"></script>
<!--Add script to update the page and send messages.--> 
<script type="text/javascript">
    $(function () {
        // Declare a proxy to reference the hub. 
        var chat = $.connection.chatHub;
        // Create a function that the hub can call to broadcast messages.
        chat.client.broadcastMessage = function (name, message) {
            // Html encode display name and message. 
            var encodedName = $('<div />').text(name).html();
            var encodedMsg = $('<div />').text(message).html();
            // Add the message to the page. 
            $('#discussion').append('<li><strong>' + encodedName
                + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
        };
        // Get the user name and store it to prepend to messages.
        $('#displayname').val(prompt('Enter your name:', ''));
        // Set initial focus to message input box.  
        $('#message').focus();
        // Start the connection.
        $.connection.hub.start().done(function () {
            $('#sendmessage').click(function () {
                // Call the Send method on the hub. 
                chat.server.send($('#displayname').val(), $('#message').val());
                // Clear text box and reset focus for next comment. 
                $('#message').val('').focus();
            });
        });
    });
</script>

然后我得到了 ChatHub.cs 文件:

public class ChatHub : Hub
{
    public void Send(string name, string message)
    {
        // Call the broadcastMessage method to update clients.
        Clients.All.broadcastMessage(name, message);
    }
}

最后在 global.asax 中:

 protected void Application_Start()
    {
        RouteTable.Routes.MapHubs();
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

当我运行该应用程序时,未生成 /signalr/hubs 文件。我在请求文件时收到 404,并且在线上崩溃了:

 chat.client.broadcastMessage = function (name, message) { ....

因为 chat 为 null,因为上一行没有找到 chatHub:

var chat = $.connection.chatHub;

有谁知道我的代码有什么问题吗?

UPDATE

我通过更改行解决了我的问题::

<script src="/signalr/hubs"></script>

to

<script src="~/signalr/hubs"></script>

我通过更改行解决了我的问题::

<script src="/signalr/hubs"></script>

to

<script src="~/signalr/hubs"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

signalR :未生成 /signalr/hubs 的相关文章

  • 将 Angularjs 动态绑定到新创建的 html 元素

    我有一个带有多个选项卡的选项卡页面 一旦单击调用服务即可返回一些数据 其中一些数据返回 html 表单并且非常随机 我想收集输入的这些值并通过服务将数据发送回服务器 我遇到的问题是我无法从我动态创建的 html 中的输入元素获取数据 我创建
  • 如何在输入框中应用多个 ng-pattern 或条件

    条件第一 a zA Z 5 d 4 a zA Z 1 条件二 a zA Z 4 0 9 5 a zA Z 1 g html
  • 使用 Webpack 代理创建 React 应用程序中的 WebSockets

    我使用版本 3 1 2 2019 年 9 月 19 日 中的 Create React App 创建了我的 React 应用程序 我试图为 Web Socket 请求配置代理 但似乎当我使用代理时 未建立连接 我用过THIS https g
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • AngularJS 使用 PUT 上传图像,可能,如何?

    我正在尝试使用 AngularJS 通过 PUT 或 Post 请求上传图像 这可能吗 如果可以的话 下面如何不更改标头 仍然是 json 并且没有有效负载 这是我尝试过的 在我的控制器中 scope uploadFile function
  • 获取 Angular ng-option 下拉列表的选定文本

    我的角度代码中有这个下拉列表 div class btn group div
  • Angular 和 Node JS 中的路由问题 [Angular]

    我有角度js的问题 我创建了 login html 和 home html 成功登录后我想将页面更改为 home html 我的路由不起作用 默认 url 是 localhost angular 我尝试路由 realpath 即 local
  • 使用 name 属性的动态指令控制器

    我正在尝试使用动态控制器实现指令 以便我可以根据某些条件绑定控制器 就像托德 莫托 Todd Motto 所展示的那样here https toddmotto com dynamic controllers in directives wi
  • 调整离子卡中的图像大小

    我想显示一组图像 并在下面说明 我选择使用 Ionic 卡 我得到这个结果 第一张图片 虽然我想保留现在的相同布局 并添加描述 这是我的代码
  • 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

    我对 Angular 很陌生 所以这可能是一个新手问题 我正在尝试实现一个简单的任务管理器 只是一个练习 以 Rails 作为后端 以 Angular 作为前端 到目前为止 我遵循了教程 一切正常 现在我想在全球范围内实施身份验证 这意味着
  • Signalr - 发送消息的重写方法

    我有一个实施PersistentConnectionSignalr 中的类 对于我们的网站 我需要能够广播消息 然后让每个连接确定该特定消息是否与该特定用户相关 然后再将其通过管道发送到浏览器 像这样的事情 public class MyC
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • Flex、AngularJS + Masonry、akoenig/angular-deckgrid 等 [重复]

    这个问题在这里已经有答案了 我一直在发送此电子邮件 我即将发布一个用于 Web 应用程序安全的应用程序 它需要使用像 Masonry 这样的网格 我已经尝试过所有的 每一个角度模块 指令和不同的方法 包括基于 CSS 的技术 纯 Vanil
  • UI Router 将 url 与 hash(片段)相匹配

    使用 UI 路由器 我需要将 URL 与其中包含的哈希 片段 进行匹配 HTML5 模式 state myState url path id page section templateUrl template html controller
  • 无法将 NULL 值插入列“RoleId”(mvc4 简单成员身份)

    我注意到其他人也遇到了同样的问题 例如无法将 NULL 值插入列 UserId https stackoverflow com questions 15346608 cannot insert the value null into col
  • 将 JS 库 xml2js 与 Angular 2 结合使用

    我正在尝试在 Angular 2 带有 TypeScript 的 RC 1 Web 应用程序中使用 xml2js 作为 XML 解析器 但是我只收到一些错误并且没有有效的解决方案 这是我一步一步所做的 通过安装 xml2jsnpm inst
  • AngularJS $scope 没有观察视图的变化

    我有这个小样本 我希望在浏览器控制台中看到日志消息 表明 scope watcher 运行良好 但不幸的是事实并非如此
  • 找不到模块“node-sass”时出现错误

    配置 macOS High Sierra 版本 10 13 2 节点 v8 1 2 npm 5 0 3 当我在 angularjs 项目中运行 npm start 时 出现以下错误 ERROR in Cannot find module n
  • angularjs 是否将 null 视为 $scope.null ?

    问题的示例 div hello div 这是在以下范围内评估的吗 scope bar null 或者是这样的 scope bar scope null 请注意 在最后一种情况下 scope null 将是未定义的 并且该示例似乎可以正常工作
  • 正确设置 Laravel 5 CSRF 令牌的标头

    好吧 已经搜索这个问题好几个小时了 只是找不到解决方案的开始 我正在使用 angularJS 前端和 laravel 后端 Restangular 是我的通讯服务 我的 POST 很好 因为我可以在数据中包含 token 并且它会起作用 但

随机推荐