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