2008-12-10 1 views
1

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

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

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

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

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

Спасибо, Ларри

ответ

0

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

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

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

1

Последующие действия - убедитесь, что ваши серверы соответствуют уровню исправления.
Коренной причиной этого оказалось 3 QA VM, у которых не было
2.0. Установлен пакет .NET Framework SP1.