[轉載]IIS7報500.23錯誤的解決方法

原文出處:

原文作者:pizibaidu

原文鏈接:http://pizibaidu.blog.51cto.com/1361909/1794446

背景:今天公司終端上有一個功能打開異常,報500錯誤,我用Fiddler找到鏈接,然后在IE里打開,報500.23錯誤:檢測到在集成的托管管道模式下不適用的ASP.NET設置。后臺是一個IIS7tomcat7集成的環境,此處記錄一下。

HTTP 錯誤 500.23 - Internal Server Error

檢測到在集成的托管管道模式下不適用的 ASP.NET 設置。

wKioL1d0hK_Ts3wrAAEBRyqq7ec479.jpg-wh_50

為什么會出現以上錯誤?

IIS7的應用程序池有兩種模式,一種是集成模式,一種是經典模式

經典模式則是我們以前習慣的IIS6 的方式。

如果使用集成模式,那么對自定義的httpModules httpHandlers 就要修改配置文件,需要將他們轉移到<modules><hanlders>節里去。

兩種解決方法:

1)配置應用程序池

IIS7上配置應用程序池,并且將程序池的模式改為經典,之后一切正常。如圖:

wKiom1d0hRDzE-6UAAE_nD6nnfU450.png-wh_50

?用了IIS7.x,但實際只發揮了6的功能,另外,在一些ASP.NET MVC程序中的效果也不好,所以,我們嘗試以下解決方法:

2)修改web.config配置文件

注:web.config路徑C:\inetpub\wwwroot\web.config

例如原先設置(你的環境中可能沒有httpModuleshttpHandlers節點)

1 <system.web>
2 ............
3 <httpModules>
4 <add name="MyModule" type="MyApp.MyModule" />
5 </httpModules>
6 <httpHandlers>
7 <add path="*.myh" verb="GET" type="MyApp.MyHandler" />
8 </httpHandlers>
9 </system.web>

IIS7應用程序池為集成模式時,改為:

 1 <system.web>
 2 ...........
 3 </system.web>
 4 <system.webServer>
 5 <modules>
 6 <add name="MyModule" type="MyApp.MyModule" /> 
 7 </modules>
 8 <handlers>
 9 <add name="MyHandler" path="*.myh" verb="GET" type="MyApp.MyHandler" preCondition="integratedMode" />
10 </handlers>
11 </system.webServer>

如果你的web.config沒有httpModuleshttpHandlers節點,則直接在節點system.webServer中添加:<validation validateIntegratedModeConfiguration="false" />禁止驗證集成模式,來避免錯誤。

當然你也可以使用IIS7.0提供的全新管理工具AppCmd.exe來修改web.config文件,關于AppCmd.exe的使用教程請參見:IIS7全新管理工具AppCmd.exe的命令使用實例。

IIS Log的位置:

IIS 6.0的Log日志存儲在:

c:\windows\system32\logfiles\

IIS 7 Log存儲在:

%SystemDrive%\inetpub\logs\LogFiles

經過我的測試, IIS日志是即時寫入的, 不需要IIS reset.

IIS 6, 7的日志寫入按不同站點寫入不同的文件夾, 位置文件夾的格式都是"w3svc{siteId}".

IIS6里, 查看站點ID的方式是通過IIS log的文件夾的名字來確定Site ID.

IIS7中, 在IIS管理器中的advanced settings中, General里的ID就是Site ID, 然后你需要通過這個ID來定位LogFiles文件夾中哪一個文件夾屬于你要查看的站點.

Intergrated和Classic的區別

IIS7的Application Pools有兩種mode,一種是Integrated,一種是classic。如果使用Integrated模式,那么對自定義的httpModules和httpHandlers就要修改配置文件了,需要將他們轉移到<modules>和<hanlders>節里去。

IIS7的兩種模式和IIS6有什么區別?

IIS7.0 Integrated modeasp.net 的modules和handlers從<system.webServer>下的<modules> 和<handlers>里讀取,以前的<system.web>下的<httpModules> 和<httpHandlers>配置節會被忽略,如果設置禁止驗證(disabledvalidation),是不會產生錯誤的。

IIS7.0?Classic mode 與 以上情況是相反的,<modules>和<handlers>會被忽略。

?

Classic vs Integrated

