我想创建一个可以部署网站的应用。基本上,我只想让这个应用程序将发布文件复制到新文件夹中的Web服务器,将网站更改为该文件夹,然后回收应用程序池。
我发现我应该可以使用Microsoft.Web.Administration执行此操作。即使是最基本的任务,我也遇到了问题,因为我正在学习如何做到这一点。这是我在Windows窗体应用程序中的代码,只是玩这个。
try
{
using (Microsoft.Web.Administration.ServerManager sm = Microsoft.Web.Administration.ServerManager.OpenRemote("webservername"))
{
foreach (var site in sm.Sites)
{
MessageBox.Show(string.Format("{0}", site.Name));
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
我只是试图遍历网站并显示名称作为我的第一次尝试。我得到的错误如下:
System.InvalidCastException:无法将类型为“System .__ ComObject”的COM对象强制转换为接口类型“Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager”。此操作失败,因为对IID为“{FA7660F6-7B3F-4237-A8BF-ED0AD0DCBBD9}”的接口的COM组件的QueryInterface调用由于以下错误而失败:接口未注册(HRESULT异常:0x80040155)。
at Microsoft.Web.Administration.ConfigurationManager.CreateAdminManager [TClass,TInterface](WebConfigurationMap webConfigMap,Boolean isAdminConfig)
at Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap,String configPathToEdit,Boolean isAdminConfig)
at Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap,String configPathToEdit,Boolean isAdminConfig)
at Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(String rawConfigurationPath,String cacheKey,Boolean isAdminConfig)
at Microsoft.Web.Administration.ConfigurationManager.GetApplicationHostConfiguration()
at Microsoft.Web.Administration.ServerManager.GetApplicationHostConfiguration()
在Microsoft.Web.Administration.ServerManager.get_SitesSection()
在Microsoft.Web.Administration.ServerManager.get_Sites()
错误的一行是:
foreach (var site in sm.Sites)
我已经尝试使用本地IIS8 Express和Windows Server 2008 IIS 7.5
我做错了什么?
答案 0 :(得分:1)
您可能需要检查以下几点:
答案 1 :(得分:0)
您正在尝试管理远程服务器,所以
答案 2 :(得分:0)
正在执行代码的计算机需要安装IIS管理脚本和Windows工具。
在Windows客户端操作系统或Windows Server 2008 R2或更早版本上,可以通过以下步骤安装它: