㈠ 如何在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 文件的打包合並,通常可以在一次請求中就完成未打包之前需多次請求才能完成的工作,通過減少前端瀏覽器的連接請求,在某種意義上也是可提高系統的響應速度的。