Asp.Net html.renderaction работает локально, но не на сервере без ошибок

Я на самом деле работаю над проектом Asp.Net MVC, и у меня есть проблема, чтобы загрузить представление из другого, используя Html.RenderAction метод. И это только когда я пытаюсь получить доступ к представлению, когда решение развернуто на удаленном сервере.

Вот код, который я использую:

  • У меня есть представление Index.cshtml, которое выглядит следующим образом:

    <section class="panel panel-default">
    <section class="panel panel-default">
    <header class="panel-heading">@Html.Localize("SmartContactMessages", "CustomersManagement")</header>
    <div class="row wrapper">
        <div class="col-sm-5 m-b-xs">
            <a class="btn btn-primary" href="@Url.Action("Create")">
                <i class="fa fa-plus text"></i>
                <span class="text">@Html.Localize("SmartContactMessages", "Create")</span>
            </a>
            @*<a class="btn btn-danger" href="#" onclick="DeleteTerritories()">
                <i class="fa fa-trash-o text"></i>
                <span class="text">@Html.Localize("SmartContactMessages", "Delete")</span>
            </a>*@
        </div>
    </div>
    
    <div id="CustomerListZone">
        @{
            Html.RenderAction("List");
        }
    </div>
    

Как видите, я использую метод Html.RenderAction для загрузки представления "Список".

List.schtml, отображает таблицу с различными предприятиями. (Не нужно отображать его код)

  • В моем контроллере у меня есть следующий код:

        [Authorize(Roles = RoleConstantes.AdminGlobal)]
        public ActionResult List()
        {
            Logger.Info("List method enterred");
            EnterpriseListMessage message = null;
            WcfService<IEnterpriseServiceContract>.Use(Logger, e => message = e.GetAll());
    
            var smartContactEnterpriseListViewData = new SmartContactEnterpriseListViewData
            {
                CurrentPage = 0,
                ItemPerPage = 10,
                NbPage = 1,
                Total = 2
            };
            if (message != null && message.Success && message.Result != null)
            {
                smartContactEnterpriseListViewData.Entities = message.Result;
                //var t = new EnterpriseEntity[3];
                //t[0] = new EnterpriseEntity {Id = 1, Name = "Test1", UuId = "AZERTY1234", IsActive = true};
                //t[1] = new EnterpriseEntity {Id = 2, Name = "Test2", UuId = "WXCVBBN6548", IsActive = true};
                //t[2] = new EnterpriseEntity {Id = 3, Name = "Test3", UuId = "QSDFDG542358", IsActive = false};
                //smartContactEnterpriseListViewData.Entities = t;
            }
            else
            {
                if(message == null)
                    Logger.Error("Get all enterprises fail : Message is null");
                if(message != null && !message.Success)
                    Logger.Error("Get all enterprises fail : Message success is false");
                if(message != null && message.Success && message.Result == null)
                    Logger.Error("Get all enterprises fail : Message result is null");
            }
    
            return PartialView(smartContactEnterpriseListViewData);
        }
    

Этот метод должен получить все предприятия и вернуть его в View. Все это работает без проблем на моем локальном IIS. Но как только я создаю его на удаленном сервере, я больше не могу отображать это представление, и никакие ошибки не отображаются.

Я регистрирую метод List(), указав "Метод ввода списка", но на удаленном сервере он никогда не вызывается. Я также высмеял вызов WCF, чтобы подтвердить, что проблема не возникла отсюда (как вы можете увидеть закомментированный код в методе List)

Если у кого-то из вас есть идея, это будет оценено:)

1 ответ

Решение

Наконец я решил проблему. Проблема была не в авторизации роли. На самом деле, мой WCF вернул мне много данных, поэтому он вызвал поток maxBufferedSizeOverflow. На самом деле у меня меньше данных на локальном сервере, чем на удаленном. Поэтому я реализовал метод для возврата меньшего количества данных, установив нумерацию страниц. Задача решена!

Другие вопросы по тегам