小心!ASP.NET網(wǎng)站發(fā)布時的那些坑
開發(fā)工具:VS2010,MVC4.0,SQLSERVER2008
服務(wù)器:Windows server 2012,IIS8,SQLSERVER2012
一、發(fā)布后,每個頁面第一次打開都很卡,50秒或更長,第二次打開就很快了
估計原因:編譯速度慢,但在有VS環(huán)境的機器上發(fā)布沒有這么卡
解決辦法:
使用高版本的VS,“在發(fā)布期間預(yù)編譯”; 使用IIS8的Application Initialization功能 1. 使用VS2017“在發(fā)布期間預(yù)編譯”
發(fā)布時遇到一個報錯:
在應(yīng)用程序級別之外使用注冊為 allowDefinition='MachineToApplication' 的節(jié)是錯誤的。如果在 IIS 中沒有將虛擬目錄配置為應(yīng)用程序,則可能導(dǎo)致此錯誤。
解決辦法:發(fā)布時注釋web.config中的以下代碼
<!--<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication>-->
2. 使用IIS8的Application Initialization功能
二、ASP.NET session 頻繁丟失問題
問題現(xiàn)象:登錄后30秒左右會話丟失,需要重新登錄。
解決辦法:ASP.NET有幾種會話狀態(tài)模式,默認(rèn)為“InProc模式”,改為“StateServer模式”,問題解除。
1. off模式
即關(guān)閉Session。
全站關(guān)閉Session可在Web.Config文件中的<system.web>節(jié)中寫入:
<sessionState mode="off">
要在某個頁面上關(guān)閉Session,可在頁面上添加:
<%@ Page EnableSessionState="false" %>
2. InProc模式(缺省模式)
如果未在Web.config文件中配置SessionState Mode,默認(rèn)即是InProc模式。
如果要定制InProc模式的參數(shù),需要寫入Web.config文件,例如:
<sessionState mode="InProc" cookieless="false" timeout="20" />
cookieless設(shè)置是否允許不使用Cookie,timeout設(shè)置超時時間,單位為分鐘。
InProc模式依賴于 ASP.NET進程, 當(dāng)IIS進程崩潰或者重啟時,保存在進程中的會話狀態(tài)會丟失。
3. StateServer模式
StateServer模式是將會話數(shù)據(jù)存儲到單獨的內(nèi)存緩沖區(qū)中,由一個Windows服務(wù)“ASP.NET State Service ”(需要在windows服務(wù)中開啟)來控制這個緩沖區(qū),需要設(shè)置stateConnectionString:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20" />
使用StateServer模式時,所有需要保存在Session中的類,都要加上可序列化的特性:
[Serializable]
public class SomeClass { }
StateServer模式的優(yōu)點是獨立于IIS進程,IIS應(yīng)用程序的重啟不影響會話數(shù)據(jù)。
4. SQLServer模式
使用SQL Server來保存Session,即使IIS重啟,Session仍然不會丟失。需要先創(chuàng)建ASPState數(shù)據(jù)庫。具體方法可在網(wǎng)上查詢。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解VS2012發(fā)布網(wǎng)站步驟
- VS2010發(fā)布Web網(wǎng)站技術(shù)攻略
- 安裝IIS發(fā)布我的第一個網(wǎng)站圖文教程
- MVC4 網(wǎng)站發(fā)布(整理+部分問題收集和解決方案)
- ASP.NET網(wǎng)站的創(chuàng)建與發(fā)布過程簡析
- IIS7 網(wǎng)站發(fā)布常見報錯問題解決方案匯總
- ASP.NE網(wǎng)站發(fā)布注意事項簡析
- ASP.NET MVC3網(wǎng)站創(chuàng)建與發(fā)布(1)
- .NET發(fā)布網(wǎng)站詳細步驟
- VS2012/VS2013本地發(fā)布網(wǎng)站步驟詳解
相關(guān)文章
收集學(xué)習(xí)asp.net比較完整的面向?qū)ο箝_發(fā)流程
如果你已經(jīng)有較多的面向?qū)ο箝_發(fā)經(jīng)驗,跳過以下這兩步 第一步:掌握一門.NET面向?qū)ο笳Z言第二步:對.NET Framework類庫有一定的了解;在具備了OO基礎(chǔ)之后,以下是具體的學(xué)習(xí)ASP.NET技術(shù)步驟2012-12-12Asp.Net MVC3.0如何項目部署到Win7 64位系統(tǒng)
這篇文章主要介紹了Asp.Net MVC3.0如何項目部署到Win7 64位系統(tǒng)的全部過程,需要的朋友可以參考下2015-10-10ASP.NET Core MVC基礎(chǔ)學(xué)習(xí)之局部視圖(Partial Views)
這篇文章主要給大家介紹了關(guān)于ASP.NET Core MVC基礎(chǔ)學(xué)習(xí)之局部視圖(Partial Views)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ASP.NET Core MVC具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08.Net Core中間件之靜態(tài)文件(StaticFiles)示例詳解
這篇文章主要給大家介紹了關(guān)于.Net Core中間件之靜態(tài)文件(StaticFiles)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧2018-09-09asp.net中執(zhí)行存儲數(shù)據(jù)操作時數(shù)據(jù)被自動截取的一種情況
asp.net中執(zhí)行存儲數(shù)據(jù)操作時數(shù)據(jù)被自動截取的一種情況...2006-09-09在ASP.NET Core中用HttpClient發(fā)送POST, PUT和DELETE請求
這篇文章主要介紹了在ASP.NET Core中用HttpClient發(fā)送POST, PUT和DELETE請求的方法,幫助大家更好的理解和學(xué)習(xí)使用ASP.NET Core,感興趣的朋友可以了解下2021-03-03