Я только что написал тестовую службу на C# 2010. В методе OnStart я открываю XML-документ в корне диска C: разбор его и запись в другой XML документ также в корне диска C :.Служба C# не будет писать в XML
Когда я устанавливаю сервис и запускаю его, им сказали, что он снова остановился. Выходной файл XML создается, но пуст. Я использую службу как учетную запись локальной системы.
Может ли кто-нибудь сказать мне, почему не написано ни одного контента?
Спасибо,
EDIT (включая код OnStart) ...
protected override void OnStart(string[] args)
{
String win32ClassName = "";
String nodeSubkeyName = "";
List<String> propertyList = new List<String>();
List<String> propertyListQuery = new List<String>();
XmlTextReader reader = new XmlTextReader("C:\\hwin.xml");
XmlTextWriter writer = new XmlTextWriter("C:\\hwout.xml", null);
writer.WriteStartDocument();
writer.WriteComment("Asset hardware Inventory for " + System.Environment.MachineName);
writer.WriteStartElement("hardware");
Приведенный выше код даже не писать стартовый элемент для выходного файла XML, но это создать пустой файл, поэтому подозревайте, что он имеет права на это. Возможно, чтение входного файла - проблема? Я не знаю, как работает учетная запись Local Service!
поэтому он фактически записывает файл на диск? но он пуст .. очень странно! – iwayneo
Угадайте, что вы закрыли WriteStartElement с помощью WriteEndElement, а также закрыли запись, как только закончите. – Rajesh
Я думаю, что это проблема права на созданный файл. Опубликовать небольшую часть кода, может быть, мы сможем помочь вам – h1ghfive