【问题标题】:Random "virtualPath" error - Asp.Net application随机“virtualPath”错误 - Asp.Net 应用程序
【发布时间】: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


    【解决方案1】:

    跟进 - 确保您的服务器达到正确的补丁级别。
    其根本原因是没有 3 个 QA VM
    2.0 .Net Framework SP1 已安装。

    【讨论】:

      【解决方案2】:

      这可能听起来很傻,但我以前也遇到过这种情况。

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

      另外,您得到的实际异常是什么? NullReferenceException?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多