Пользовательские страницы ошибок в службах Reporting Services 2008 - PullRequest
3 голосов
/ 09 октября 2008

Я бы хотел переименовать (и отправить сообщения об ошибках) для всех страниц ошибок по умолчанию в SSRS (рисунок ниже) при доступе к отчетам через / ReportServer /. Я уже обрабатываю событие ASP OnError, и некоторые ошибок SSRS по умолчанию, похоже, перехватывают свои собственные исключения, а затем отображают на этой странице отмену ответа до того, как событие OnError будет запущено.

Есть идеи о том, как я могу получить представление о SSRS для маркировки всех страниц ошибок?

Reporting Services Error

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

У меня была похожая проблема, и я нашел следующее решение. Это может привести к поломке, если Microsoft изменит этот конкретный метод. Следующий код будет добавлен в заголовок страницы, чтобы убедиться, что он запускается после загрузки javascript ReportViewer, но до создания экземпляра RSClientController.

// This replaces a method in the ReportViewer javascript. If Microsoft updates 
// this particular method, it may cause problems, but that is unlikely to 
// happen.The purpose of this is to redirect the user to the error page when 
// an error occurs. The ReportViewer.ReportError event is not (always?) raised 
// for Remote Async reports
function OnReportFrameLoaded() {
    this.m_reportLoaded = true;
    this.ShowWaitFrame(false);

    if (this.IsAsync)
    {
        if(this.m_reportObject == null)
        {
            window.location = 
                '<%= HttpRuntime.AppDomainAppVirtualPath %>/Error.aspx';
        }
        else
        {
            this.m_reportObject.OnFrameVisible();
        }
    }
}
RSClientController.prototype.OnReportFrameLoaded = OnReportFrameLoaded;

Исходный код из файла сценария Microsoft ReportViewer (внутри Microsoft.ReportViewer.WebForms, 8.0.0.0, .Net Framework 3.5 SP1):

function OnReportFrameLoaded()
{
    this.m_reportLoaded = true;
    this.ShowWaitFrame(false);

    if (this.IsAsync && this.m_reportObject != null)
        this.m_reportObject.OnFrameVisible();
}
RSClientController.prototype.OnReportFrameLoaded = OnReportFrameLoaded;
1 голос
/ 20 июля 2011

я создал это решение для SSRS2005 и 2008. ниже версия 2008r2

в reportviewer.aspx, добавьте прямо перед </form>

<script type="text/javascript">
var rptDivString=document.getElementById('ReportViewerControl_ctl10_NonReportContent').innerHTML;
//alert( rptDivString );
var numPermError = rptDivString.search(/permissions/i);
if (numPermError>0)
{
var docTitle = document.title;
var reportName = docTitle.substr(0,docTitle.length-16);
alert('Reporting Services permissions error in report: ' +  reportName );
}
</script>
1 голос
/ 26 апреля 2009

К сожалению, вы не можете использовать визуальные аспекты SSRS. Вы можете, если вы используете отчеты напрямую через SOAP и веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...