2008-12-10 96 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。