AjaxMethods в Windows Azure не работает - PullRequest
0 голосов
/ 03 мая 2011

Мы показываем отчеты в нашем веб-приложении Azure, используя элемент управления ReportViewer (rdlc) в VS2010, который работает отлично. Недавно мой клиент попросил меня захватить событие Print для ReportViewer и записать запись на сервере. Я подключил кнопку печати .. Это прекрасно работает, когда я запускаю веб-приложение в локальной среде. Однако в Azure метод Ajax никогда не вызывается со стороны клиента. Подскажите пожалуйста что делать? Есть ли ограничение для Ajax в среде Azure?

Я регистрирую страницу на Page_Load в коде

protected void Page_Load(object sender, EventArgs e)
{
  Ajax.Utility.RegisterTypeForAjax(typeof(Pages.Report));

  ImageButton btnPrint = new ImageButton();
  btnPrint = ((ImageButton)(this.FindControl("ctl00$" + ReportViewer1.ClientID.Replace("_","$") + "$ctl06$ctl06$ctl00$ctl00$ctl00")));
  btnPrint.Attributes["onclick"] += "attachEventForPrint();";
}

 [AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]

 public static void LogEvent(int pLoggingEvent)
 {
  // Addded logic to log event
 }

И в файле ASPX была добавлена ​​следующая функция в JS

 function attachEventForPrint() {
   if (typeof (Report) != "undefined") {
                Report.LogEvent(4);
            }
        }

1 Ответ

1 голос
/ 03 мая 2011

Хорошей новостью является то, что я не думаю, что есть какие-либо ограничения в использовании элементов управления ajax - я использовал несколько, и они просто сработали.

Некоторые вещи, которые нужно проверить, могут быть:

  • можете ли вы использовать Fiddler для просмотра трассировки HTTP - отправляется ли запрос на сервер при нажатии кнопки печати?
  • можете ли вы использовать отладчик javascript для проверки отсутствия ошибоккогда сообщается, что attachEventForPrint происходит?
  • есть ли здесь какие-либо проблемы с "State" - особенно с хранилищем сеансов?

Еще одна вещь, чтобы проверить, есть ли ещеудобный доступ к кнопке печати - "$ctl06$ctl06$ctl00$ctl00$ctl00" выглядит так, как будто он вызывает проблемы либо сейчас, либо в какой-то момент в будущем

...