SignalR 1.0.0-rc1을 사용하여 ASP.NET 4.5 웹 응용 프로그램을 얻었습니다.이 웹 응용 프로그램은 Azure 웹 사이트에 신속하고 더러운 테스트를 위해 푸시했습니다. 저는이 페이지에 주로 관심이 있습니다 : http://alantaappbeta.azurewebsites.net/api/v3.0/Tests/Sample.htm).Azure 웹 사이트의 "ping"중 SignalR 500 오류가 발생했습니다.
문제는 페이지가 SignalR 서비스와 대화하고 싶지 않은 것입니다. http://alantaappbeta.azurewebsites.net/signalr/hubs이 정확한 클라이언트 측 허브 파일을 반환하고/signalr/negotiate를 호출하면 합리적으로 보이는 JSON이 반환되기 때문에 허브와 모든 것이 올바르게 등록됩니다.
{
"Url":"/signalr",
"ConnectionId":"a15023f9-c675-4fc2-9fd6-403a297f10c0",
"KeepAlive":15.0,
"DisconnectTimeout":40.0,
"TryWebSockets":false,
"WebSocketServerUrl":null,
"ProtocolVersion":"1.1"
}
그러나/signalr/ping을 호출하면 "프로토콜 오류 : 알 수없는 전송"메시지와 함께 500 오류가 반환됩니다. 스택 추적 오류 페이지 반환은 다음과 같습니다
[InvalidOperationException]: Protocol error: Unknown transport.
at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequestAsync(HostContext context)
at Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequestAsync(HostContext context)
at Microsoft.AspNet.SignalR.Owin.CallHandler.Invoke(IDictionary`2 environment)
at Microsoft.AspNet.SignalR.Owin.Handlers.HubDispatcherHandler.Invoke(IDictionary`2 environment)
at Microsoft.Owin.Host.SystemWeb.OwinCallContext.Execute()
at Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object extraData)
at Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
을이 푸른에 있기 때문에, 당신이 일반적으로있는 것 모든 문제 해결 도구에 액세스 할 수없는,하지만 로그 것은 내가 할 수 있었다 위 정보 이외에 다른 정보를 제공하지 않기 위해 액세스하십시오.
내 로컬 IIS 인스턴스에서 잘 실행됩니다 .-).
제안 사항?
편집 :
$.connection.hub.start({
transport: 'auto',
xdomain: true
}).done(function() {
console.log('Connected with hub.id=' + $.connection.hub.id);
}).fail(function (e) {
console.log('Unable to connect to SignalR Hubs: ' + e);
});
그러나 어느 것도 .done()
이나 .fail()
핸들러가 호출되고 있지 : 이것은 내 연결을 여는거야 방법이다.
이상하게도 전송을 'longPolling'으로 설정하면 내 로컬 상자에서 IIS Express를 사용하여 유사한 방식으로 실패 할 수 있습니다. 그러나 내가 Azure에서 운송 수단을 설정 한 것은 아무런 차이를 느끼지 않는 것 같습니다. 나는 여전히 같은 오류를 얻습니다.
dev 브랜치를 사용하고 있습니까? – davidfowl
아니, NuGet의 RC1 패키지. –
ping 엔드 포인트가 RC1 릴리스에 없습니다. – davidfowl