我有一个用于构建和部署一套网站的C#程序。
我希望通过编程与IIS进行交互,以便根据构建结果更改测试系统的虚拟目录指向位置。
这种做法可行吗?还是只是疯言疯语?
我希望通过编程与IIS进行交互,以便根据构建结果更改测试系统的虚拟目录指向位置。
这种做法可行吗?还是只是疯言疯语?
使用哪个版本的IIS?如果使用5.1或6,则必须使用com对象才能到达。如果使用7,则可以选择使用.net中的新类。
对于5.1和6,我倾向于使用ADSI而不是WMI,因为我看到过很多系统在其中WMI不稳定或未正确安装。不确定如何发生这种情况,但我从未遇到过使用ADSI对象的问题。注意:您实际上仍然可以在IIS 7下使用这些内容,但需要在添加/删除Windows功能下启用IIS 6管理兼容性选项。
有关基于IIS7的对象的更多信息,请查看: 使用c#在IIS中创建虚拟目录
正如其他人所提到的,如果使用IIS7,则使用Microsoft.Web.Administration
托管API。
如果这是IIS6,则建议使用System.DirectoryServices
,它会显示ADSI API。与使用WMI相比,它要简单得多:
使用System.DirectoryServices配置IIS
使用System.DirectoryServices创建站点和虚拟目录
如果您需要控制IIS,例如启动/停止站点,回收应用程序池,那么无论如何,WMI都是更好的选择。
System.DirectoryServices
提供的ADSI API。这比WMI要简单得多。 - Kev