2015-03-11 4 views
1

Я разрабатываю веб-службу (C# WebAPI2), поэтому вы можете просто отправлять сообщения с помощью SignalR, а затем сохранять транскрипт сообщения в базе данных TSQL. Однако после перемещения концентраторов SignalR внутри библиотеки классов я не могу сейчас получить к ним доступ. Я разработал очень просто консольное приложение для связи с веб-службой, но я получаю странное исключение.C# SignalR в библиотеке классов

Вот исключение, которое бросают:

«StatusCode: 500, ReasonPhrase: 'Внутренняя ошибка сервера', версия: 1.1, Содержание: System.Net.Http.StreamContent, заголовки: \ г \ п {\ г \ п Transfer-Encoding: фрагментированное \ г \ п X-исходников,: = UTF-8 В QzpcRGV2ZWxvcG1lbnRcU291cmNlQ29kZVxTVVBTZXJ2aWNlXFNVUC5TZXJ2aWNlXHNpZ25hbHJcbmVnb3RpYXRl = \ г \ п Cache-Control:? частное \ г \ п Дата: Wed, 11 Mar 2015 10:50:18 GMT \ r \ n Сервер: Microsoft-IIS/8.0 \ r \ n X-AspNet-версия: 4.0.30319 \ r \ n X-Powered-By: ASP.NET \ r \ n Content-Type: text/html;кодировка = UTF-8 \ г \ п}»

Необработанное исключение типа 'System.AggregateException' произошло в SignalR Client Connection.exe

Файл Owin запуска помещается в веб-службы App_Start, вот что это выглядит:

using System; 
using System.Threading.Tasks; 
using Microsoft.Owin; 
using Owin; 
using Microsoft.AspNet.SignalR; 

[assembly: OwinStartup(typeof(Service.App_Start.Startup))] 

namespace Service.App_Start 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.Map("/signalr", map => 
      { 
       var hubConfiguration = new HubConfiguration 
       { 
        EnableDetailedErrors = true, 
        EnableJSONP = true 
       }; 

       map.RunSignalR(hubConfiguration); 
      }); 
     } 
    } 
} 

Большое спасибо.

+0

найти лучший заголовок на ваш вопрос! –

+0

Имеет ли ваше свойство System.AggregateException внутреннее исключение? Если так, то, что это? Я обнаружил, что SignalR не может передавать простые строки без проблем, но если я пытаюсь отправить более сложные объекты, иногда получаю сводное исключение. – Roger

ответ

0

Я не уверен, что детали в вашем случае, но для меня, я обнаружил, что я получала System.AggregationException:

System.AggregateException was unhandled 
    HResult=-2146233088 
    Message=One or more errors occurred. 
    Source=mscorlib 
    StackTrace: 
     at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 
     at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) 
     at System.Threading.Tasks.Task.Wait() 
     at Client.CommunicationHandler.AddMessage(String method, String args, String serverUri, String hubName) in c:\Workspace\EnvisionRealTimeRemoteOps\CodeProjectSelfHostedBroadcastServiceSignalRSample\Client\CommunicationHandler.cs:line 24 
     at Client.Program.Main(String[] args) in c:\Workspace\EnvisionRealTimeRemoteOps\CodeProjectSelfHostedBroadcastServiceSignalRSample\Client\Program.cs:line 15 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: System.Net.Http.HttpRequestException 
     HResult=-2146233088 
     Message=An error occurred while sending the request. 
     InnerException: System.Net.WebException 
      HResult=-2146233079 
      Message=Unable to connect to the remote server 
      Source=System 
      StackTrace: 
       at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 
       at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) 
      InnerException: System.Net.Sockets.SocketException 
       HResult=-2147467259 
       Message=No connection could be made because the target machine actively refused it 127.0.0.1:8083 
       Source=System 
       ErrorCode=10061 
       NativeErrorCode=10061 
       StackTrace: 
         at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 
         at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) 
       InnerException: 

Пока я не добавил вызов следующее:

WebApp.Start("http://localhost:8083"); // Put your desired URL in... 

Обратите внимание, что в моем случае мое приложение использует Self Host HostedR.

Смежные вопросы