来自javascript调用的SignalR不正确的内容类型

时间:2015-07-08 20:04:05

标签: javascript c# signalr

当我从javascript调用SignalR(跨域)服务器失败时,调用告诉Oops。

  

500内部服务器错误System.InvalidOperationException不正确   内容类型:at   Microsoft.AspNet.Http.Features.Internal.FormFeature.d__12.MoveNext()   在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()   在   Microsoft.AspNet.SignalR.TaskAwaiterHelper.PreserveCultureAwaiter.GetResult()   在   Microsoft.AspNet.SignalR.Transports.LongPollingTransport.d__28.MoveNext()   在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()   在   Microsoft.AspNet.SignalR.TaskAwaiterHelper.PreserveCultureAwaiter.GetResult()   在   Microsoft.AspNet.SignalR.Transports.ForeverTransport.d__29.MoveNext()   在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()   在   Microsoft.AspNet.SignalR.TaskAwaiterHelper.PreserveCultureAwaiter.GetResult()

<script type="text/javascript" src="~/lib/jquery/jquery.signalr-2.0.3.js"></script>
<script type="text/javascript" src="~/lib/jquery/jquery.signalr.hubs.js"></script>

<script type="text/javascript">
    $(function () {
        /*SignalR*/
        actividadSignalR = $.connection.Cross2BusinessHub;
        if (actividadSignalR != undefined) {
            actividadSignalR.on('RespuestaActividad', function (id) {
                alert("Respuesta recibida");
            });
        }
        /**Fin SignalR*/
        $('#table_@guid').customDataTable();

        $('.pausarContinuarActividad').on('click', function (e) {

            var controlEstadoActividad = $(this);
            if (controlEstadoActividad.hasClass('disabled'))
                return;
            var estadoActividadDiv = controlEstadoActividad.parent().parent().parent().find('.estadoActividad');
            var estadoActividad = estadoActividadDiv.html();
            estadoActividadDiv.loading(2);
            controlEstadoActividad.parent().find('a').addClass('disabled');

            $.connection.hub.start({ transport: activeTransport, jsonp: true }, function () {
                actividadSignalR.server.notificarCambioEstadoActividad(controlEstadoActividad.attr('data-identificacion'), controlEstadoActividad.attr('data-evento'))
                    .done(function () {
                        alert("Respuesta enviada");
                    }).fail(function () {
                        notify('Información', 'No se puede pausar la actividad.', { hPos: 'center', showCloseOnHover: false });
                        estadoActividadDiv.html(estadoActividad);
                        controlEstadoActividad.parent().find('a').removeClass('disabled');
                    });
            });
        });

        $('.cancelarActividad').on('click', function (e) {

        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

看起来您使用的是AspNet v5 - 这是bug。该错误表明它会在长时间轮询中发生,因此如果您尝试不同的传输方式,它可能会有效。