復(fù)制代碼 代碼如下:
行 28: protected void Application_Start(Object sender, EventArgs e)
行 29: {
行 30: ApplicationConfiguration.OnApplicationStart(Context.Server.MapPath( Context.Request.ApplicationPath ));
行 31:
行 32: }
這下還真奇怪,回想了一下,剛開(kāi)始用Win7時(shí)似乎也是有遇到過(guò)這個(gè)問(wèn)題,只是忘記當(dāng)時(shí)是如何解決的。可以確定的是這個(gè)肯定跟項(xiàng)目本身無(wú)關(guān),因?yàn)槲粗匮b前是正常的,也就是說(shuō)跟環(huán)境有關(guān)了,那就是應(yīng)該是IIS7的問(wèn)題了。
搜索引擎的好就是造就了懶人,遇到問(wèn)題,不是“百度一下你就不知道”,而是Google一下你會(huì)知道,所以還是上Google上找了一下,確實(shí)跟我的判斷沒(méi)錯(cuò),引用周星星的話說(shuō)“我他媽的真是天才呀”。問(wèn)題很簡(jiǎn)單,就是Web應(yīng)用程序池配置錯(cuò)誤造成的,這個(gè)錯(cuò)誤應(yīng)該是IIS7所特有的。
解決辦法:
在IIS7->當(dāng)前應(yīng)用程序虛擬目錄->右鍵->管理應(yīng)用程序->高級(jí)設(shè)置
修改應(yīng)用程序池屬性:DefaultAppPool 為 Classic .NET AppPool (也即是經(jīng)典)即可。
又或者是直接到應(yīng)用程序池中,雙擊DefaultAppPool ,在彈出的窗口中把“托管管道模式”改成經(jīng)典,確定退出即可。
Tis:
在 IIS 7 中,應(yīng)用程序池有兩種運(yùn)行模式:集成模式和經(jīng)典模式。應(yīng)用程序池模式會(huì)影響服務(wù)器處理托管代碼請(qǐng)求的方式。如果托管應(yīng)用程序在采用集成模式的應(yīng)用程序池中運(yùn)行,服務(wù)器將使用 IIS 和 ASP.NET 的集成請(qǐng)求處理管道來(lái)處理請(qǐng)求。但是,如果托管應(yīng)用程序在采用經(jīng)典模式的應(yīng)用程序池中運(yùn)行,服務(wù)器會(huì)繼續(xù)通過(guò) Aspnet_isapi.dll 路由托管代碼請(qǐng)求,其處理請(qǐng)求的方式就像應(yīng)用程序在 IIS 6.0 中運(yùn)行一樣。
更多關(guān)于IIS 7 應(yīng)用程序池的托管管道模式中集成模式的介紹,可以移步到這里了解一下。
新聞熱點(diǎn)
疑難解答
圖片精選