簡體   English   中英

無法發布ASP.NET SignalR代碼

[英]Unable to publish an ASP.NET SignalR code

我在經典的ASP.NET Web窗體中實現了SignalR以啟用進度欄。 在本地測試實施時,一切工作正常

但是,當我嘗試將代碼發布到服務器時,應用程序崩潰,並顯示了一個非常普通的ASP.NET錯誤

發布SignalR時,我需要使用或執行哪些特定操作?

提前非常感謝你

這是我的中心班

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace IAACCESS.SignalR
{
    public class ProgressHub : Hub
    {
        static ProgressHub()
        {

        }
    }
}

這是我的入門班

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(IAACCESS.SignalR.Startup1))]

namespace IAACCESS.SignalR
{
    public class Startup1
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

這是我的JavaScript部分

   function ProgressBarModal(showHide) {

        if (showHide === 'show') {
            $('#mod-progress').show();
            if (arguments.length >= 2) {
                $('#progressBarParagraph').text(arguments[1]);
            } else {
                $('#progressBarParagraph').text(arguments[1]);
            }

            window.progressBarActive = true;

        } else {
            $('#mod-progress').hide();
            window.progressBarActive = false;
        }
    }

    $(function () {
        // Reference the auto-generated proxy for the hub.
        var progress = $.connection.progressHub;
        console.log(progress);

        // Create a function that the hub can call back to display messages.
        progress.client.AddProgress = function (fileName, message, percentage) {
            ProgressBarModal("show", fileName + " " + message);
            document.getElementById("divProgress").style.display = "block";
            document.getElementById("divUpload").style.display = "block";
            document.getElementById("divProgress").style.width =  percentage + "%";
            document.getElementById("<%=lblPercentage.ClientID %>").firstChild.data = parseInt(percentage) +  "%";
            $('#ProgressMessage').width(percentage);
            if (percentage === "100%") {
                ProgressBarModal();
            }
        };

        $.connection.hub.start().done(function () {
            var connectionId = $.connection.hub.id;
            console.log(connectionId);
        });

    });

首先,正如我在評論中提到的,我將自定義錯誤屬性從RemoteOnly更改為Off。

在那里,我看到了對錯誤的更好描述

“ / access_int”應用程序中的服務器錯誤。 此操作需要IIS集成管道模式

我去了IIS,將應用程序池設置從“基本”更改為“集成”

那給了我另一個錯誤

500內部服務器錯誤。 您正在尋找的資源有問題,無法顯示

然后我去了IIS,並將身份模擬的屬性更改為false

之后一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM