设为首页 收藏本站
查看: 693|回复: 0

[经验分享] 基于IIS Express的.Net应用程序部署

[复制链接]

尚未签到

发表于 2015-8-14 08:17:30 | 显示全部楼层 |阅读模式
  IIS Express已经正式发布,并在短时间内更新了两次,目前的最新版本是V1.10。IIS Express的特性,实际上是许多.Net下WEB开发人员多年来的一个梦想,因为传统的IIS,尤其是7.0版本以前的IIS,对于WEB应用程序的部署是一个很让人头疼的事情,光是让用户能顺利安装好IIS环境,就得费不少的心思。为此,我在2008年专门研究并制作发布了全网首个IIS 5.1自动安装程序和IIS 6.0自动安装程序,并发布了制作原理和方法,详见:还为安装IIS发愁吗?全系列IIS自动安装程序倾囊奉送!--技术原理介绍及成品下载
  
  如今,梦想的事情终于让微软发善心给实现了。尽管,它还有些不完美的地方,却仍然让我激动了很久。
  
  本文不打算介绍IIS Express的基本知识和概念,需要这方面内容的朋友,可以参考以下文章:
  
  IIS Express 的配置、使用和注意点
  IIS Express的安装与设置讲解
  
  写这篇随笔的主要目的,是为了将我以IIS Express为平台部署.Net应用程序的过程中发现的一些问题和总结的一些经验介绍给大家,以补充一下网上关于IIS Express的资料的一些空白。
  
  
第一个发现:直接把IIS Express安装后产生的文件用来作为部署环境,不一定可靠。
  按网上现有的资料,是可以直接把IIS Express的安装目录连同应用程序一起打包进行发布和部署的,实际上在多数情况下也的确可以正常运行。但经过多次在不同Windows版本上进行测试,发现这样要么可能会出现“无法正常初始化应用程序”的问题,要么IIS Express的托盘图标不能显示出来。经过对比发现,在不同版本的Windows上安装IIS Express所产生的文件并不完全相同。所以,最好还是在通过IIS Express安装程序进行安装后,再调用IIS Express来运行网站。
  
  第二个发现:如果要部署基于.net 2.0的应用程序,除了要安装.net 4.0(这是IIS Express所必需的)外,还需要有.net 2.0 sp2才能正常运行。在Vista、Windows 7等新版本的操作系统上,这不是问题,但在XP、Windows 2003上,就必须要单独安装.net 2.0 sp2才行了。
  
  第三个发现:以.net 4.0作为系统必备制作出来的安装包,在XP SP2和Windows 2003上可能无法正常完成安装。这是因为它们通常不具备.net 4.0所必须的Windows Imaging Component组件。因此,制作安装程序的时候,必须把Windows Imaging Component也作为系统必备。
  
  
  
  总结:要制作基于IIS Express且可以在多个Windows版本上顺利安装的.net 2.0应用程序安装包,至少应该包括这几个系统必备:.net 2.0 sp2、.net 4.0、IIS Express、Windows Imaging Component。但问题在于,目前并没有现成的net 2.0 sp2、IIS Express中文版、Windows Imaging Component这三个组件的系统必备组件包。当然了,你可以要求用户自己手工安装这些,但这不是一个好软件所就有的做法。我们的目标是,用户安装我们的WEB应用软件,要像安装单机软件一样,运行setup.exe就可以完成安装。
  
  关于如何制作Visual Studio安装项目的系统必备,这属于另一个较为复杂的话题了,暂且不谈。只是另外有一个关于这方面的一个技巧,值得与大家分享,那就是,如果一个安装项目需要多个系统必备,怎样才能有选择性地让一个组件从供应商网站下载,而另一个组件从应用程序安装包的位置安装?在Visual Studio安装项目选择系统必备的界面上,是只能统一处理的,要么都从网站下载,要么都从应用程序安装包位置安装,而不能自由指定。比如,由于IIS Epxress安装包很小,且几乎所有电脑都没有安装它,因此可以打包到我们的程序安装包中,而像.net 3.5或5.0这种庞大的,而很多用户电脑中又已经具备的组件,就可以让安装程序在确实需要安装它的时候再从网上下载安装。
  
  实现我们这种想法的关键在于:如果在Visual Studio中指定了系统必备从网站下载,但系统必备的产品清单上又没有提供下载网址的话,安装程序就会尝试从应用程序安装包所在位置来查找需要的组件进行安装。所以,我们只需要在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages下面的系统必备组件产品清单文件product.xml中,删除组件的下载地址属性HomeSite,再重新生成安装项目就可以了。
  
  IIS Express是一个新鲜事物,值得大家的深入研究。希望朋友们可以补充更多的经验和技巧!
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98695-1-1.html 上篇帖子: IIS无法启动world wide web publishing service服务错误:127 找不到指定程序 下篇帖子: 在win2003下配置ASP.NET 2.0的IIS并用域名发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表