基于.NET Framework 4.0的解决方案部署

VS 2010发布之后,随着而来的框架版本也升级到了.NET Framework 4.0。我相信很多朋友已经在用了吧。这一篇文章总结了如何基于.NET Framework 4.0,进行解决方案部署。

之所以要单独写一下,是因为确实这个版本与之前的.NET Framework 2.0,3.0,3.5是不一样的。我们自己在用的时候也摸索了一些时间。所以总结出来给大家参考参考吧,以免多走弯路。

重点事项:

  1. .NET Framework 4与之前的版本是可以并行的,他们并不互相干扰。也就是说,你不必在安装.NET Framework 4之前安装其他的任何一个版本。(前提是,你只是想运行.NET Framework 4的程序)
  2. 令很多朋友最感疑惑的是,如果安装了.NET Framework 4,那么之前的软件能否运行(例如基于.NET Framework 2)呢?答案是:不能
  3. 因为这种并行的情况,所以在服务端要特别注意,设置ASP.NET引擎的版本。
  4. .NET Framework 4 所支持的客户端操作系统最低是Windows XP,服务器操作系统是Windows Server 2003。之前的Windows 2000甚至更高版本全部不受支持。
  5. .NET Framework 4的网站无法部署在Windows XP中。换而言之,Windows XP只能作为客户端,因为XP带的IIS 是5.1,而.NET Framework 4所要求的IIS版本最低是IIS 6.

部署提示:

1.首先下载有关的安装程序

NET_Framework_4.0installer.rar

这是我整理好的四个软件(大致一共10MB),分别如下

  • WindowsInstaller-KB893803-v2-x86(3.1).exe  如果你的机器(不管是服务器还是客户端)什么都没有安装过,那么必须先装这个installer 3.1才可以安装Framework
  • wic_x86_enu.exe 如果你的机器是XP(通常是指客户端),那么在安装.NET Framework 4之前需要安装这个WIC(Windows Image Component),不要问我这是干啥用的,我也不知道,呵呵
  • ReportViewer2010.exe 如果你的应用程序使用了报表查看器,则需要安装这个
  • en_.net_framework_4_full_web_installer_x86_x64_ia64_516530.exe  这是在线安装.NET Framework 4的一个引导程序。你需要确保网络畅通。

当然,如果你希望预先下载好Framework 安装包(例如你的客户场景是没有办法连接到网络),那么请继续下面的操作

  • 如果你想要下载完整的安装包,则访问这里http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en
    • 大致是48MB的安装包,应该还是可以接受的。不像原先.NET Framework 3.5那么恐怖(那时好像将近200MB,客户直接就崩溃了)
  • 如果你想要下载.NET Framework 4 Client Profile ,则访问这里 http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=en
    • 大致是41MB的安装包,与Full相差大致7MB,我个人觉得这就没有啥优势了。而且选用了Client Profile的话,有好些个功能都不能用。其实更关键在于你不知道哪些能用,哪些不能用(确实有一些文档介绍他们的区别,但谁有那闲工夫去记住那么多区别呢)。所以,我们全部采用Full,免得麻烦。

2.服务器端的一般部署过程

客户端部署相对很简单,你只要把上面的一些软件安装好,基本上就不会有什么问题,程序能运行起来。但服务器端可就没有这么容易了。下面就假设你有一个Web Application需要部署

首先,如何打包这个Web Application呢?这个方面,VS2010做了一些不错的改进,它可以直接发布,更可以打包成一个所谓的Package,如下面的菜单

image

打包好之后会在项目的Obj目录下面,Debug目录下面,再创建一个Package目录,你可以看到下面的一些文件

image

其次,如何在服务器端部署这个Web Application呢?

你需要将上面这个Package目录全部复制,然后发送给服务器管理员。那么服务器管理员要怎么将这个Application部署起来呢?他有几种方式。

第一种方式,使用MS Deploy工具。

http://www.iis.net/download/webdeploy

这个工具是微软提供出来给IIS 6和IIS 7用的,可以很方便地进行应用程序部署。你可以通过上面的地址下载到。(值得一提的是,这个工具安装之前需要当前服务器安装了.NET Framework 2.0 sp1)

image

如果安装好了,我们打开IIS 之后会看到一些小的变化

image

