asp.net 程序IIS自动部署问题

asp教程.net 程序IIS自动部署问题
创建虚拟目录的经过以下步骤:

  1)获取该虚拟目录的上级目录的DirectoryEntry对象rootEntry;

  2)通过rootEntry的DirectoryEntry::Childrens.Add来添加该虚拟目录;

  //创建虚拟目录

  DirectoryEntryentry=rootEntry.Children.Add(this.m_strAlias,"IIsWebVirtualDir");

  3)更新该虚拟目录的属性,如更新身份验证模式,访问权限和所对应的物理目录等。需要注意的是,使用DirectoryEntry来创建虚拟目录,只能在该虚拟目录建立了以后,才能设置物理目录等属性。

  创建虚拟目录的代码如下:

///<summary>
    ///创建iis虚拟目录
    ///</summary>
    ///<excepti>虚拟目录操作异常</exception>
   publicoverridevoidCreateDirectory()
   {
     //已不覆盖的方式创建虚拟目录,当虚拟目录存在时抛出异常
      this.CreateDirectory(false);
    }

    ///<summary>
    ///创建iis虚拟目录
    ///</summary>
    ///<paramname="bReplace">是否覆盖掉原有的虚拟目录</param>
    ///<excepti>虚拟目录操作异常</exception>
    publicoverridevoidCreateDirectory(boolbReplace)
    {
      //判断目录是否存在
      if(this.Exist())
      {
        if(bReplace)
        {
          //若允许覆盖则先删除原有的虚拟目录
          this.DeleteDirectory();
        }
        else
        {
          //若不允许覆盖直接抛出目录已存在的异常
          DirectoryException.Throw("directoryalreadyexist");
        }
      }

      try
      {
        //获取上级目录的DirectoryEntry对象
        DirectoryEntryrootEntry=SystemDirectory.GetParentEntry(this);
        //创建虚拟目录
   DirectoryEntryentry=rootEntry.Children.Add(this.m_strAlias,"IIsWebVirtualDir");
        entry.Invoke("AppCreate",true);
        entry.CommitChanges();
        rootEntry.CommitChanges();

        //更新虚拟目录属性
        SystemDirectory.UpdateEntry(entry,this.Property);
     }
      catch(System.Exceptionex)
      {
        DirectoryException.Throw(ex.Message);
      }
    }

DirectoryEntry的commitChanges方法用于提交DirectoryEntry的操作。line41中的提交了以后,该虚拟目录才能建立,然后在进行更新虚拟目录的属性的操作。若没有commitChanges就进行更新操作,会抛出找不到虚拟目录的异常,有兴趣的朋友可以试试。

  2、删除虚拟目录:

  删除虚拟目录比较简单,只需调用虚拟目录的父节点的DirectoryEntry对象的Delete操作就可以了,需要注意的是Delete对象需要两个参数:子节点的Alias和子节点的类型(虚拟目录节点的类型为IIsWebVirtualDir)。

///<summary>
    ///删除iis虚拟目录
    ///</summary>
    ///<excepti>虚拟目录操作异常</exception>
    publicoverridevoidDeleteDirectory()
    {
      //判断目录是否存在
      if(!this.Exist())
      {
        //若待删除的虚拟目录不存在,则抛出异常
       DirectoryException.Throw("directorydoesnotexist");
      }

      try
      {
        //获取上级目录的DirectoryEntry对象
        DirectoryEntryrootEntry=SystemDirectory.GetParentEntry(this);
        //删除参数
        object[]objParams=newobject[2];;
        objParams[0]="IIsWebVirtualDir";
        objParams[1]=this.m_strAlias;
        //删除虚拟目录
        rootEntry.Invoke("Delete",objParams);
        rootEntry.CommitChanges();
      }
      catch(System.Exceptionex)
      {
        DirectoryException.Throw(ex.Message);
      }
      
    }

 

时间: 2024-10-25 17:20:44

asp.net 程序IIS自动部署问题的相关文章

Domino Server基于Notes应用程序进行自动部署的过程

Notes/Domino 8.5 及以上版本提供了一种有效的方法,通过结合 Widget http://www.aliyun.com/zixun/aggregation/16426.html">Catalog 和 Domino 提供的 Policy 机制,IT 管理员可以快速的对基于 Notes 的企业应用程序进行部署,既避免了手工安装的麻烦,又大大节省了用户的时间,从而减少了企业的成本. Notes Widget Notes Widget 是 Notes 提供的一种小型的.专门化的应用程

同样的一个程序,要部署到多个IIS服务器上,可有一键部署之类的工具?

