首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#管理IIS

问使用C#管理IIS
EN

Stack Overflow用户
提问于 2015-01-21 17:53:04
回答 3查看 1.4K关注 0票数 2

我想创建一个应用程序,将部署一个网站。基本上,我只希望这个应用程序将发布文件复制到一个新文件夹中的new服务器,将网站更改为该文件夹,然后回收应用程序池。

我发现我应该能够用Microsoft.Web.Administration做到这一点。即使是最基本的任务,我也有问题,因为我正在学习如何做到这一点。下面是我在windows表单应用程序中的代码,只需使用它即可。

代码语言:javascript
复制
        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());

我只是试图循环浏览网站,并显示名称作为我的第一次尝试。我得到的错误如下:

'Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager'.:无法将'System.__ComObject‘类型的COM对象转换为接口类型为System.__ComObject此操作失败,因为对IID‘{FA7660F6-7B3F-4237-A8BF-ED0AD0DCBBD 9}’的接口的COM组件的QueryInterface调用失败:接口未注册(HRESULT例外: 0x80040155)。

在Microsoft.Web.Administration.ConfigurationManager.CreateAdminManagerTClass,TInterface

在Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap,String configPathToEdit,Boolean )

在Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap,String configPathToEdit,Boolean )

在Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(String rawConfigurationPath,String cacheKey,Boolean )

在Microsoft.Web.Administration.ConfigurationManager.GetApplicationHostConfiguration()

在Microsoft.Web.Administration.ServerManager.GetApplicationHostConfiguration()

在Microsoft.Web.Administration.ServerManager.get_SitesSection()

在Microsoft.Web.Administration.ServerManager.get_Sites()

错误的底线是:

代码语言:javascript
复制
foreach (var site in sm.Sites)

我已经在本地IIS8快递和windows服务器2008IIS7.5中尝试了这一点。

我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2015-01-21 18:18:11

您可能需要检查以下几点:

  1. 服务器的名称。如果不确定,请尝试在IIS管理中查找
  2. .dll的版本是您的IIS版本的正确版本。
  3. .net框架版本。由于它使用System.Web,所以它依赖于.net框架的完整版本,而不是客户机配置文件子集。
票数 1
EN

Stack Overflow用户

发布于 2020-04-27 18:48:57

代码正在执行的机器需要安装installed和Tools Windows功能。

在Windows或Windows 2008 R2和更早版本上,您可以通过以下步骤安装它:

  1. 打开控制面板>程序>打开或关闭Windows功能。
  2. 深入到> Web,并检查IIS管理脚本和工具。
票数 1
EN

Stack Overflow用户

发布于 2015-06-18 14:04:06

您正在尝试管理远程服务器,因此

  1. 运行代码的帐户必须是该远程服务器的本地管理员。
  2. 必须在防火墙处打开DCOM端口。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28073701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档