大家可以看到,现在网站上面多出来一个“Deploy”的菜单,里面有几个菜单项,我们现在可以点击“Import Application”

首先,我们需要指定那个部署包的位置,是那个zip文件

image

image

image

【注意】这里可以修改连接字符串

image

【注意】因为检测到我们是.NET Framework 4的Web Application,所以会提示将Application Pool选择为.NET 4.0的,我们当然毫不犹豫地点击“yes”

image

很快就安装好了。它到底做了什么呢?其实它会把文件复制到wwwroot里面来

image

但是,这里需要注意的是,它是随机选择了一个.NET Framework 4.0 的Application Pool, 例如在我的机器上是这样的

image image

有的时候,我们可能会发现程序运行不起来,例如

image

经验告诉我们,凡是503错误,多半是与应用程序池有关系。

我尝试重启这个程序池,问题依旧

image

然后,我发现这个程序池有些特殊之处在于它的Managed Pipleline Mode是Integrated,是不是这个有问题呢?

我尝试选择了一个Managed Pipleline Mode为Classic的应用程序池,例如

image

重新刷新一下就可以正常运行我的应用程序了

image

到这里,我们就完成了服务器端应用程序的部署。这个演练中,我们使用了MS Deploy工具。但事实上,不用工具也是一模一样可以做到的。只要记住下面两点

1. 应用程序池要基于.NET Framework 4

2. 应用程序池的Managed Pipleline Mode要选择为Classic

最后,还有一个可能会遇到的问题,就是如果你的应用程序会连接到数据库,而且数据库连接字符串是像下面这样写的

Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True

那么,大家要知道的一个情况是,因为你是Integrated security=true,所以最后访问数据库时所使用的身份是应用程序池的标识。那么,很显然地,你需要确保这个标识有访问数据库的权限。

image

【注意】如果是访问本地的服务器和数据库,为简单起见,你可以直接设置为LocalSystem。这个特殊帐号是肯定可以访问数据库的。

当然,更加严谨的做法,是指定一个特定的帐号,这个帐号被授予了特定数据库的访问权限。

转载于:https://www.cnblogs.com/HeroBeast/archive/2010/06/03/1751046.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

作者信息:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作。 简介 把SQL 数据托管在哪里,Windows Azure 为您提供了两个选择,VM上的SQL Server(以下简称 SQL/VM)和 Wind…

graphviz 画决策树_数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris

数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris加载数据集数据特征训练随机森林调参工程师结尾数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris在上一篇博客,我们介绍了决策树的一些知识。如果对…

设计模式UML图

1.简单工厂模式 2.工厂模式 工厂模式与简单工厂模式的不同在于,每个操作类都有自己的工厂,而且把逻辑判断交给了客户端,而简单工厂的逻辑判断在工厂类里边,当增加新的操作类时,简单工厂需要修改工厂类,而工…

Android小項目之--ListView與ListAcitivity完善論壇管理效果2(附源碼)

ListAcitivity 类型布局用来配置应用程序,主要为显示菜单列表、列表明细项目,假如让程序继承 ListActivity ,可以实现以下的方法: getListAdapter()  取得目前列表项目的 AdaptergetListView()  取得目前列表的 ViewgetSelectedItemId() …

docker 覆盖 entrypoint_最佳实践,Dockerfile中ENTRYPOINT与CMD指令的区别与建议

通过本文你会获得什么熟悉Dockerfile中ENTRYPOINT和CMD指令之间的区别,以及在实际项目中的使用建议。1 - 开始前准备首先你要有个docker环境,以下实验基于:docker 18.09,以及alpine:3.8镜像。下载基础镜像docker pull alpine:3.82…

单实例单向rac搭建gg流

1、 m1 m2 m3 source端 2、 在m1 m2 m3 上 /etc/hosts 172.16.10.140 source source上 添加 #public network 172.16.15.101 m1 172.16.15.102 m2 172.16.15.103 m3 #private network 10.11.11.1 m1-pri 10.11.11.2 m2-pri 10.11.11.3 m3-pri 29 #VIP network 172.16.15.1…

python自动登录教程_Python 实现自动登录+点击+滑动验证功能

需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名密码登录,然后定位用户名输入框,和密码输入框,输入后 点击登陆 弹…

