成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

IIS中使用ASP.NET MVC的經驗總結

開發 后端
本文總結了一些IIS中使用ASP.NET MVC的經驗。文章學習針對IIS7.0、IIS6.0和更早版本的IIS的處理策略。

在這篇文章中我們學習在不同版本的IIS中使用ASP.NET MVC和URL Routing。我們學習針對IIS7.0、IIS6.0和更早版本的IIS的處理策略。

ASP.NET MVC框架依賴于URL Routing,要充分利用URL Routing,我們需要對Web服務器(IIS)進行一些額外的配置。

IIS的***版本是Windows2008中的IIS7.0,我們也可以Vista系統中(除了Home Basic版)安裝IIS7.0。

IIS7.0是提供了兩種處理請求的模式-集成模式和傳統模式。如果使用IIS7.0的話,那我們不需要做任何配置,如果要使用傳統模式的話則需要我們做一些額外的配置工作。

在Windows2003中安裝的是IIS6.0,如果是Windows Server 2003的話,那我們可以把IIS6.0升級到IIS7.0。但如果我們使用IIS 6.0的話,那需要我們做一些額外的配置工作。

Windows XP專業版安裝的IIS5.1版本,因此我們也需要對IIS5.1進行一些額外的配置工作。

***Windows2000使用的是IIS5.0,我們也需要對IIS5.0進行一些額外的配置工作。

下面是我們對不同版本IIS的總結:

IIS7.0(集成模式)- 不需要作任何配置就可以使用URL Routing。

IIS7.0(傳統模式) - 需要我們進行特別配置來使用URL Routing。

IIS6.0或更低版本 - 需要我們進行特別配置來使用URL Routing。

一、集成模式與傳統模式

IIS7.0可以使用兩種模式來處理請求-集成模式和傳統模式。集成模式提供更好、更多的功能;傳統模式則是為了向后兼容較早版本的IIS。

請求的處理模式是由程序池決定的,我們可以通過指定程序池與應用程序關聯的方式來設置web應用程序的請求處理模式。步驟如下:

1. 運行IIS服務管理器

2. 在Connections窗口選擇一個應用程序

3. 在Actions窗口中單擊Basic Settings連接打開Edit Application對話框,如下圖所示。

4. 設置Application pool。

默認情況下,IIS被配置為支持兩種應用程序池:DefaultAppPool和Classic .NET AppPool。如果設為DefaultAppPool,那我們的應用程序就運行在集成請求處理模式下。如果設置Classic .NET AppPool,那我們的應用程序就運行在傳統的請求處理模式下。

我們的應用程序就運行在傳統的請求處理模式下 

需要注意的是,我們通過點擊Edit Application對話框中的”Select”按鈕來改變程序池與應用程序的關聯關系,來修改請求處理模式。但ASP.NET應用程序在從傳統模式遷移到集成模式的時候需要解決幾個兼容性的問題。更多的信息請參見下列文章:

Upgrading ASP.NET 1.1 to IIS 7.0 on Windows Vista and Windows Server 2008 --http://learn.iis.net/page.aspx/270/upgrading-aspnet-11-to-iis7-on-windows-vista--windows-server-2008/

ASP.NET Integration With IIS 7.0 - http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

如果我們的ASP.NET應用程序使用的是DefaultAppPool,那我們不用做任何配置就可以使用URL Routing功能了。但如果ASP.NET程序被配置為Classic .NET AppPool,那請繼續向下看。

二、在舊版本的IIS中使用ASP.NET MVC

如果我們使用的IIS版號比IIS7.0低或者使用的是IIS7.0傳統模式,那我們有兩種選擇:

1、 修改路由表,加上文件擴展名。如我們把/Store/Details的URL地址換為/Store.aspx/Details

2、 創建wildcard script map。wildcard script map使我們把每個請求都映射到ASP.NET框架上。

如果我不能修改服務器的配置,那我們只好采用***種方式,如果我們不想修改URL地址,那我們必須采用第二種方式,去配置IIS web服務器。

在這是我們分別討論兩種在舊版本IIS中使用ASP.NET MVC的方法:

(一)向路由表中加擴展名。

