2012-02-16 40 views

Trả lời

18

Ví dụ đã lỗi thời. Đó là vì dự án MVC mặc định gọi RegisterRoutes (RouteTable.Routes); Bạn cần phải di chuyển MapConnection vào bên trong RegisterRoutes, sau khi routes.IgnoreRoute ("{} tài nguyên .axd/{* pathInfo}"; nhưng trước bất kỳ tuyến đường khác

Tôi hy vọng điều này sẽ giúp

.
+1

Tôi đã thử điều đó, nhưng vẫn nhận được 404. –

+0

Tôi đã thử triển khai SignalR bằng cùng một mẫu nhưng gặp phải vấn đề tương tự. Các/echo/đàm phán vẫn còn 404'ing .. Ai đó có thể giúp đỡ? – KevinIsNowOnline

+0

Hãy thử đọc giải pháp của tôi một lần nữa, đó là thứ tự của RegisterRoutes quan trọng là –

3

Tôi gặp lỗi chính xác khi cố gắng triển khai mẫu kết nối liên tục cơ bản và mất một thời gian để nhận ra rằng đó là do phiên bản không phù hợp với Newtonsoft.Json, sự cố và giải pháp được mô tả tại đây:

https://github.com/SignalR/SignalR/issues/195

Tức là, thêm một phần như:

<dependentAssembly> 
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" /> 
</dependentAssembly> 

vào web.config của bạn.

Không biết tại sao phần đó bị thiếu đối với tôi vì tôi hiểu nó nên được tự động thêm vào bởi nuget, có lẽ là điều cần làm với Visual Studio 11 beta. Nhưng dù sao, đó là giải pháp cho vấn đề của tôi.

+0

cảm ơn người đàn ông, phải mất một thời gian để nhận thấy điều này, nếu tôi có thể cho bạn một nghìn điểm tôi sẽ –

+0

Crazy, tôi đã có cùng một vấn đề. Tại địa phương ứng dụng của tôi là tốt nhưng đã nhận được 404 khi gọi signalr. Tôi thêm vào web.config của tôi trên máy chủ và poof: làm việc. – Kywillis

0

Có hai bước:
1. Trong web.config thêm hoặc chỉnh sửa quy tắc json

<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" 
publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" /> 
</dependentAssembly> 


2. Trong Global.asax Thêm mới:

RouteTable.Routes.MapConnection<ChatConnection>("negotiate", "/chat"); 


Trong phương pháp protected void Application_Start(){}

Chúc bạn may mắn!

Các vấn đề liên quan