C# 使用模拟自动创建IIS7网站(使用Microsoft.Web.Administration)

C# 使用模拟自动创建IIS7网站(使用Microsoft.Web.Administration),c#,iis-7,C#,Iis 7,我正在尝试使用此代码在IIS中创建网站(来自同一服务器上的另一个网站) 但我有一个例外: 消息:Filename:redirection.config 错误:由于权限不足,无法读取配置文件 我尝试过这样的模仿: 但是我得到了一个丑陋的COM错误 模拟正确用户或指定运行管理器的用户的最佳方式是什么。要使用ServerManagerAPI,您需要是所管理计算机上的本地管理员。当您的代码在IIS应用程序的上下文中运行时,您需要将此应用程序的应用程序池标识更改为管理用户(IIS 7.x上的默认标识为Ap

我正在尝试使用此代码在IIS中创建网站(来自同一服务器上的另一个网站)

但我有一个例外:

消息:Filename:redirection.config 错误:由于权限不足,无法读取配置文件

我尝试过这样的模仿: 但是我得到了一个丑陋的COM错误


模拟正确用户或指定运行管理器的用户的最佳方式是什么。

要使用
ServerManager
API,您需要是所管理计算机上的本地管理员。当您的代码在IIS应用程序的上下文中运行时,您需要将此应用程序的应用程序池标识更改为管理用户(IIS 7.x上的默认标识为
ApplicationPoolIdentity
,它是非特权用户)

或者,您可以通过将以下元素添加到Web.config中的
部分来启用ASP.NET模拟:

<authentication mode="Windows" />
<identity impersonate="true" />

)。

要使用
服务器管理器
API,您需要是所管理计算机上的本地管理员。当您的代码在IIS应用程序的上下文中运行时,您需要将此应用程序的应用程序池标识更改为管理用户(IIS 7.x上的默认标识为
ApplicationPoolIdentity
,它是非特权用户)

或者,您可以通过将以下元素添加到Web.config中的
部分来启用ASP.NET模拟:

<authentication mode="Windows" />
<identity impersonate="true" />

)。

可能是您的IISExpress文件夹已被您的用户加密,如果您以管理员身份打开Visual,将无权访问该文件

C:\Users::您的用户::\Documents\IISExpress\config

  • 转到那个文件夹
  • 选择所有文件
  • 在选定的文件上单击鼠标右键
  • 单击“属性”关联菜单
  • 点击“高级…”
  • 删除签入“加密内容以保护数据”
  • 单击“确定”

  • 然后再试一次。。。这对我来说很有效。

    可能是您的IISExpress文件夹中包含了您的用户,如果您以管理员身份打开Visual,将无权访问该文件

    C:\Users::您的用户::\Documents\IISExpress\config

  • 转到那个文件夹
  • 选择所有文件
  • 在选定的文件上单击鼠标右键
  • 单击“属性”关联菜单
  • 点击“高级…”
  • 删除签入“加密内容以保护数据”
  • 单击“确定”
  • 然后再试一次。。。这对我有用