2008-12-10 125 views
1

完整的错误是 - “值不能为空。参数名称:virtualPath”。这发生在我们的质量保证和培训环境(Win 2003 Server & IIS6)中,但当然不会在调试器中重新创建。更糟糕的是,尽管有一个合理的全局错误处理程序,但没有任何堆栈跟踪伴随错误发生,并且没有任何内容写入事件日志。该应用程序是在2.0框架下运行的大型完全全球化的Asp.Net(VB)Web应用程序。它对resx文件使用通常的“App_LocalResources”结构,迄今为止表现相当好。有在应用几个地方,这样的代码被用于:随机“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/catch块正常工作时,我强迫“路径”变量是什么。我们还到处使用这个语法数据网格的列标题:

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

我们还使用了大量的Ajax和动态的ascx控件加载到占位符不断。如果有人对此有所了解,我将非常感谢帮助。

谢谢,拉里

回答

0

这可能听起来很傻,但赫克我不得不在此之前发生在我身上。

如果你复制并粘贴你的错误,我注意到它说“virtualPath”(小写v);在示例代码中,您使用的属性具有VirtualPath(大写字母V)。

此外,你正在得到什么实际例外?一个NullReferenceException?

1

后续行动 - 确保您的服务器达到适当的修补程序级别。
导致这种情况的根本原因是3个QA虚拟机没有安装
2.0 .Net Framework SP1。