2月份.xyz域名总量10强:西数称王 注册量破百万

IDC评述网(idcps.com)02月25日报道:根据ntldstats.com发布的最新数据显示,截止至2016年2月24日17时,国内外.xyz域名总量十强名单顺序,与上期1月28日对比,无任何变化。最值得一提的是&#xff0c…

flash作业_一起作业,你很智障!

电子作业现在貌似很流行,在很多学校都有,具体的利弊就不再赘述,可以点击前面的超链接跳转到某度百科自己看。今天只是忍不住怕盘点下国内知名电子作业平台——一起作业网的一些智障设计。。。本来想写到这里去的:有哪些让人拍案叫…

QtCreator添加图片资源

在qt creator里面,设计师designer是一个很好用的功能,通过它我们可以可视化的设计界面。当然了,设计界面就需要各种各样的效果,图片资源是不可少的。今天,小编就来教大家qt怎么添加图片资源 工具/原料 qt creator方法/…

只安装python_AI帮你写Python,安装只需5步,还能任你调教 | 开源

一行一行地敲代码就像是徒手搬砖,聪明的程序猿们表示:我们要解放生产力! 比如像这样:在机器学习的时代,AI智能补全代码早已不是梦想,各种IDE和插件都在努力帮助程序猿减少击键次数,延长键盘寿命…

巧用apply让javascript函数仅执行一次

RT,有时候我们只想要让某些脚步函数执行一次就算完成任务了。如何实现这种功能呢?简单模仿下面这段就可以轻松搞定了: 代码 varobj newObject();obj.triggerOnce function(fn) { //控制让函数只触发一次returnfunction() { try{ fn.ap…

评论时间戳格式化

如图: 注意,评论时间戳的格式,刚才,几小时之前,几天之前..... 实现需要一个时间格式的工具类,如果用java.util.Date当然也可以实现,这里说的是更方便的joda-time。 maven地址:http:/…

android lint工作机制,Android架构

MVCmvc model view controller 模式视图控制器M: 业务逻辑处理V:处理数据显示的部分C:Activity处理用户交互的问题,中间桥梁的作用,解耦的作用。特点:耦合性低扩展性好,利于维护模块职责划分明确Model层&am…

opendds开发指南中文版_最强的开发者技术路线图已经更新到 2020 GitHub 超 118k还有中文...

想必大家都知道,学习路线图是学习一门新技术的入门指南,让我们对技术有一个大概的了解,并且在学习感到困惑时被指导。所谓不求最好,但求最全。今天在在就给大家带来了一个国外大牛开源的项目 — 「developer-roadmap」&#xff0c…

iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)

iOS应用(包括移动应用)的网络分析,一般采用将移动设备上的流量导入到PC机上,利用PC上成熟的数据包分析工具例如wireshark等来进行分析的方法。 总的来说,有以下三种方法:一、在PC上设置网络共享&#xff0c…

oracle批量update数据_东方国信大数据面试真题

东方国信学长1Hadoop工程师笔试题(金融事业部)1)技术基础题(共十题,每题5分)(1)列举在Linux系统下可以在看系统各项性能的工具(区分CPU、内存、硬盘、网络等)…

eclipse定制化配置调优、初始化配置指南、可以解决启动慢等问题

配置eclipse的jvm参数 打开eclipse根目录下的eclipse.ini在最后面加上如下的jvm参数 -Xms400m -Xmx1400m -XX:NewSize128m -XX:MaxNewSize512m -XX:PermSize96m -XX:MaxPermSize128m -server -XX:CompileThreshold100 -XX:UseParNewGC -XX:UseConcMarkSweepGC -XX:CMSInitiatin…

SEC SOC Test Board 在WIN 7下的安装

首先找到“设备和打印机”点击打开 如果你插上了USB线,会看到,安装不成功时会有个“!” 双击它,出现 点击“属性”,出现 点击“改变设置”,出现 点击“更新驱动程序”,出现 点击进去&#xff0c…

吴枫 python小课怎么样_编程中,有哪些好的习惯从一开始就值得坚持?

电影《喜剧之王》里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物。即便如此,他对演戏的态度始终认真而可敬。他每天不但锲而不舍寻找演戏机会,还在街坊福利社开了个戏剧训练班&#xf…