问题描述 同样的一个程序,要部署到多个IIS服务器上,可有一键部署之类的工具?如果一个服务器一个服务器的部署太费时间了. 解决方案 解决方案二:自动发布工具,你可以搜索下自动发布:Jenkins+msbuild+tfs/git/svn+ftp,这是别人组合的完整发布流程要用到的工具解决方案三:而且部署一般都是手动的,因为可能有些配置什么的不一样,但以后的发布一般走一键发布解决方案四:手动部署吧!解决方案五:asp.net其实只要copy就行了.你可以开发一个只有10行代码的windowsserv

IIS自动安装程序(免费)

本文转载:http://www.cnblogs.com/cunet/archive/2008/10/31/1323896.html   IIS的安装对于非专业人士来说是件难以完成的任务,通常不知道如何着手,且安装过程繁琐,易出错,还需要操作系统安装光盘.为了尽可能简化IIS的安装,蓝点软件于2008年10月研究制作了这个全系列IIS自动安装程序.下载解压后直接双击其中的exe文件或bat文件即可自动安装IIS,并且如果系统安装了.net,也会自动注册好ASP.NET运行环境,为基于IIS的软件开

三层结构ASP.NET程序中,把实体类自动显示在页面上的例子(c#)

asp.net|程序|显示|页面 在这里我们假设这样一个场景:在一个三层bs系统(asp.net)中有一个实体类Student,包括Name,Age两个字段.现在需要把这个实体类的数据显示在一个StudentInfo.aspx页面上,StudentInfo.aspx中有两个文本框:StudentName(用来显示Student.Name)StudentAge(用来显示Student.Age).下面的步骤将通过反射和Attribute来实现自动把Student实体显示在StudentInfo中:1

Bat自动解压缩发布asp.net程序_实用技巧

1解压缩压缩包 2替换文件 3停止服务 4重建虚拟目录 5重启服务 @echo 1.Zipexe 好压压缩程序集路径 @echo 2.zipFileName 压缩文件的路径 @echo 3.ylxt 解压缩文件的路径 @echo 3.webconstant 发布目录中不会修改的文件.和文件夹,需要和虚拟目录的目录结构保持一致 @echo 4.PubparentFolder 虚拟目录的父目录 @echo 5.PubFolderName 虚拟目录名 set Zipexe="C:\Program Fi

《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序

2.3 编译和部署ASP.NET程序 知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\编译和部署ASP.NET程序.avi 当一个ASP.NET项目程序设计完毕后,需要运行才能浏览执行效果,效果满意后可以通过部署将网站发布到网络中. 2.3.1 编译.运行ASP.NET程序 通过使用Visual Studio 2012的菜单命令可以对ASP.NET的代码进行编译和运行.具体方法是依次单击菜单栏中的[生成]︱[重新生成网站]命令,如图2-40所示:也可以在"解决方案资源管理器"中右

c#编写windows应用程序如何安装部署,并且能把sql2000数据库也很完整的自动的部署到相应电脑上呢?

问题描述 c#编写windows应用程序如何安装部署,并且能把sql2000数据库也很完整的自动的部署到相应电脑上呢? 解决方案 解决方案二:安装部署应该不难吧.如果要把.NETframeWork和SQL加入,右键点击安装项目--点击右下角Prerequisites--然后选择你要发布的东西,下边单选选择第二个(如果你要让他从网上下载请选其他),就可以了解决方案三:SQLServer有一个部署工具,使用即可解决方案四:编写数据库脚本解决方案五:用户如果需要独立服务器,肯定是要布署的.看你的软件是

ASP 程序实现自动升级功能_小偷/采集

现在流行虚拟主机建站,我也有个网站,也算是个站长咯.当了近一年的站长,感到网站程序每次升级的时候颇为麻烦:先去官方看公告,然后下载升级包到本地,解压,FTP上传到虚拟主机.这些都是累人的体力活,加之本人又懒得很,所以异想天开的觉得要是程序能够自动升级就好了.所以就想了想,写了本文,希望对WEB程序开发者有帮助.这里只针对ASP,因为我只会ASP :-( 先看看传统的win32程序的升级过程(比如杀毒软件),它是依靠软件的升级程序通过网络连接到服务器分析并下载升级文件到本地. WEB程序有点不一样

ASP 程序实现自动升级功能_应用技巧

现在流行虚拟主机建站,我也有个网站,也算是个站长咯.当了近一年的站长,感到网站程序每次升级的时候颇为麻烦:先去官方看公告,然后下载升级包到本地,解压,FTP上传到虚拟主机.这些都是累人的体力活,加之本人又懒得很,所以异想天开的觉得要是程序能够自动升级就好了.所以就想了想,写了本文,希望对WEB程序开发者有帮助.这里只针对ASP,因为我只会ASP :-( 先看看传统的win32程序的升级过程(比如杀毒软件),它是依靠软件的升级程序通过网络连接到服务器分析并下载升级文件到本地. WEB程序有点不一样