DirectoryEntry.Properties["Путь"] Value.ToString(). Проблема IIS7. C#

В настоящее время получаю Unknown error (0x80005000) - Связано с "Исключением COM" в C# при запуске следующего кодаstring virtualDirectory = GetVirtualDirPath("IIS://localhost", "1", reportUrl);

static string GetVirtualDirPath(string iisHost,
                                 string siteName, string vdName)
    {
        string adsiPath = iisHost + "/W3SVC/" + siteName + "/Root/test/" + vdName;

        try
        {
            DirectoryEntry entry = new DirectoryEntry(adsiPath);
            return entry.Properties["Path"].Value.ToString();
        }
        catch (Exception ex)
        {
            // If Virtual Directory is not found,
            // it will throw exception.
            return "";
        }

        return "";
    }

Я настроил "поделиться" как виртуальный каталог внутри "/test" (http://localhost/test/share) и попытался дать этой папке соответствующие разрешения.

Я читал, что это работает только в IIS6, а не IIS7? Если да, то каков эквивалентный код?

1 ответ

Решение

IIS7 теперь предоставляет API управляемого управления, информацию о котором можно найти здесь.

Более конкретно, существуют классы, облегчающие управление виртуальными каталогами.

var iis = new ServerManager();
var site = iis.Sites["SiteName"];
var application = site.Applications["ApplicationName"];
var directories = application.VirtualDirectories;
//proceed to determine the physical path of appropriate directory
var path = directories[0].Path;
Другие вопросы по тегам