asp.net session丟失處理方法

來源:互聯網
上載者:User

add name="stopappdomainrestartonfolderdelete"
type="mywebsite.stopappdomainrestartonfolderdeletemodule" />
需要說明的是,"stopappdomainrestartonfolderdelete"為自訂的任意名稱,"mywebsite"為上述.cs檔案中的命名空間,一般為項目名稱."stopappdomainrestartonfolderdeletemodule"為上述.cs檔案中的類名.

這就是它。 這將防止檔案夾刪除appdomain重新啟動,但修改web.config和bin檔案夾時仍會重新啟動,這正是我們想要的。

但是多刪除幾個檔案就會發現session還是會到期,為什麼會是這樣的呢?現在還沒搞清楚...於是在網上搜尋就有了下面的這種方式

在 <system.web>下面配置session的儲存方式為stateserver就可以了

<sessionstate mode="stateserver" statenetworktimeout="20"
stateconnectionstring="tcpip=127.0.0.1:42424" />

using system.reflection;
using system.web;
namespace mywebsite
{
/// <summary>
/// stops教程 the asp教程.net appdomain being restarted (which clears
/// session state, cache etc.) whenever a folder is deleted.
/// </summary>
public class stopappdomainrestartonfolderdeletemodule : ihttpmodule
{
public void init(httpapplication context)
{
propertyinfo p = typeof(httpruntime).getproperty("filechangesmonitor",
bindingflags.nonpublic | bindingflags.public | bindingflags.static);
object o = p.getvalue(null, null);
fieldinfo f = o.gettype().getfield("_dirmonsubdirs",
bindingflags.instance | bindingflags.nonpublic | bindingflags.ignorecase);
object monitor = f.getvalue(o);
methodinfo m = monitor.gettype().getmethod("stopmonitoring",
bindingflags.instance | bindingflags.nonpublic);
m.invoke(monitor, new object[] { });
}
public void dispose() { }
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.