c# - 在 Windows 8.1 上访问 Microsoft.Web.Administration.ServerManager.Site 时发生 UnauthorizedAccessException

标签 c# iis wix windows-8.1

如果用户没有权限访问文件 "%SystemRoot%\System32\inetsrv\config\redirection.config" ?

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

更广泛地说,在 Win8 上,如果您的用户没有 "%SystemRoot%\System32\inetsrv\config 权限,您可能会在任何 Microsoft.Web.Administration.ServerManager 属性上遇到麻烦".

这在 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/

最佳答案

仅供引用,似乎没有办法摆脱这个......

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

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

然后在服务器步骤中,顺便说一下,如果网站不是唯一的,我会进行相同的测试,以便能够通过明确的消息使设置失败。 对于必须重新启动设置才能更改网站名称的用户来说,这不是最好的选择,但它可以通过尝试创建两个具有相同名称的网站来避免奇怪的故障。

关于c# - 在 Windows 8.1 上访问 Microsoft.Web.Administration.ServerManager.Site 时发生 UnauthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33350329/

相关文章:

c# - 将形状添加到新的 Visio 文档

c# - WCF - 已添加具有相同键的项目

c# - 虚拟路径 XX 映射到另一个应用程序,这是不允许的。

wix - 错误 0x8007007a : failed to copy XmlConfig record Id

wix - 重用 WIX 组件来加速烛光/光

WIX:我可以根据 WIX 中的另一个属性定义一个属性吗?

c# - 尝试在 C# 中构建一个可以从 VB5/6 引用和使用的 COM 组件

c# - 将 Json 代码转换为 C#(数字作为键)

c# - 现有 Umbraco 项目的开发

C# 命名空间问题