asp.net-mvc - SignalR 2.0 - IIS 虚拟目录中的 404

标签 asp.net-mvc iis-7 signalr

我在部署运行 SignalR 2.0.2 的非常基本的 MVC5 应用程序时遇到问题。当我使用 IIS Express 运行本地开发环境时,一切正常。当我部署到 IIS 时,我的 js 在尝试连接到 SignalR 时收到 404 错误。

更具体地说,我正在部署到在我的默认网站下运行的应用程序/虚拟目录。当我直接发布到默认网站时,一切正常,因此 IIS 不是问题。

获取 http:// myServer/signalr /negotiate?connectionData=%5B%5D&clientProtocol=1.3&_=1395517687175 404(未找到)

我假设 404 是由缺少应用程序名称引起的。即:myServer/我的应用 /signalr/协商...

我搜索了许多关于 IIS 和应用程序/虚拟目录和 SignalR 的帖子和 SignalR 文档,但没有运气。以下是我的应用程序中的代码片段。

谢谢!

JS:

var connection = $.hubConnection();
var proxy = connection.createHubProxy('TestHub');

connection.start()
.done(function () {
console.log('Now connected, connection ID=' + connection.id + ' using transport=' +   connection.transport.name);
                })
                .fail(function () { console.log('Could not connect'); });

启动.cs:
 app.MapSignalR();

更新
通过更改以下 JS 代码,我能够“修复”该问题。问题是,这有多合适?
//var connection = $.hubConnection();
var connection = $.hubConnection("/MyApp/signalr", { useDefaultPath: false });

最佳答案

你的修复看起来很合理。
{ useDefaultPath: false }只是告诉 SignalR 不要将“/signalr”附加到 url,所以你也可以像这样创建你的连接对象:var connection = $.hubConnection("/MyApp");
或者,如果您想使用在/MyApp/signalr/hubs 生成的 JS 集线器代理,您可以像这样连接:

var proxy = $.connection.testHub;

// Make sure you always wire up client methods before calling start
proxy.client.myClientMethod = function () { /* ... */ };

$.connection.hub.start()
    .done(function () { /* ... */ })
    .fail(function () { /* ... */ });

http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#genproxy

关于asp.net-mvc - SignalR 2.0 - IIS 虚拟目录中的 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22582965/

相关文章:

asp.net-mvc - .NET MVC 应用程序中的 'drill down' 角色有多远?

iis-7 - IIS 7 未在经典 ASP 中显示错误。 IIS 6 可以

asp.net - 从 ASP.NET 应用程序写入 IIS 日志

asp.net - SignalR 连接并启动导致 404 错误

javascript - 尝试使用 connection.Start() 连接到服务器时出现 SignalR 客户端错误

c# - 使用 tempdata 验证方法条目并通过 Controller 中的多个 POST 传递信息是否是一种不好的做法?备择方案?

asp.net-mvc - 在IIS7上安装MVC网站

c# - 不同 ASP.NET MVC 组件中的对象作用域和生命周期是什么?

asp.net - 启动 asp.net 站点调试时,Visual Studio 2010 挂起

.NET SignalR 错误 : Cannot read property 'client' of undefined