【发布时间】:2008-12-10 16:23:41
【问题描述】:
完整的错误是-“值不能为空。参数名称:virtualPath”。这发生在我们的 QA 和培训环境(Win 2003 Server 和 IIS6)中,但当然无法在调试器中重新创建。更糟糕的是,尽管有一个合理的全局错误处理程序,但没有堆栈跟踪伴随错误,并且没有任何内容写入事件日志。该应用程序是在 2.0 框架下运行的大型完全全球化的 Asp.Net (VB) Web 应用程序。它对 resx 文件使用通常的“App_LocalResources”结构,并且迄今为止表现得非常好。应用程序中有几个地方使用了这样的代码:
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 块可以正常工作。我们还在数据网格列标题的任何地方使用这种语法:
<asp:TemplateColumn HeaderText="<%$ Resources:resHeader %>" >
我们还使用了大量的 Ajax 并不断将 ascx 控件动态加载到占位符中。如果有人对此有任何见解,我将非常感谢您的帮助。
谢谢,拉里
【问题讨论】:
标签: asp.net internationalization