要使URL Routing能夠在舊版本IIS上運行的最簡單的方法就是打開Global.asax文件,修改我們的路由表。路由表的代碼如下:

Listing 1 – Global.asax (unmodified)

  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Web;   
  5. using System.Web.Mvc;   
  6. using System.Web.Routing;   
  7. namespace MvcAppCS   
  8. {        
  9.    public class GlobalApplication : System.Web.HttpApplication        
  10.    {             
  11.     public static void RegisterRoutes(RouteCollection routes)             
  12.     {                  
  13.      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                  
  14.      routes.MapRoute(                       
  15.      "Default",// Route name                       
  16.      "{controller}/{action}/{id}",// URL with parameters                       
  17.      new { controller = "Home", action = "Index", id = "" } // Parameter defaults                          
  18.      );             
  19.     }             
  20.     protected void Application_Start()             
  21.     {                 
  22.     RegisterRoutes(RouteTable.Routes);             
  23.     }        
  24.    }   
  25. }  

默認的路由配置可以對我們下面的ULR地址進行路由:

     /Home/Index

      /Product/Details/3

      /Product

然而不幸的是,舊版本的IIS不會把這樣的請求傳遞給ASP.NET框架,因此這些請求也不會被路由到控制器。比如我們請求/Home/Index這個URL時,會產生一個錯誤頁面的提示。如下圖

舊版本的IIS不會把這樣的請求傳遞給ASP.NET框架 

舊版的IIS只能把那些具有特定擴展名的URL請求發送給ASP.NET框架。比如/SomePage.aspx請求會被映射到ASP.NET框架,而/SomePage.htm則不會被映射到ASP.NET框架。

因此,要想使URL Routing能夠正常工作,我們必須要修改默認路由,使其包含文件擴展名,以映射到ASP.NET 框架中去。能夠映射到ASP.NET框架中的擴展名有.aspx .axd 和.ashx

修改后的Global.asax文件如下所示

Listing 2 – Global.asax (modified with extensions)

  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Web;   
  5. using System.Web.Mvc;   
  6. using System.Web.Routing;   
  7. namespace MvcAppCS   
  8. {        
  9.    public class GlobalApplication : System.Web.HttpApplication        
  10.    {             
  11.     public static void RegisterRoutes(RouteCollection routes)             
  12.     {                  
  13.      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                  
  14.      routes.MapRoute(                       
  15.      "Default"// Route name                       
  16.     "{controller}.aspx/{action}/{id}"// URL with parameters                       
  17.      new { controller = "Home", action = "Index", id = ""}// Parameter defaults                  
  18.      );             
  19.     }             
  20.     protected void Application_Start()             
  21.     {                  
  22.      RegisterRoutes(RouteTable.Routes);             
  23.     }        
  24.    }   
  25. }  

注意:在修改完Global.asax文件后要記得重新編譯我們的ASP.NET MVC應用程。

在上面的代碼中,我們做了一個很小但很重要的修改,我們把默認路由修改為如下格式:

{controller}.aspx/{action}/{id}

由于這種更改,因此ASP.NET MVC應用程路由只能映射下面這種形式了

     /Home.aspx/Index

      /Product.aspx/Details/3

      /Product.aspx

當我們修改完路由表后,我們還要確保程序中的所有超連接的URL地址也都已做相應的修改。換句話說,要保證所有的超鏈接導航地址中都包含.aspx擴展名。如果我們使用Html.ActionLink()方法生成的超鏈接,那我們不需要對超鏈接做更改。

(二)創建Wildcard Script Map

如果我們不想修改ASP.NET MVC應用程序中的URL地址,并且可以訪問到Web服務器,那我們可以通過創建wildcard script map方式來把所有請求映射到ASP.NET框架中去。這樣就避免修改默認的由表了。

要搞明的一點是,這種修改會使IIS對每個請求都會處理,那怕是請求一張圖片、ASP頁面、HTML頁面。因此使用wildcar script map會使操作更隱式。

啟用IIS7.0的wildcard script map

1. 在Connections窗口中選擇我們的應用程序

2. 確定選中了Features視圖。

3. 雙擊Handler Mappings按鈕。

