DirectoryEntry.Properties [ "Путь"] Value.ToString ().Проблема IIS7.C # - PullRequest
0 голосов
/ 08 декабря 2011

В настоящее время получает 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 Ответ

2 голосов
/ 08 декабря 2011

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;
...