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

清风道禅 2010-05-20 11:17:48
首先我个人完全没有做过自动部署程序 以下是我的需求 请大家帮帮忙
1.可以直接通过asp.net程序动态配置IIS参数,比如win2003 服务器下 应用程序池 ASP.NET 的选卡中的 版本 设置主目录 等等。
2.动态创建数据库
3.完成创建后自销毁安装引导程序以及相当文件和文件夹

...全文
233 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
清风道禅 2010-05-24
  • 打赏
  • 举报
回复
我已经解决以上问题,感谢大家参与.
清风道禅 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 archu 的回复:]
你把我给你的那两个链接,以及里面的子链接全部看一遍,你就能成为这方面的高手了.
[/Quote]
高手不高不重要·主要是能解决问题

archu 2010-05-22
  • 打赏
  • 举报
回复
你把我给你的那两个链接,以及里面的子链接全部看一遍,你就能成为这方面的高手了.
清风道禅 2010-05-21
  • 打赏
  • 举报
回复
还有补充的没有啊·大哥些···
清风道禅 2010-05-21
  • 打赏
  • 举报
回复
谢谢大家·不是梦游哈·是我看见一个项目这样做得·只是不知道怎么做·事实就是能实现的
zhouminjob120 2010-05-20
  • 打赏
  • 举报
回复
顶啊顶!!
mngzilin 2010-05-20
  • 打赏
  • 举报
回复
lz在梦游
qiqishardgel 2010-05-20
  • 打赏
  • 举报
回复
路过,帮顶!
h475410885 2010-05-20
  • 打赏
  • 举报
回复
创建虚拟目录的经过以下步骤:

  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);
      }
      
    }


天下在我心 2010-05-20
  • 打赏
  • 举报
回复
帮顶下mark
jianshao810 2010-05-20
  • 打赏
  • 举报
回复
下面这个地址是asp.net程序部署的大全

里面集合了很多文章,你可以看看

http://www.soidc.net/topic/%B2%BF%CA%F0asp.net%B3%CC%D0%F2
archu 2010-05-20
  • 打赏
  • 举报
回复
如果是IIS6的话,有很多选择,包括ADSI, WMI, System.DirectoryServices等:http://msdn.microsoft.com/en-us/library/ms524732(v=VS.90).aspx

如果是IIS7的话,除了上面的选择之外,建议使用MWA:http://learn.iis.net/page.aspx/165/how-to-use-microsoftwebadministration/

注意:你要做管理的话,意味着需要管理员权限,所以你的站点要运行在管理员账号下,有安全隐患
guyehanxinlei 2010-05-20
  • 打赏
  • 举报
回复
Friendly Up!
Justin-Liu 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ly302 的回复:]
下面这个地址是asp.net程序部署的大全

里面集合了很多文章,你可以看看

http://www.soidc.net/topic/%B2%BF%CA%F0asp.net%B3%CC%D0%F2
[/Quote]
up
皇城龙三 2010-05-20
  • 打赏
  • 举报
回复
下面这个地址是asp.net程序部署的大全

里面集合了很多文章,你可以看看

http://www.soidc.net/topic/%B2%BF%CA%F0asp.net%B3%CC%D0%F2
qq234121906 2010-05-20
  • 打赏
  • 举报
回复
做个标记
xrongzhen 2010-05-20
  • 打赏
  • 举报
