2017-05-24 21 views
9

Bir MVC uygulamasında signalr 2.2.2 kullanıyorum. Her şey uygulama başka bir sayfaya şu formda bir konsol hatası gider her zaman gösterildiğini, aslında ok dışında çalışır: Bu sadece ateş olurFirefox ile SignalR, konsolda XML Ayrıştırma Hatası gösterir

XML Parsing Error: no root element found 
Location: http://localhost/signalr/abort?transport=serverSentEvents&clientProtocol=1.5&connectionToken=2elX1XZHXH0xmQaLZKyHUFW5Z2rb2DGRYEI... 

. Bunun nasıl tamir edileceğini bilen biri var mı? Teşekkürler

cevap

0

Bilinen Firefox-884693 sorunu ile ilişkili olabilir. Bazı araştırmalara dayanarak (here ve here), ve searching SinyalR kodu üzerinden, yanıt geri gönderilmeden önce bir düzeltme Content-Type atamak olacaktır. Yani aşağıdaki dosyaların değiştirilmesi gerekebilir.

// src/Microsoft.AspNet.SignalR.Core/PersistentConnection.cs 
private static Task FailResponse(IResponse response, string message, int statusCode = 400) 
{ 
    response.StatusCode = statusCode; 
    // response.ContentType = "text/plain"; // <--- ADD THIS LINE 
    return response.End(message); 
} 


// src/Microsoft.AspNet.SignalR.Core/Transports/WebSocketTransport.cs 
private Task AcceptWebSocketRequest(Func<IWebSocket, Task> callback) 
{ 
    var accept = _context.Environment.Get<Action<IDictionary<string, object>, WebSocketFunc>>(OwinConstants.WebSocketAccept); 

    if (accept == null) 
    { 
     // Bad Request 
     _context.Response.StatusCode = 400; 
     // _context.Response.ContentType = "text/plain"; // <--- ADD THIS LINE 
     return _context.Response.End(Resources.Error_NotWebSocketRequest); 
    } 

    Action<IWebSocket> prepareWebSocket = socket => { 
     _socket = socket; 
     socket.OnClose = _closed; 
     socket.OnMessage = _message; 
     socket.OnError = _error; 
    }; 

    var handler = new OwinWebSocketHandler(callback, prepareWebSocket, _maxIncomingMessageSize); 
    accept(null, handler.ProcessRequest); 
    return TaskAsyncHelper.Empty; 
} 

Bu şu anda zamanım daha uzun projedir vb çekme isteği yaratarak, onu test, değişiklikleri uygulamak, Çatallama, kaynak projeyi açmak için Hata bildirmeden gerektirecektir. Bu teoriyi test etmek isteyen varsa, teşekkürler.