分享兩種ASP.NET網站發布時的遇到的問題及解決方案

來源:互聯網
上載者:User
ASP.NET網站發布時的那些坑,要小心了,為什麼網站發布後,每個頁面第一次開啟都很卡?ASP.NET session 頻繁丟失如何解決?具有一定的參考價值,感興趣的小夥伴們可以參考一下

開發工具:VS2010,MVC4.0,SQLSERVER2008

伺服器:Windows server 2012,IIS8,SQLSERVER2012

一、發布後,每個頁面第一次開啟都很卡,50秒或更長,第二次開啟就很快了

估計原因:編譯速度慢,但在有VS環境的機器上發布沒有這麼卡

解決辦法:

使用高版本的VS,“在發布期間先行編譯”; 使用IIS8的Application Initialization功能 1. 使用VS2017“在發布期間先行編譯”

發布時遇到一個報錯:

在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的節是錯誤的。如果在 IIS 中沒有將虛擬目錄配置為應用程式,則可能導致此錯誤。

解決辦法:發布時注釋web.config中的以下代碼


<!--<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /></authentication>-->

2. 使用IIS8的Application Initialization功能

ASP.NET網站第一次訪問慢的解決方案

二、ASP.NET session 頻繁丟失問題

問題現象:登入後30秒左右會話丟失,需要重新登入。

解決辦法:ASP.NET有幾種工作階段狀態模式,預設為“InProc模式”,改為“StateServer模式”,問題解除。

1. off模式

即關閉Session。

全站關閉Session可在Web.Config檔案中的<system.web>節中寫入:

<sessionState mode="off">

要在某個頁面上關閉Session,可在頁面上添加:

<%@ Page EnableSessionState="false" %>

2. InProc模式(預設模式)

如果未在Web.config檔案中配置SessionState Mode,預設即是InProc模式。

如果要定製InProc模式的參數,需要寫入Web.config檔案,例如:

<sessionState mode="InProc" cookieless="false" timeout="20" />

cookieless設定是否允許不使用Cookie,timeout設定逾時時間,單位為分鐘。

InProc模式依賴於 ASP.NET進程, 當IIS進程崩潰或者重啟時,儲存在進程中的工作階段狀態會丟失。

3. StateServer模式

StateServer模式是將會話資料存放區到單獨的記憶體緩衝區中,由一個Windows服務“ASP.NET State Service ”(需要在windows服務中開啟)來控制這個緩衝區,需要設定stateConnectionString:

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20" />

使用StateServer模式時,所有需要儲存在Session中的類,都要加上可序列化的特性:

[Serializable]
public class SomeClass { }

StateServer模式的優點是獨立於IIS進程,IIS應用程式的重啟不影響會話資料。

4. SQLServer模式

使用SQL Server來儲存Session,即使IIS重啟,Session仍然不會丟失。需要先建立ASPState資料庫。具體方法可在網上查詢。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援指令碼之家。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.