4. 單擊Add Wildcard Script Map,如圖。

5. 輸入aspnet_isapi.dll文件的路徑

6. 在Name文本框中輸入MVC

7. 點擊OK按鈕。

單擊Add Wildcard Script Map 

在IIS6.0中創建wildcar script map的步驟:

1、 右擊站點,選擇屬性

2、 選擇“Home Directory”選項卡

3、 點擊“Configuration”按鈕

4、 選擇“Mappings”選項卡

5、 點擊“Insert”按鈕,如下圖所示

6、 在Executeable文本框中輸入aspnet_isapi.dll文件所在的路徑

7、 去掉Verify that file exists復選框前的勾。

8、 點擊OK按鈕

在IIS6.0中創建wildcar script map的步驟 

當我們配置完wildcard script map我們可以使用默認的路由表來處理下面的URL地址

      /Home/Index

      /Product/Details/3

      /Product

總結

這篇文章中我們解釋了如何在舊版本(或IIS7.0傳統模式下)IIS中使用ASP.NET MVC。我們討論了兩種方式來解決URL Routing與舊版本IIS協同工作問題 :修改默認路由表或創建wildcard script map

***種方法需要我們修改ASP.NET MVC應用程序,這種做法的好處是,我們不需要操作web服務器,而只是修改一下程序中的路由表即可。

第二種方法是需要我們創建wildcard script map,這種做法的好處是,我們不需要修改我們的代碼,但缺點是會影響ASP.NET MVC程序的性能。

【編輯推薦】

  1. 配置ASP.NET步驟
  2. 介紹ASP.NET中SQL語句
  3. 在ASP.NET中使用StringBuilder
  4. ASP.NET中的Response.Write
  5. 淺析ASP.NET授權模塊
責任編輯:yangsai 來源: 灰灰蟲的家
相關推薦

2009-07-29 16:22:34

APACHE上運行AS

2009-07-22 09:36:54

使用UpdataModASP.NET MVC

2014-06-30 15:10:32

2009-07-23 15:44:39

ASP.NET MVC

2010-11-02 08:46:55

NupackASP.NET MVC

2010-04-09 09:28:37

View Model

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-20 16:45:41

使用StringBuiASP.NET

2021-06-22 16:59:56

微軟.NETC# 軟件開發

2010-03-23 08:42:26

ASP.NET MVC

2009-07-30 12:30:27

ASP.NET中使用S

2009-07-24 11:15:36

IIS ISAPI eASP.NET

2011-05-23 13:43:19

ASP.NETIIS7

2009-07-31 12:43:59

ASP.NET MVC

2009-07-22 16:34:36

使用T4ASP.NET MVC

2009-07-28 10:59:13

ASP.NET IIS

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2009-07-30 12:19:32

ASP.NET中使用A

2009-05-05 14:02:14

PlaceHolder控件ASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠操狠狠干 | 欧美日韩专区 | 国产精品综合色区在线观看 | 日韩精品免费 | 日韩精品一区二区久久 | 中文字幕视频一区二区 | 久久网国产 | 久久只有精品 | 国产精品久久国产精品 | 免费av在线网站 | 亚洲精品一区中文字幕乱码 | 国产欧美精品一区二区三区 | 日批av| 久久久99国产精品免费 | 国产色婷婷精品综合在线手机播放 | www久久国产 | 国产精品久久国产精品久久 | 高清久久 | 国产精品久久久久久婷婷天堂 | 亚洲一区二区三区久久 | 国产成人精品久久二区二区91 | 国产免费一级片 | 久久精品屋 | 成人黄色电影在线观看 | 欧美一a一片一级一片 | 亚洲播放一区 | 国产精品久久久久久久久久久久久久 | 亚洲热在线视频 | 手机看片169 | 超碰最新在线 | 婷婷色在线 | 玖玖在线精品 | 亚洲第一成年免费网站 | 亚洲激情视频在线 | 成人午夜影院 | 精品伊人久久 | 女同久久另类99精品国产 | 久久精品中文字幕 | 精品美女久久久久久免费 | 中文字幕av第一页 | 亚洲一区二区三区在线观看免费 |