Classic mode (theonly mode in IIS6 and below) is a mode where IIS only works with ISAPIextensions and ISAPI filters directly. In fact, in this mode, Asp.net is justan ISAPI extension (aspnet_isapi.dll) and an ISAPI filter(aspnet_filter.dll).IIS just treats Asp.net as an external plugin implemented in ISAPI and workswith it like a black box (and only when it's needs to give out the request toASP.NET). In this mode, Asp.net is not much different from PHP or other technologies for IIS.

經典模式是IIS6.0以及以下版本的唯一工作模式(只工作在ISAPI EXTENSION,ISAPI FILTERS下)。在此種模式下asp.net只是一個分別實現了ISAPIEXTENSION和ISAPI FILTER的插件(aspnet_isapi.dll,aspnet_filter.dll),IIs的工作只是將特定的請求轉發給Asp.net,與 PHP等等寄宿在IIS中的插件別無二致。

Integrated mode,on the other hand, is a new mode in IIS7 where IIS pipeline is tightlyintegrated (i.e. is just the same) as?Asp.net request pipeline. ASP.NET cansee every request it wants to and manipulate things along the way. ASP.NET isno longer treated as an external plugin. It's completely blended and integratedin IIS. In this mode, Asp.net HttpModules basically have nearly as much poweras an ISAPI filter would have had and Asp.net HttpHandlers can have nearlyequivalent capability as an ISAPI extension could have. In this mode, Asp.netis basically a part of IIS.

然而在集成模式里,IIS的管道與Asp.net的請求管道是緊密集成 的,Asp.net可以完全控制,訪問整個請求管道。Asp.net不在作為一個外部插件,而是完全集成在IIS中。在此模式下,Asp.net HttpModules與ISAPI Filter擁有等同的控制權,Asp.net HttpHandlers與ISAPI Extension擁有等同控制權,換而言之Asp.net已經是IIS的一部分了。

?如 果要兼顧IIS6及IIS7,可在web.config中同時保留httpHandlers(for IIS6)及handlers(for IIS7)里的相同定義,但記得要加上<validation validateIntegratedModeConfiguration="false"/>,不然IIS7會因為定義重覆出現而發生錯誤。

轉載于:https://www.cnblogs.com/Scl891004X/p/6141326.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于用戶空間和內核空間

當一個任務&#xff08;進程&#xff09;執行系統調用而陷入內核代碼中執行時&#xff0c;我們就稱進程處于內核運行態&#xff08;內核態&#xff09;。在內核態下&#xff0c;CPU可執行任何指令。當進程在執行用戶自己的代碼時&#xff0c;則稱其處于用戶運行態&#xff08;用…

kaggle中zillow比賽中模型融合的方法及其代碼

在機器學習這個領域&#xff0c;尤其是做多媒體&#xff08;聲音、圖像、視頻&#xff09;相關的機器學習方法研究&#xff0c;會涉及很多特征、分類模型&#xff08;分類任務&#xff09;的選擇。以聲音識別為例&#xff0c;常見的特征有MFCC、LPCC、spectrogram-like feature…

靜態時序分析——Timing borrow

Timing Borrow技術又稱為cycle stealing技術&#xff0c;主要是利用latch的電平敏感特性&#xff0c;通過有效電平獲取數據&#xff0c;通過無效電平保持被鎖存的數據&#xff0c;主要用于解決路徑時序不滿足電路要求的情況。 通過TimingBorrow可以對電路進行加速,當路徑延遲較…

homebrew 常用命令

安裝&#xff08;需要 Ruby&#xff09;&#xff1a;ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/Go/install)" 搜索&#xff1a;brew search MySQL 查詢&#xff1a;brew info mysql 主要看具體的信息&#xff0c;比如目前的版本&#xff0c…

從Mysql某一表中隨機讀取n條數據的SQL查詢語句

若要在i ≤ R ≤ j 這個范圍得到一個隨機整數R &#xff0c;需要用到表達式 FLOOR(i RAND() * (j – i 1))。例如&#xff0c; 若要在7 到 12 的范圍&#xff08;包括7和12&#xff09;內得到一個隨機整數, 可使用以下語句&#xff1a; SELECT FLOOR(7 (RAND() * 6)); 以上摘…

基于MTD的NAND驅動開發(二)

基于MTD的NAND驅動開發(二) 基于MTD的NAND驅動開發(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驅動架構 1 、platform_device 和platform_driver 的定義和注冊 對于我們的…

靜態時序分析——Data to data check

setup和hold的檢查也有可能發生在任意兩個數據端口&#xff0c;其中不包括時鐘端口。 我們將其中一個端口&#xff08;pin&#xff09;設置為約束端口&#xff08;constrainted pin&#xff09;&#xff0c;就像觸發器中的數據端口&#xff1b;將另一個一個端口&#xff08;pin…

開源數據庫中間件-MyCa初探與分片實踐

如今隨著互聯網的發展&#xff0c;數據的量級也是撐指數的增長&#xff0c;從GB到TB到PB。對數據的各種操作也是愈加的困難&#xff0c;傳統的關系性數據庫已經無法滿足快速查詢與插入數據的需求。這個時候NoSQL的出現暫時解決了這一危機。它通過降低數據的安全性&#xff0c;減…

【JAVA設計模式】外觀模式(Facade Pattern)

一 定義 為子系統中的一組接口提供一個一致的界面。Facade模式定義了一個高層的接口&#xff0c;這個接口使得這一子系統更加easy使用。二 案例 一個子系統中擁有3個模塊。每一個模塊中都有3個方法。當中一個為client調用方法&#xff0c;其它兩個則為各子模塊間互相調用方法…

return的用處

#include "stdio.h" main() {int a,b1,c0;for(a1;a<5;a){ cca;}printf("%d",c);return ;printf("hello word"); } 輸出結果是10并沒有hello word&#xff1b;return將不會執行下面的語句。轉載于:https://www.cnblogs.com/doublekai/p/6148…

靜態時序分析——Clock Gating check

門控時鐘是RTL級進行低功耗設計的最常用方法&#xff0c;能夠有效降低動態功耗。在實際使用中&#xff0c;一般用ICG&#xff08;集成門控時鐘單元&#xff09;來完成clock gating。ICG電路和時序如下&#xff1a; 通常來說&#xff0c;工藝庫已經集成了ICG&#xff0c;在做門控…

U-boot中TFTP 解釋

http://www.cnblogs.com/heaad/archive/2009/08/10/1542538.html

BlackHat Arsenal USA 2018 ToolsWatch黑客工具庫

原文鏈接&#xff1a;https://medium.com/hack-with-github/black-hat-arsenal-usa-2018-the-w0w-lineup-7de9b6d32796 Black Hat Arsenal USA 2018?—?The w0w lineup After the huge success of Black Hat Arsenal USA 2017, toolswatch has now announced the list of too…

SOA是什么

SOA是什么&#xff1f; SOA是面向服務的架構&#xff0c;是一個組件模型&#xff0c;它將應用程序的不同功能單元&#xff08;稱為服務&#xff09;通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的&#xff0c;它獨立于實現服務的硬件平臺、操作…

redis 優化

系統優化echo "vm.overcommit_memory1" > /etc/sysctl.conf 0&#xff0c; 表示內核將檢查是否有足夠的可用內存供應用進程使用&#xff1b;如果有足夠的可用內存&#xff0c;內存申請允許&#xff1b;否則&#xff0c;內存申請失敗&#xff0c;并把錯誤返回給應…

IC設計常見設計思想

速度與面積互換原則 所謂速度&#xff0c;是指整個工程穩定運行所能夠達到的最高時鐘頻率&#xff0c;它不僅和電路內部各個寄存器的建立時間、保持時間以及外部器件接口的各種時序要求有關&#xff0c;而且還和兩個緊鄰的寄存器間的邏輯延時&#xff0c;走線延時有關。所謂面…

DM365 u-boot啟動分析

http://www.61ic.com/Article/DaVinci/DM644X/201009/27429.html

(十三)Hibernate高級配置

配置數據庫連接池 配置C3P0連接池。先導入c3p0包。然后在hibernate.cfg.xml文件中 &#xff0c;使用下面代碼配置連接池<property name"hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>可以通過下面的…

eclipse中如何配置tomcat

1.打開eclipse上面的Windows選項&#xff0c;選擇Preferences>Server>Runtime Environments>Add 2.選擇你電腦中安裝的tomcat的版本我的是8所以我選的是Apache Tomcat v8.0 3,Next>Browse選擇Tomcat的安裝目錄&#xff0c;選擇jdk 4.Finish>OK tomcat配置完成。…

jsp調試小技巧

console.log($("#toolbar")); 打印對象可知道這個對象的參數信息轉載于:https://www.cnblogs.com/chenweida/p/6149342.html