MVC 在服务器上无法运行 /signalr/hubs

MVC not functioning on server /signalr/hubs

我有一个使用 SignalR 的项目(使用 https://gkulshrestha.wordpress.com/2014/05/02/signalr-with-sql-server-query-notification/ 中的教程) 当我从 visual studio 运行 时,我的项目运行完美。但是,当我 运行 它在服务器上时(在发布它并使用 IIS 之后),它不起作用。

具体是发现JS的某部分不是运行ning。 我有

@section Scripts{
    <script src="/Scripts/jquery.signalR-2.1.1.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="/signalr/hubs"></script>
    <script type="text/javascript">
        $(function () {
            // Reference the auto-generated proxy for the hub.
            alert(1);
            var clientHub = $.connection.messageSender;
            alert(5);
            // Create a function that the hub can call back to display messages.
            clientHub.client.broadcastMessage = function (message) {
                // Add the message to page.
                $('#messagecontainer').append('<li>' + message + '</li>');
            };
            alert(2);
            $.connection.hub.start().done(function () {
                alert("connection started")
            }).fail(function (e) {
                alert(e);
            });
            alert(3);

        });

    </script>
}

当 运行通过 visual studio 解决这个问题时,我点击了这里的所有警报。当 运行 在服务器上打开它时(通过按浏览),我只点击了 alert(1) 和其他人的 none。

如有任何帮助,我们将不胜感激!谢谢!

[编辑] 我环顾四周,我怀疑它与我的 signalr/hubs 引用有关。我在 SignalR /signalr/hubs 404 Not Found 上尝试了所有方法,但没有成功。

在包含静态资源时尝试使用助手:

<script src="@Url.Content("~/Scripts/jquery.signalR-2.1.1.js")"></script>

和:

<script src="@Url.Content("~/signalr/hubs")"></script>

这将考虑您的应用程序可能在 IIS 中的虚拟目录 运行。此外,如果您使用的是最新的 Razor,您可以只使用前缀 ~ 来指示相对路径:

<script src="~/Scripts/jquery.signalR-2.1.1.js"></script>

和:

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