DirectoryEntry.Properties [ “路径”] Value.ToString(); IIS7问题。 C#

时间:2011-12-08 11:20:19

标签: c# asp.net iis-7 iis-6 iis-7.5

当前获取Unknown error (0x80005000) - 在运行以下代码时链接到C#中的“COM Exception” 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 个答案:

答案 0 :(得分:2)

IIS7现在公开了一个托管管理API,其信息可以是found here

更具体地说,有一些类可以方便管理虚拟目录。

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;