SignalR 2.x错误500

时间:2014-07-16 17:47:49

标签: .net asp.net-mvc-4 iis-7.5 signalr internal-server-error

我已在服务器Windows 2008 R2 X64和IIs 7.5上部署了一个使用SignalR v2.x的Asp.Net MVC 4应用程序。 (.Net v4.5安装在服务器和IIS中)。 我经常收到:当我尝试从客户端发送消息时出现错误500内部服务器错误。 我知道这个: 1.在服务器端收到消息,但服务器没有响应并通知客户端。 2.服务器上禁用防火墙 3.当我在网站上本地连接时(在部署的同一台机器上),SignalR工作正常,但是当我从另一台PC连接时它不起作用。

请帮忙! 感谢

更新 在事件查看器中没有错误或警告。但是,如果我将customErrors设置为off,则会出现以下错误:

'/'应用程序中的服务器错误。连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应。 [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(帖子后发布)+343    eLabin.Presentation.Web.Controllers.CommentController.PostComment(String comment,Guid predmetId)+300    lambda_method(Closure,ControllerBase,Object [])+225    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) +248 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2个参数)+39    System.Web.Mvc.Async。<> c__DisplayClass39。< BeginInvokeActionMethodWithFilters> b__33()+120    System.Web.Mvc.Async。<> c__DisplayClass4f。< InvokeActionMethodFilterAsynchronously> b__49()+ 452    System.Web.Mvc.Async。<> c__DisplayClass37。< BeginInvokeActionMethodWithFilters> b__36(IAsyncResult asyncResult)+15    System.Web.Mvc.Async。<> c__DisplayClass2a。< BeginInvokeAction> b__20()+31    System.Web.Mvc.Async。<> c__DisplayClass25。< BeginInvokeAction> b__22(IAsyncResult asyncResult)+230    System.Web.Mvc。<> c__DisplayClass1d。< BeginExecuteCore> b__18(IAsyncResult asyncResult)+28    System.Web.Mvc.Async。<> c__DisplayClass4。< MakeVoidDelegate> b__3(IAsyncResult ar)+15    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+53    System.Web.Mvc.Async。<> c__DisplayClass4。< MakeVoidDelegate> b__3(IAsyncResult ar)+15    System.Web.Mvc。<> c__DisplayClass8。< BeginProcessRequest> b__3(IAsyncResult asyncResult)+42    System.Web.Mvc.Async。<> c__DisplayClass4。< MakeVoidDelegate> b__3(IAsyncResult ar)+15    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+606    System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+ 288`

1 个答案:

答案 0 :(得分:0)

发现问题。 问题出在我创建HubConnection的服务器端。

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

这里的url是我服务器的外部IP地址。所以服务器试图通过外部IP地址连接到自己。 我所做的就是将网址改为" localhost"一切正常。

var url = "localhost";