C # Hashtable "ссылка на объект не установлена" - PullRequest
1 голос
/ 09 февраля 2011

У меня есть интересная проблема, которую я пытаюсь решить. У меня есть следующий код ниже, который в основном является функцией для слияния значений с 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();
}

На наших серверах dev и live он работает отлично. Однако я пытаюсь развернуть приложение на другом рабочем сервере и получить «ссылку на объект, не установленную для экземпляра объекта». Он ломается точно на "Hashtable templateVars = new Hashtable ();" линия. Так что я немного озадачен. Если это была проблема с кодированием, она не должна работать везде?

Единственными различиями между различными производственными серверами являются работающая ОС и IIS. то есть. Server 2005 и IIS7 против Server2003 и IIS6 (это среда, на которой он работает). Оба имеют .net Framework до 3,5 установлен. Могут ли старые ОС и МКС быть проблемой? Это может быть что-то вроде разрешения / памяти? хотя это звучит немного неправдоподобно, поскольку все остальные функции .net, которые я использую на новом производственном сервере, работают отлично.

Все проблемы, связанные с хеш-таблицей, которые я обнаружил, связаны с тем, что она не была создана. Однако моя ошибка происходит в строке, которая пытается создать экземпляр Hashtable.

У кого-нибудь была такая ошибка раньше, и если да, то как вы ее решили? Я даже оценил бы предложения относительно того, что искать, и я попробую. Я также опубликую результаты, если кто-то еще столкнется с этой ошибкой в ​​будущем.

1 Ответ

0 голосов
/ 12 марта 2013

Я так и не понял сути этой ошибки. Предложения по использованию удаленной отладки с Reflector Pro также не работали, указывая на некоторые проблемы с виртуальным сервером, на котором работал веб-сайт. Проверка файлов журналов показала другие ошибки, которые вызвала .net Framework.

Веб-сайт был перенесен на новый виртуальный сервер с использованием IIS7 и Windows Server 2008. Он работал в новой среде как есть.

Возможно, это не идеальное решение для всех, и, возможно, переустановка фреймворка могла бы решить нашу проблему, но, поскольку мы находились в процессе перехода на новую среду (по другим причинам), это решение нас устроило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...