Случайная ошибка «virtualPath» - приложение Asp.Net

Полная ошибка - «Значение не может быть нулевым. Имя параметра: virtualPath». Это происходит в наших средах QA и обучения (Win 2003 Server и IIS6), но, конечно, не поддается восстановлению в отладчике. Что еще хуже, несмотря на разумный глобальный обработчик ошибок, никакая трассировка стека не сопровождает ошибку и ничего не записывается в журнал событий. Приложение представляет собой большое полностью глобализированное веб-приложение Asp.Net (VB), работающее под управлением 2.0 Framework. Он использует обычную структуру «App_LocalResources» для файлов resx и на сегодняшний день работает довольно хорошо. В приложении есть несколько мест, где используется такой код:

Dim x As New Compilation.ExpressionBuilderContext(Control.TemplateControl)  
Dim path As String = x.VirtualPath  
Dim res As String = HttpContext.GetLocalResourceObject(path, resourceKey).ToString  

Однако блок Try / Catch вокруг этого кода работает правильно, когда я заставляю переменную «path» быть ничем. Мы также используем этот синтаксис везде для заголовков столбцов сетки данных:

<asp:TemplateColumn HeaderText="<%$ Resources:resHeader %>" >  

Мы также используем значительное количество Ajax и постоянно загружаем элементы управления ascx в заполнители. Если у кого-то есть понимание этого, я очень признателен за помощь.

Спасибо ларри

10.12.2008 16:23:41
2 ОТВЕТА

это может звучать глупо, но, черт возьми, у меня такое уже было раньше.

если вы скопировали и вставили свою ошибку, я заметил, что там написано «virtualPath» (строчная буква v); в то время как в вашем примере кода, свойство, которое вы используете, имеет VirtualPath (верхний регистр V).

Кроме того, какое реальное исключение вы получаете? исключение NullReferenceException?

0
10.12.2008 16:34:50

Следите - убедитесь, что ваши серверы работают на должном уровне исправлений.
Основной причиной этого оказались 3 виртуальные машины QA, на которых не было установлено
2.0 .Net Framework SP1.

1
22.12.2008 20:23:44