Signalr 1.0.1跨域404错误
我有Signalr跨域使用问题。我在一个解决方案中有三个不同的项目(应用程序),并使用signalr来启用它们之间的聊天功能。我有其他三个应用程序分开的聊天项目。Signalr 1.0.1跨域404错误
这是它的代码:
HUB
[HubName("ChatHub")]
public class ChatHub : Hub
{
public void Send(PorukaViewModel message)
{
..do some code
Clients.All.addMessage(
... // returns feedback to clients
);
}
}
GlobalASAX
protected void Application_Start()
{
RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true });
}
这是代码我的客户应用,
控制器
string chatUrl = System.Configuration.ConfigurationManager.AppSettings["ChatUrl"] + "/signalr/hubs";
var connection = new HubConnection(chatUrl, useDefaultUrl: false);
IHubProxy myHub = connection.CreateHubProxy("ChatHub");
connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
{
//... I log error and stop connection
connection.Stop();
}
message = "some message";
myHub.Invoke("Send", message).Wait();
connection.Stop();
});
这所有的工作在我的本地很好,但是当我在IIS上部署我有connection.Start()
此错误:
System.Net.WebException: The remote server returned an error: (404) Not Found. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at Microsoft.AspNet.SignalR.Client.Http.HttpHelper.<>c__DisplayClass2.b__0(IAsyncResult ar) at System.Threading.Tasks.TaskFactory
1.FromAsyncCoreLogic(IAsyncResult iar, Func
2 endFunction, Action1 endAction, Task
1 promise, Boolean requiresSynchronization)
我浏览所有的问题与解答*,但找不到任何帮助我。
我在做什么错?
*注意
使用jQuery我修改hubs.js和改变了这种代码:
var signalrUrl = $("#chatUrl").val() + '/signalr';
...
signalR.hub = $.hubConnection(signalrUrl, { useDefaultPath: false });
,并在我的通信次数使用,这是好的工作都在本地主机和IIS。
也许问题在这一行?
signalR.hub = $.hubConnection(signalrUrl, { useDefaultPath: false });
在原有/ signalr /集线器这样的:
signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false });
我如何能做到这一点从控制器?
此代码是不正确:
string chatUrl = System.Configuration.ConfigurationManager.AppSettings["ChatUrl"] + "/signalr/hubs";
/SignalR /集线器指向一个JavaScript代理。
/signalr是连接端点所以代码应该是:
string chatUrl = System.Configuration.ConfigurationManager.AppSettings["ChatUrl"];
由于.NET客户端自动将默认/ signalr URL。
更多关于这里的文档https://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs#hubconnection-api