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

C# 在代码中更改虚拟路径和启用/禁用站点,c#,iis-7,asp.net-4.0,C#,Iis 7,Asp.net 4.0,我正在从事一个包含三个web服务和一个网站的web项目。我的源代码存储在TFS中,用于版本控制,我经常需要在同一代码的多个不同分支中工作。这些分支机构定期合并,并以相同的方式设立。它们都使用WebDev.WebServer作为默认主机。这很好,因为它使其他团队成员不必不断更改IIS中的设置以切换到正确的文件夹。 好吧,你猜怎么着? 我想移动到IIS,并且仍然能够为每个分支使用相同的配置。这将导致冲突,因为每次切换分支时都需要更改这些项目的虚拟文件夹。我还需要能够关闭这些IIS站点以启用WebDe

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

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


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

    就我个人而言,我会在这个实例中使用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扑克,您可以从xml文件中读取不同的配置,然后调用将xml文件名作为参数传递的shell脚本。

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

    当然,这也是可能的。但是我的本地主机上已经有了一个管理webapp,它可以更改很多设置。为我提供了一个很好的关于各种事物的概述。它还允许我在使用远程桌面或多台计算机时更改设置。