[英]Why Does a C# Web App ReBuild Result in Application_End() Call?
我注意到在調試我的應用程序時,有時[InProc]會話狀態在重新生成(C#Web應用程序)后會被破壞。 事件的順序如下:
我正在使用IIS Express運行此應用程序,但是無論使用哪種Web服務器,它似乎都會發生。 由於應用程序沒有依靠Session變量消失,這導致了許多問題。
namespace BlankWebApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session["test"] = true;
}
}
protected void butCheckSession_Click(object sender, EventArgs e)
{
if (Session["test"] == null)
{
// Session_End and Application_End must have been called
}
}
}
}
更改bin
文件夾的內容將導致應用程序池回收。 這就是Re-Build
發生的情況,因為rebuild會編譯應用程序並為項目創建新的dll /可執行文件,從而導致bin
文件夾中的更改。 應用程序池回收將導致會話從服務器內存中刪除。
更改Web.Config
文件也是如此。
你無法避免。 您應該有一個單獨的開發和生產環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.