Полная ошибка - «Значение не может быть нулевым. Имя параметра: 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 в заполнители. Если у кого-то есть понимание этого, я очень признателен за помощь.
Спасибо, Ларри