回复
如果真的这么智能,N多的人都要失业了
ASP.NET ASP.NET 概述 ASP.NET 是一个统一的 Web 开发模型,它包括您使用尽可能少的代码生成企业级 Web 应用程序所必需的各种服务。ASP.NET 作为 .NET Framework 的一部分提供。当您编写 ASP.NET 应用程序的代码时,可以访问 .NET Framework 中的类。您可以使用与公共语言运行库 (CLR) 兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript .NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 ASP.NET 应用程序ASP.NET 包括: 页和控件框架 ASP.NET 编译器 安全基础结构 状态管理功能 应用程序配置 运行状况监视和性能功能 调试支持 XML Web services 框架 可扩展的宿主环境和应用程序生命周期管理 可扩展的设计器环境 页和控件框架 ASP.NET 页和控件框架是一种编程框架,它在 Web 服务器上运行,可以动态地生成和呈现 ASP.NET 网页。可以从任何浏览器或客户端设备请求 ASP.NET 网页,ASP.NET 会向请求浏览器呈现标记(例如 HTML)。通常,您可以对多个浏览器使用相同的页,因为 ASP.NET 会为发出请求的浏览器呈现适当的标记。但是,您可以针对诸如 Microsoft Internet Explorer 6 的特定浏览器设计 ASP.NET 网页,并利用该浏览器的功能。ASP.NET 支持基于 Web 的设备(如移动电话、手持型计算机和个人数字助理 (PDA))的移动控件。 ASP.NET 网页是完全面向对象的。在 ASP.NET 网页中,可以使用属性、方法和事件来处理 HTML 元素。ASP.NET 页框架为响应在服务器上运行的代码中的客户端事件提供统一的模型,从而使您不必考虑基于 Web 的应用程序中固有的客户端和服务器隔离的实现细节。该框架还会在页处理生命周期中自动维护页及该页上控件的状态。有关更多信息,请参见 ASP.NET 网页概述。 使用 ASP.NET 页和控件框架还可以将常用的 UI 功能封装成易于使用且可重用的控件。控件只需编写一次,即可用于许多页并集成到 ASP.NET 网页中。这些控件在呈现期间放入 ASP.NET 网页中。 ASP.NET 页和控件框架还提供各种功能,以便可以通过主题和外观来控制网站的整体外观和感觉。可以先定义主题和外观,然后在页面级或控件级应用这些主题和外观。有关更多信息,请参见 ASP.NET 主题和外观概述。 除了主题外,还可以定义母版页,以使应用程序中的页具有一致的布局。一个母版页可以定义您希望应用程序中的所有页(或一组页)所具有的布局和标准行为。然后可以创建包含要显示的页特定内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,产生将母版页的布局与内容页中的内容组合在一起的输出。有关更多信息,请参见 ASP.NET 母版页概述。 ASP.NET 编译器 所有 ASP.NET 代码都经过了编译,可提供强类型、性能优化和早期绑定以及其他优点。代码一经编译,公共语言运行库会进一步将 ASP.NET 编译为本机代码,从而提供增强的性能。 ASP.NET 包括一个编译器,该编译器将包括页和控件在内的所有应用程序组件编译成一个程序集,之后 ASP.NET 宿主环境可以使用该程序集来处理用户请求。有关更多信息,请参见 ASP.NET 编译概述。 安全基础结构 除了 .NET 的安全功能外,ASP.NET 还提供了高级的安全基础结构,以便对用户进行身份验证和授权,并执行其他与安全相关的功能。您可以使用由 IIS 提供的 Windows 身份验证对用户进行身份验证,也可以通过您自己的用户数据库使用 ASP.NET Forms 身份验证和 ASP.NET 成员资格来管理身份验证。此外,可以使用 Windows 组或您自己的自定义角色数据库(使用 ASP.NET 角色)来管理 Web 应用程序的功能和信息方面的授权。您可以根据应用程序的需要方便地移除、添加或替换这些方案。有关更多信息,请参见下列主题: ASP.NET 网站安全性 使用成员资格管理用户 使用角色管理授权 Forms 身份验证提供程序 ASP.NET 始终使用特定的 Windows 标识运行,因此,您可以通过使用 Windows 功能(例如 NTFS 访问控制列表 (ACL)、数据库权限等等)来保护应用程序的安全。有关 ASP.NET 标识的更多信息,请参见配置 ASP.NET 进程标识和 ASP.NET 模拟。 状态管理功能 ASP.NET
IIS安装程序适用于Windows 2003系统,IIS版本为6.0版。该自动安装程序最大程度简化了安装IIS的繁琐步骤,且无须操作系统光盘,直接双击即可自动完成安装,并自动注册asp.net运行环境(如果安装了.net),为基于IIS的软件开发和部署带来了极大的便利。 与IIS相关的常见问题: ●有没有用于其它操作系统的IIS自动安装程序?   我们现已制作并提供了包括Windows 2000/XP/2003在内的多种操作系统所适用的IIS自动安装程序。 ●安装IIS时总是提示无法复制staxmem.dll、iisapp.vbs、convlog.exe等文件?   如果确定安装盘或安装文件没问题,在“运行”中执行:esentutl /p %windir%/security/database/secedit.sdb。然后再重新开始安装IIS。 ●安装IIS后访问网站下的页面时出现HTTP 500内部服务器错误?   请运行此文件夹中的IIS500.bat,之后再重新测试。 ●IIS(或IIS下的网站)无法启动?   目前已知的导致IIS不能启动的原因有:   1、安装了WEB迅雷。解决方法:卸载WEB迅雷,或先退出WEB迅雷再启动IIS,然后再启动WEB迅雷(如果需要);   2、其它软件占用了80端口。解决方法:修改其它网站的端口或IIS下的网站的端口,避免使用相同的端口。可以使用诸如TCPView或FPort等第三方工具来查找正在使用80端口的其它应用程序;   3、操作系统补丁所导致的。打开“添加删除程序”,勾选“显示更新”,在列表中找KB939373、 kB942830、KB942831这三个补丁,如果有,将其卸载,之后再启动IIS。 感谢"蓝点"

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