在 Windows 8.1 上访问 Microsoft.Web.Administration.ServerManager.Site 时出现 UnauthorizedAccessException

JM *_*uer 5 c# iis wix windows-8.1

Microsoft.Web.Administration.ServerManager.Sites如果用户没有文件权限,是否有人会收到有关在 Win8.1(和 Win8)上访问集合的任何提示"%SystemRoot%\System32\inetsrv\config\redirection.config"

UnauthorizedAccessException因为在这种情况下用户会得到......

更重要的是,在 Win8 上,Microsoft.Web.Administration.ServerManager如果您的用户没有"%SystemRoot%\System32\inetsrv\config".

这在 Win7、W2008 和 W2012 上完美运行。

操作方法:http ://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

我需要在“客户端”步骤(在 UI 中)启动的 WiX c# 自定义操作中使用此功能来浏览已安装的网站及其上的应用程序,以便对新的 WebApplication 名称进行唯一性检查。

当然,我在谷歌搜索时找不到任何相关答案。只有几个答案,他们暗示以提升的权限启动或更改文件夹的权限,当然这在常规用户设置 UI 过程中是不可行的。

例如: http: //sharepointyankee.com/2011/03/30/system-unauthorizedaccessexception-filename-redirection-config/

JM *_*uer 2

仅供参考,似乎无法摆脱这个......

因此,我选择修改我的自定义操作,通过捕获 UnauthorizedAccessException 来忽略这种情况,并仍然设置唯一性检查成功并返回 CA 调用成功。

在这种情况下,在客户端步骤中我不会失败,而对应的情况是我无法获得唯一性检查的真实结果。但是,如果它不会因 UnauthorizedAccessException 失败,我会得到结果,并且我可以向用户生成一个对话框,邀请他更改站点名称。

然后在服务器步骤中,顺便说一句,此检查有效,我做了相同的测试,以便如果网站不是唯一的,则能够通过明确的消息使设置失败。对于必须重新启动安装程序才能更改站点名称的用户来说,这并不是最好的选择,但它可以通过尝试创建两个具有相同名称的网站来避免奇怪的失败。