Я пытаюсь выполнить простой поиск данных с помощью C # и служб каталогов, но по какой-то причине он не работает ни на каких компьютерах с XP. Если я запускаю свой код на компьютере с Server 2003, проблем не возникает. Я потратил немало времени, пытаясь выяснить, есть ли, возможно, какой-нибудь дистрибутив, который мне нужен в XP, или его функциональности просто нет, но я нашел ссылки на других разработчиков, у которых похожий код работает под XP. Если у кого-то есть опыт или совет, которым я могу поделиться, я буду признателен за это.
Простой фрагмент кода, который вылетает для меня:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.DirectoryServices;
namespace IIS_Site_Query_Tool
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
DirectoryEntry W3SVC = new DirectoryEntry("IIS://localhost/w3svc");
foreach (DirectoryEntry Site in W3SVC.Children)
{
//Do some data processing
}
}
}
}
Запуск этого под XP дает мне следующую ошибку с HRESULT -2147463168:
System.Runtime.InteropServices.COMException was unhandled
Message="Unknown error (0x80005000)"
Source="System.DirectoryServices"
ErrorCode=-2147463168
StackTrace:
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.ChildEnumerator..ctor(DirectoryEntry container)
at System.DirectoryServices.DirectoryEntries.GetEnumerator()
...
Погугление различных частей информации об ошибке привело меня к мысли, что это довольно общая ошибка взаимодействия COM, и на данный момент у меня нет идей. Любая помощь приветствуется!