簡體   English   中英

C#哈希表“未設置對象引用”

[英]C# Hashtable “object reference not set”

我有一個有趣的問題要解決。 我下面有以下代碼,基本上是一個將值與html文件合並並提供結果集的功能。 我出於這些目的使用哈希表。

功能如下(請記住,我繼承了此功能,目前無法更改)

public static string ParseTemplate(string _FileName, int _NumberofSomething)
{
  Hashtable templateVars = new Hashtable();
  templateVars.Add("NameOfFile", _FileName);
  templateVars.Add("NumberOfSomething", _NumberofSomething);
  TemplateParser.Parser parser = 
      new TemplateParser.Parser(
          System.Web.HttpContext
            .Current.Server.MapPath("~/docs/Templatenr.htm"), templateVars);
  return parser.Parse();
}

在我們的開發和實時服務器上,它運行良好。 但是,我試圖將應用程序部署到另一台生產服務器,並獲得“未將對象引用設置為對象實例”。 它在“ Hashtable templateVars = new Hashtable();”上完全中斷。 線。 所以我有點困惑。 如果這是編碼問題,那么它肯定不能在所有地方工作嗎?

不同生產服務器之間的唯一區別是操作系統和正在運行的IIS。 即。 Server 2005和IIS7與Server2003和IIS6(這是它所處的環境)。 兩者都安裝了.net框架,最高支持3.5。 較舊的OS和ISS可能會引起問題嗎? 這可能是許可/記憶嗎? 盡管這聽起來有些不可思議,因為我在新生產服務器上使用的所有其他.net功能都可以正常工作。

我發現的有關哈希表的所有問題都與未實例化有關。 但是,我的錯誤發生在試圖實例化Hashtable的行上。

以前有沒有人遇到過這樣的錯誤,如果是這樣,您如何解決它? 我什至希望您能找到所需的建議,然后嘗試一下。 如果將來其他人遇到此錯誤,我也會回傳結果。

我從來沒有真正找到這個錯誤的根源。 使用Reflector Pro進行遠程調試的建議也不起作用,指出網站正在運行的虛擬服務器存在一些問題。檢查日志文件顯示.net框架拋出了其他錯誤。

該網站已使用IIS7和Windows Server 2008移到了新的虛擬服務器上。它在新環境中仍能正常工作。

對於所有人來說,這可能都不是理想的解決方案,也許重新安裝框架可以解決我們的問題,但是由於我們正處於轉換到新環境的過程中(由於其他原因),因此該解決方案很適合我們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM