㈠ 如何在webform的aspx应用中使用aspnet mvc2的 route
如何混合使用 aspx 和 asp.net mvc2 的 route_mapping
背景
本 文 是 讨 论 如 何 在 已 有 的 asp.net 的 webform 应 用 类 型 中 , 添 加 asp.net mvc2 的 route-mapping 的处理,并给出推荐的最佳实践。
如何集成 asp.net mvc2
首先,需要将 asp.net mvc 框架引入 webform 的应用路径中。涉及到的地方有:引入依赖的 assembly;web.config 文件的处理;添加 RouteTable 的 route-mapping;添加 controller; 本文以一个 home 的 url mapping 作为实现的目标来进行讨论。
1 复制依赖的文件
安装 asp.net mvc2 之后,可以在 Program File 下面找到安装的 asp.net mvc 2 的安装目录,里 面有需要的 System.Web.Mvc.dll 文件:
在 Program File 下 的 Reference Assemblies 下 的 Framework\v3.5 下 , 能 找 到 需 要 的 System.Web.Routing.dll 和 System.Web.Abstractions.dll 文件:
将上面的文件复制到 web app 的 bin 目录下,依赖的文件就复制完毕了。
2 修改 web.config
需要修改两处,对应 IIS6 和 IIS7 的经典模式的配置节,需要在配置节下的 配置节中,添加下面的行: 以及对应 IIS7 的集成模式的配置节,在配置节下的配置节,添 加下面的行:
3 修改 global.asax
这部分工作是添加 RouteTable 的默认的 Route 处理,这里是假设提供的 Route 的 Controller 中包含 RegisterRoute 静态方法,代码如下:
4 添加 Route-Mapping
这部分的代码较多,直接贴代码了。 由于考虑支持.net 3.5 的 asp.net 平台,所以里面的新的匿名类、类扩展等新特性需要用传统 方式改写。 为了支持 RouteMap 中的属性定义,我添加了一个 HomeControllerInfo 属性类,提供可以识 别的 controller、action、id 属性: class HomeControllerInfo { private object _controller; public object controller { get { return _controller; } set { _controller = value; } } private object _action; public object action
{ get { return _action; } set { _action = value; } } private object _id; public object id { get { return _id; } set { _id = value; } } } 在 HomeController 的 RegisterRoutes 方法中,设置好 HomeControllerInfo 实例的默认值,然 后调用 RouteCollectionExtensions 的 MapRoute 方法,做 Route-Mapping: public static void RegisterRoutes(RouteCollection routes) { HomeControllerInfo info = new HomeControllerInfo(); info.controller = "Home"; info.action = "Index"; info.id = UrlParameter.Optional; RouteCollectionExtensions.MapRoute(routes, //routes.MapRoute( "HomeMvc" // Route name "home.mvc/{action}/{id}" // URL with parameters info //new { controller = "Home" action = "Index" id = UrlParameter.Option
㈡ 如何将mvc4.0部署iis7
最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现
vs2010的安装和mvc4的安装不在本次记录之列,主要记录网站发布和iis的部署
使用的版本如下图所示:
iis为7.0:
vs2010,.net framework 为4.0.30310 ,安装mvc4需要升级vs2010到vs2010 sp1 版本,见图示:
mvc4:
为了测试需要,在项目ZPG.SpecialSite中创建控制器HomeController,并创建视图Index.cshtml,如下图:
编辑视图页面,添加测试用文字,如图所示:
接下来对刚刚创建的mvc4.0站点进行发布,步骤如下:
1.右击需要发布的项目,在弹出的菜单中选择“发布...”选项
2.在“发布web”对话框中进行设置,配置文件名称默认为“配置文件1”可以修改为需要的名字,以便识别,也可以不改。发布方法选择“文件系统”,目标位置处选一个文件夹用于存放将要发布的整个站点所有文件,这里我选择为“D:/我的文档/桌面/ZPGWeb”,然后点击“发布”按钮。如图:
3.点击发布后在指定的文件夹生成站点文件,发布成功!
接下来将发布成功的站点部署到iis7.0。
步骤如下:
1. 安装 Microsoft .net FrameWork 4.0安装包(网站开发时候使用的就是.net framework4.0框架);
2. 安装ASP.NET MVC 4.0 ;
3. 设置IIS的“ISAPI和CGI限制”中的“ASP.NET v4.0.0.30319”为允许,如下图所示:
4.在iis7.0中发布网站,如图,设置网站主目录为“D:/我的文档/桌面/ZPGWeb”:
5.设置该网站(站点“SpecialSite”)应用程序池的.net framework 版本为4.0.30196 :
添加应用程序池:
将该添加的应用程序池设置给站点SpecialSite
6.至此完成了mvc4.0站点在iis7.0的部署。
接下来在浏览器输入http://localhost查看刚才部署的mvc4.0项目,如下图:
如果出现上图内容,表明iis7.0成功运行由mvc4.0创建的项目!!
后续注意点:
1.如果读者使用的iis是在安装完.net framework 之后才安装的,需要进行iis注册,开始--运行--cmd,打开命令行提示符,输入命令如下
C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i
回车运行,如果读者的服务器是64系统,那么需要使用命令C:/Windows/Microsoft.NET/Framework64/v4.0.30319/aspnet_regiis.exe -i 来运行注册iis。
2.由于mvc4.0在创建项目后,默认在项目下的App_Start文件夹中的文件“RouteConfig.cs”里自动配置了“默认路由”为HomeController控制器下的Index方法(ActionResult),所以不需要在站点默认文档里配置默认文档名字,该站点会自动根据mvc的路由机制找到默认需要显示的视图文件。如下图:因为找了很久没有这些简单入门的介绍,所以花点时间写写,或许能对一些跟我类似的入门级朋友有帮助!!`(*∩_∩*)′
㈢ win7 32 浣峣is瀹夎匒SP.NET MVC 缃戠珯鏃跺嚭鐜癏ttp 500.0 Internal Server Error 閿欒浠g爜涓0x80070002
璇烽噸鏂伴厤缃
涓銆両IS鐨勬坊鍔
璇疯繘鍏モ鎺у埗闈㈡澘鈥濓紝渚濇¢夆滄坊鍔/鍒犻櫎绋嬪簭鈫掓坊鍔/鍒犻櫎Windows缁勪欢鈥濓紝灏嗏淚nternet淇℃伅鏈嶅姟锛圛IS锛夆濆墠鐨勫皬閽╁幓鎺夛紙濡傛湁锛夛紝閲嶆柊鍕鹃変腑鍚庢寜鎻愮ず鎿嶄綔鍗冲彲瀹屾垚IIS缁勪欢鐨勬坊鍔犮傜敤杩欑嶆柟娉曟坊鍔犵殑IIS缁勪欢涓灏嗗寘鎷琖eb銆丗TP銆丯NTP鍜孲MTP绛夊叏閮ㄥ洓椤规湇鍔°
浜屻両IS鐨勮繍琛
褰揑IS娣诲姞鎴愬姛涔嬪悗锛屽啀杩涘叆鈥滃紑濮嬧啋绋嬪簭鈫掔$悊宸ュ叿鈫扞nternet鏈嶅姟绠$悊鍣ㄢ濅互鎵撳紑IIS绠$悊鍣锛屽逛簬鏈夆滃凡鍋滄⑩濆瓧鏍风殑鏈嶅姟锛屽潎鍦ㄥ叾涓婂崟鍑诲彸閿锛岄夆滃惎鍔ㄢ濇潵寮鍚銆
绗涓绡 IIS涔媁eb鏈嶅姟鍣
涓銆佸缓绔嬬涓涓猈eb绔欑偣
姣斿傛湰鏈虹殑IP鍦板潃涓192.168.0.1锛岃嚜宸辩殑缃戦〉鏀惧湪D:\Wy鐩褰曚笅锛岀綉椤电殑棣栭〉鏂囦欢鍚嶄负Index.htm锛岀幇鍦ㄦ兂鏍规嵁杩欎簺寤虹珛濂借嚜宸辩殑Web鏈嶅姟鍣ㄣ
瀵逛簬姝Web绔欑偣锛屾垜浠鍙浠ョ敤鐜版湁鐨勨滈粯璁Web绔欑偣鈥濇潵鍋氱浉搴旂殑淇鏀瑰悗锛屽氨鍙浠ヨ交鏉惧疄鐜般傝峰厛鍦ㄢ滈粯璁Web绔欑偣鈥濅笂鍗曞嚮鍙抽敭锛岄夆滃睘鎬р濓紝浠ヨ繘鍏ュ悕涓衡滈粯璁Web绔欑偣灞炴р濊剧疆鐣岄潰銆
1锛庝慨鏀圭粦瀹氱殑IP鍦板潃锛氳浆鍒扳淲eb绔欑偣鈥濈獥鍙o紝鍐嶅湪鈥淚P鍦板潃鈥濆悗鐨勪笅鎷夎彍鍗曚腑閫夋嫨鎵闇鐢ㄥ埌鐨勬湰鏈篒P鍦板潃鈥192.168.0.1鈥濄
2锛庝慨鏀逛富鐩褰曪細杞鍒扳滀富鐩褰曗濈獥鍙o紝鍐嶅湪鈥滄湰鍦拌矾寰勨濊緭鍏ワ紙鎴栫敤鈥滄祻瑙堚濇寜閽閫夋嫨锛夊ソ鑷宸辩綉椤垫墍鍦ㄧ殑鈥淒:\Wy鈥濈洰褰曘
3锛庢坊鍔犻栭〉鏂囦欢鍚嶏細杞鍒扳滄枃妗b濈獥鍙o紝鍐嶆寜鈥滄坊鍔犫濇寜閽锛屾牴鎹鎻愮ず鍦ㄢ滈粯璁ゆ枃妗e悕鈥濆悗杈撳叆鑷宸辩綉椤电殑棣栭〉鏂囦欢鍚嶁淚ndex.htm鈥濄
4锛庢坊鍔犺櫄鎷熺洰褰曪細姣斿備綘鐨勪富鐩褰曞湪鈥淒:\Wy鈥濅笅锛岃屼綘鎯宠緭鍏モ192.168.0.1/test鈥濈殑鏍煎紡灏卞彲璋冨嚭鈥淓:\All鈥濅腑鐨勭綉椤垫枃浠讹紝杩欓噷闈㈢殑鈥渢est鈥濆氨鏄铏氭嫙鐩褰曘傝峰湪鈥滈粯璁Web绔欑偣鈥濅笂鍗曞嚮鍙抽敭锛岄夆滄柊寤衡啋铏氭嫙鐩褰曗濓紝渚濇″湪鈥滃埆鍚嶁濆勮緭鍏モ渢est鈥濓紝鍦ㄢ滅洰褰曗濆勮緭鍏モ淓:\All鈥濆悗鍐嶆寜鎻愮ず鎿嶄綔鍗冲彲娣诲姞鎴愬姛銆
5锛庢晥鏋滅殑娴嬭瘯锛氭墦寮IE娴忚堝櫒锛屽湪鍦板潃鏍忚緭鍏モ192.168.0.1鈥濅箣鍚庡啀鎸鍥炶溅閿锛屾ゆ椂灏辫兘澶熻皟鍑轰綘鑷宸辩綉椤电殑棣栭〉锛屽垯璇存槑璁剧疆鎴愬姛銆
㈣ asp.net MVC 中添加了Resource.resx资源文件,本地使用正常,部署到IIS后提示找不到指定的文件
在IIS中没有配置那个资源文件,需要中IIS中配置这个文件,配置后就可以了。
㈤ c# iis 配置MVC网站,css和js全部加载失败,该怎么处理(本地运行无异常)
看错误原因,应该是权限问题,给站点文件夹添加管理员用户权限,允许读、写
或者服务器有其他权限设置
㈥ net core web 能部署到iis7么
可以部署的,但是主要看的是操作系统
根据官网的文档是 支持 win7和 windows2008R2 以上的 系统
不过要安装WindowsHosting软件,还有就是 还需要安装VC++的运行时 vc_redist.x64
安装后 还需要 在系统里面将IIS给安装好 还有IIS对应的组件
推荐个别人的地址把 http://www.cnblogs.com/Dream618/p/5618787.html
㈦ Web Api及MVC性能提升的几个小技巧
一、缓存
为了避免每次请求都去访问后台的资源,我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据,这种机制就是所谓的缓存机制。缓存分为页面输出缓存,内存数据缓存和缓存依赖等。从设计原则来说,易变性、敏感性的信息不适合进行缓存,同时缓存的内容也是易丢失的,在代码中不能完全依赖于缓存的数据,需要保证在缓存的数据丢失后也能进行正确的处理。
1、页面输出缓存
通过对输出的页面好森进行缓存,每次新的用户请求调用相同的 Action 时,相同的内容不需要重新创建一次而直接输出。页面输出缓存的使用非常友闭亩简单,在 Action 上使用 [OutputCache] 特性标记即可生效。页面输出缓存可控制缓存的内容所存储的位置,例如是在服务器端存储缓存的页面内容还是在客户端存储缓存的页面内容;也可使用 Duration 参数控制缓存的失效绝对时间和间隔时间,甚至能使用 VaryByParam 参数对不同的请求参数分别进行缓存。页面输出缓存非常适合于内容比较固定的前端页面的缓存。
2、内存数据缓存
通常情况下,数据是保存在数据库、磁盘文件等存储介质中的,而应用程序访问这些资源是一项很费时的操作。如果先将这些资源中的数据缓存到内存缓存区中,当应用程序需要这些数据时,直接从缓存区中提取,就可以减少系统开态余销,显著提高可使用的用户并发数等。内存数据缓存需考虑缓存的内容更改失效后如何清空其他已经被缓存的相关联的数据问题。
3、EFCache
众所周知,NHiberate 提供了二级缓存功能。现在,如果你使用的是 Entity Framework 6 或更高版本的 Entity Framework ,你也可考虑使用 EFCache 组件来为 Entity Framework 提供二级缓存支持,其实质上也是属于内存数据缓存。EFCache 的特点是使用上非常方便,仅需定义如下的代码无需其他复杂的额外的配置即可实现二级缓存。如需定义特定的缓存策略,如缓存的过期时间,控制数据缓存的范围,也仅需继承 CachingPolicy 类并 override 其部分方法即可。你甚至可以通过实现 ICache 接口来实现自定义的缓存模型以替换默认的 InMemoryCache 。
二、Stream压缩
对响应流进行压缩,其作用是减少网络开销,提高系统的响应速度。目前的浏览器通常都支持 gzip 和 deflate 压缩解压功能,因此你通常无效考虑浏览器的兼容性问题。启用 gzip 和 deflate ,既可通过 IIS 配置实现,在 MVC 中也可通过编写自定义的 ActionFilter 实现。在压缩之前和压缩之后 Stream 的大小差异通常都是惊人的,其压缩率通常都在5-10倍以上。
三、js和css文件的压缩和打包
1、js 和 css 文件的压缩
其实质就是生成较小的文件,减小下载这些文件的网络开销,提供系统的响应速度。压缩 js 和 css 文件还有个好处是通常还可以起到代码混淆的作用。在 YbSoftwareFactory 的 MVC 解决方案中,使用的是 Microsoft Ajax Minifier 组件,可在代码编译的过程中自动对所配置的 js 和 css 进行压缩,基本上文件的大小都可减少一半以上
2、js、css文件的打包
其目的是进行 js 文件和 css 文件的合并,当前主流浏览器的并发连接数默认情况下通常都是 6 个,如果前端页面同时请求的服务器资源(如 img 文件、js 文件、css 文件以及各类 url 请求等)超过6个,通常就需要进行排队下载。进行 js 文件、css 文件的打包合并,通常可以在一次请求中就完成未打包之前需多次请求才能完成的工作,通过减少前端浏览器的连接请求,在某种意义上也是可提高系统的响应速度的。