SignalR 2.x Ошибка 500

Я развернул приложение Asp.Net MVC 4, которое использует SignalR v2.x на сервере Windows 2008 R2 X64 и IIs 7.5. (.Net v4.5 установлен на сервере и в IIS). Я постоянно получаю: Ошибка 500 Внутренняя ошибка сервера при попытке отправить сообщение от клиента. Я знаю это: 1. Сообщение получено на стороне сервера, но сервер не отвечает и не уведомляет клиентов. 2. На сервере отключен брандмауэр. 3. Когда я локально подключаюсь к сайту (на том же компьютере, который развернут), SignalR работает отлично, но НЕ работает, когда я подключаюсь с другого ПК.

Пожалуйста помоги! Спасибо

ОБНОВЛЕНИЕ. В средстве просмотра событий нет ошибок или предупреждений. Но если я отключу customErrors, то получу следующую ошибку:

"Ошибка сервера в" / "приложении. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом по прошествии определенного периода времени, или установление соединения не удалось из-за того, что подключенный хост не ответил. [SocketException (0x274c): попытка подключения не удалась, потому что подключенная сторона не ответила должным образом по прошествии определенного периода времени, или установление соединения не удалось, потому что подключенный хост не ответил {serverIP}: 80] System.Net.Sockets.Socket.EndConnect (IAsyncResult asyncResult) +8794760 System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state, IAsyncResult asyncResult, Exception & exception) +354

[AggregateException: произошла одна или несколько ошибок.] System.Threading.Tasks.Task.Wait (Int32 millisecondsTimeout, CancellationToken cancellationToken) +14555717 eLabin.Presentation.Web.Controllers.CommentController.NotifyHub (Post post) +343 eLabinPresentation.Web.Controllers.CommentController.NotifyHub (Post post) +343 eLabinPresentation. .Controllers.CommentController.PostComment (String comment, Guid predmetId) +300 lambda_method (Closure, ControllerBase, Object []) +225 System.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext controllerContext, параметры IDictionary2 parameters) +248 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2) +39 System.Web.Mvc .Async. ‹› C__DisplayClass39. ‹BeginInvokeActionMethodWithFilters› b__33 () +120 System.Web.Mvc.Async. ‹› C__DisplayClass4f. ‹InvokeActionMethodFilterAsynchronously› b__49c. b__36 (IAsyncResult asyncResult) +15 System.Web.Mvc.Async. ‹› c__DisplayClass2a. ‹BeginInvokeAction› b__20 () +31 System.Web.Mvc.Async. ›c__DisplayClass25. ‹BeginInvokeAction ‹BeginInvokeAction ‹› b__› b__›b__ esult) +230 System.Web.Mvc. ‹› c__DisplayClass1d. ‹BeginExecuteCore› b__18 (IAsyncResult asyncResult) +28 System.Web.Mvc.Async. ‹› c__DisplayClass4. ‹MakeVoidDelegate› Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +53 System.Web.Mvc.Async. ‹› C__DisplayClass4. ‹MakeVoidDelegate› b__3 (IAsyncResult ar) +15 System.Web.Mvc. ) +42 System.Web.Mvc.Async. ‹› C__DisplayClass4. ‹MakeVoidDelegate› b__3 (IAsyncResult ar) +15 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute.Application () ExecuteStep (шаг IExecutionStep, логическое значение и завершено синхронно) + 288`


person Luka    schedule 16.07.2014    source источник
comment
Есть много вещей, которые могут привести к появлению кода состояния 500. Автор просмотрев журналы сервера и / или временно отключив customErrors, вы можете найти больше подробности о 500. Если эти дополнительные сведения не помогают вам решить проблему самостоятельно, вы можете добавить их к своему вопросу.   -  person halter73    schedule 17.07.2014


Ответы (1)


Нашел проблему. Проблема была на стороне сервера, где я создаю HubConnection.

var url = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath, StringComparison.InvariantCulture);
var connection = new HubConnection(url);

здесь URL-адрес был внешним IP-адресом моего сервера. Итак, сервер пытался подключиться к самому себе через внешний IP-адрес. Все, что я сделал, это изменил URL-адрес на «localhost», и все работало нормально.

var url = "localhost";
person Luka    schedule 17.07.2014