更改虚拟路径并在代码中启用/禁用站点

时间:2012-05-09 12:05:37

标签: c# iis-7 asp.net-4.0

我正在开发一个包含三个Web服务和一个网站的Web项目。我的源代码存储在TFS中以进行版本控制,我经常需要在同一代码上的几个不同分支中工作。这些分支定期合并,并以相同的方式设置。它们都使用WebDev.WebServer作为默认主机。这很好,因为它可以节省其他团队成员不必连续更改IIS中的设置以切换到正确的文件夹 那么,你猜怎么着? 我想转移到IIS,仍然可以为每个分支使用相同的配置。这将导致冲突,因为我每次切换分支时都需要更改这些项目的虚拟文件夹。我还需要能够关闭这些IIS站点以启用WebDev。手动,这是一项工作,我是一名程序员。这需要自动化...
我的想法是创建一个在我的本地主机上运行的小型Web应用程序,我可以使用它来更改虚拟文件夹和/或打开/关闭IIS站点。听起来很简单所以我需要的只有两件事:

  1. 如何在代码中将IIS站点的虚拟文件夹从一个位置更改为另一个位置?
  2. 如何在IIS中打开和关闭网站?
  3. 简单,对吧?所以,第三点:你还有其他任何我可以使用的建议吗?

    哦,其他开发人员也在开发同一个项目。并非所有人都会使用IIS来运行它。因此,我无法更改这些项目的配置文件。我必须通过IIS管理它。

2 个答案:

答案 0 :(得分:1)

就个人而言,我会在这个例子中使用Powershell。

$websitePath = "IIS:\\Sites\Path to your website in iis"
$fullWebSiteFilePath = "file path to your content"

if(-not (test-path $websitePath))
{
    new-item $websitePath -physicalPath $fullWebSiteFilePath -type Application
}
else
{
    Set-ItemProperty $websitePath -name physicalPath -value $fullWebSiteFilePath 
}

有一个jigerry pokery,您可以从xml文件中读取不同的配置,然后调用shell脚本将xml文件名作为参数传递。

答案 1 :(得分:0)

要以编程方式管理IIS7,您可以从ServerManager类开始。