Iis 使用Wix将ClientAccessPolicy.xml安装到默认网站

Iis 使用Wix将ClientAccessPolicy.xml安装到默认网站,iis,wix,Iis,Wix,我正在使用Wix安装我的web应用程序,它包括一个Silverlight应用程序。由于跨域限制,我需要安装ClientAccessPolicy文件,以确保Silverlight应用程序可以与包含的web服务进行通信 不幸的是,ClientAccessPolicy.xml必须从网站的根目录中可用,因此我不能将其与我的web服务或网站放在一起。e、 g 作品: 不起作用: 如何找到IIS“默认网站”的目录,以便将文件作为安装的一部分复制到该目录中?不幸的是,您必须为此编写自定义操作。这似乎只是一个简

我正在使用Wix安装我的web应用程序,它包括一个Silverlight应用程序。由于跨域限制,我需要安装ClientAccessPolicy文件,以确保Silverlight应用程序可以与包含的web服务进行通信

不幸的是,ClientAccessPolicy.xml必须从网站的根目录中可用,因此我不能将其与我的web服务或网站放在一起。e、 g

作品:
不起作用:


如何找到IIS“默认网站”的目录,以便将文件作为安装的一部分复制到该目录中?

不幸的是,您必须为此编写自定义操作。这似乎只是一个简单的即时操作,即找到正确的目录路径并将其放入属性

更新:此示例的C#代码可能如下所示:

 DirectoryEntry website = new DirectoryEntry(string.Format("IIS://localhost/w3svc/{0}/Root", siteID));
 if (website != null)
 {
    string sitePath = website.InvokeGet("Path") as string;
    if (sitePath != null)
    {
       session["SITE_PATH"] = sitePath;
       return ActionResult.Success;
    }
 }
 return ActionResult.Failure;
它假定您以某种方式知道siteID。例如,如果不总是默认网站,最好让用户选择。但那是另一个故事

另外请注意,此代码需要特殊权限才能访问DirectoryEntry-普通用户是不够的


希望这能有所帮助。

我认为可能需要一个操作,但到目前为止,我所看到的唯一真正找到该值的代码是vbscript()。你知道怎么从C#开始吗?