国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > IIS > 正文

IIS7.5應(yīng)用程序池集成模式和經(jīng)典模式的區(qū)別介紹

2024-08-29 03:15:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
升級(jí)過(guò)程中出現(xiàn)了比較多的問(wèn)題,前面文章也提到過(guò)幾個(gè)。這次就主要介紹下httpHandler 和 httpModule 在集成和經(jīng)典模式下的區(qū)別。很多文件上傳等都是需要使用到httpModule去實(shí)現(xiàn)。我今天就出現(xiàn)了NeatUpload在iis7.5下出現(xiàn)未將對(duì)象引用到設(shè)計(jì)實(shí)例的錯(cuò)誤。所以用httpModule作為測(cè)試案例。

1.新建測(cè)試網(wǎng)站W(wǎng)ebApplication,加入MyHttpModule類(lèi)實(shí)現(xiàn)IHttpModule接口,主要目的是測(cè)試程序是否經(jīng)過(guò)了HttpModule,經(jīng)過(guò)的在頁(yè)面輸出HttpModule字符。

復(fù)制代碼 代碼如下:


public class MyHttpModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += context_BeginRequest;
}
protected void context_BeginRequest(object sender, EventArgs e)
{
var context = sender as HttpApplication;
context.Response.Clear();
context.Response.Write("HttpModule");
context.Response.End();
}
}


2、2.在IIS7.5部署網(wǎng)站,首先使用經(jīng)典模式應(yīng)用程序池。在web.config的 <system.web> 的子節(jié)點(diǎn)<httpModules> 加入<add type="WebApplication.MyHttpModule, WebApplication"/>

復(fù)制代碼 代碼如下:


<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add type="WebApplication.MyHttpModule, WebApplication"/>
<add type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>


訪問(wèn)網(wǎng)站可以發(fā)現(xiàn)頁(yè)面輸出如下,說(shuō)明程序經(jīng)過(guò)了HttpModule

直接切換應(yīng)用程序池成集成模式會(huì)發(fā)現(xiàn)頁(yè)面輸出為空。證明程序沒(méi)有經(jīng)過(guò)HttpModule。那在集成模式下HttpModule如何才能執(zhí)行呢? 之前部署URLRewriter的時(shí)候查資料只知道需要 <system.webServer> <modules>注冊(cè)HttpModule。仔細(xì)查看配置文件會(huì)發(fā)現(xiàn)有一段如下英文.意思大概就是iis7版本的設(shè)置。之前版本無(wú)需設(shè)置。
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
這樣就大概明白意思是iis7.0之后有部分web配置移動(dòng)到system.webServer中。查閱相關(guān)得到答案確實(shí)如此 詳細(xì)資料見(jiàn)

于是在<system.webServer> <modules>中加入配置如下,刷新頁(yè)面,頁(yè)面能夠輸出字符HttpModule,證明成功了。

復(fù)制代碼 代碼如下:


<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove />
<add type="WebApplication.MyHttpModule, WebApplication"/>
<add preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>


由于在升級(jí)過(guò)程成有一個(gè)站點(diǎn)出現(xiàn) HTTP 錯(cuò)誤 500.22 - Internal Server Error 檢測(cè)到在集成的托管管道模式下不適用的 ASP.NET 設(shè)置

IIS7.5應(yīng)用程序池集成模式和經(jīng)典模式的區(qū)別介紹


當(dāng)時(shí)在比較急的情況下就直接刪除了 <system.web> 的子節(jié)點(diǎn)<httpModules> 程序正常運(yùn)行。后面通過(guò)仔細(xì)和正常的站點(diǎn)對(duì)比是發(fā)現(xiàn)是缺少 <validation validateIntegratedModeConfiguration="false"/> 這個(gè)導(dǎo)致,這個(gè)主要作用是設(shè)置不檢測(cè) <system.web>中的配置

經(jīng)過(guò)這今天的折騰終于是對(duì)iis7.5上的部署有了一定了解了。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 樟树市| 行唐县| 古交市| 余干县| 资中县| 宁安市| 龙海市| 乌鲁木齐县| 西吉县| 紫金县| 同心县| 普洱| 北川| 沁水县| 宁安市| 项城市| 临桂县| 琼海市| 梅河口市| 从化市| 茌平县| 宣武区| 安新县| 德昌县| 翼城县| 抚州市| 庆城县| 库伦旗| 平阳县| 永登县| 昭平县| 仪征市| 伊春市| 塔河县| 惠水县| 利津县| 麟游县| 延吉市| 南川市| 百色市|