ASP.NET 응용 프로그램이 있습니다. 디버깅으로 실행합니다. localhost : 2842에서 실행됩니다.ASP.NET SignalR 시작시 C# 클라이언트 응용 프로그램 예외
서버에 메소드가없는 클래스에 정의 된 SignalR Hub가 있습니다.
WPF Windows C# 응용 프로그램이 있습니다. 나는 SignalR NuGet 패키지를 추가했다.
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.MapSignalR(new HubConfiguration
{
EnableDetailedErrors = true
});
}
}
:
public class MyHub : Hub
{
public static void SendMeData(string dataString)
{
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
if (context != null)
context.Clients.All.SendMeData(dataString);
}
}
내가 Startup.cs이 코드를 가지고 :
여기 var hubConnection = new HubConnection("http://localhost:2842");
IHubProxy myHubProxy = hubConnection.CreateHubProxy("MyHub");
myHubProxy.On<string>("SendMeData", dataString => {
Console.WriteLine("String value {0}", dataString);
});
hubConnection.Start().Wait();
가 내 허브 클래스는 서버에 정의되어있다 : 나는 클라이언트 프록시를 인스턴스화하려면 다음 코드를 사용
내가 겪고있는 문제는 C# 클라이언트가 hubConnection.Start()를 호출 할 때입니다. 나는 아주 도움이되는 예외를 얻는다. 다음은 예외입니다.
StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content:
System.Net.Http.StreamContent, Headers: Transfer-Encoding: chunked
X-SourceFiles: =?UTF-8?B?QzpcTXlEZXZcUmVhbHRpbWVNRFxSZWFsdGltZU1EUHJvdG9cUmVhbHRpbWVNRFByb3RvXHNpZ25hbHJcbmVnb3RpYXRl?=
Cache-Control: private Date: Thu, 27 Apr 2017 04:23:18 GMT Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Type: text/html; charset=utf-8
서버 코드에 중단 점을 설정했는데 절대로 그 중 하나에 도달하지 않습니다.
어떻게 알아낼 수 있습니까?
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
if (context != null)
이 제거하십시오 : 당신의 MyHub 클래스에서
개발자 예외를 설정하여 스택 추적을 보거나 첫 번째 예외의 중단을 설정하고 서버를 디버깅합니다. – Pawel