繁体   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