2010-05-25 30 views
0

在我的Global.asax文件中,我有以下:的Cookie在應用程序在Global.asax警告添加日誌

void Session_End(object sender, EventArgs e) 
{ 
    System.Web.HttpCookie isAccess = new System.Web.HttpCookie("IsAccess"); 
    isAccess.Expires = DateTime.Now.AddDays(-1); 
    isAccess.Value = ""; 
    System.Web.HttpContext.Current.Response.Cookies.Add(isAccess); 
} 

所以每到這個方法這就是所謂的應用程序時,將記錄在以下事件應用程序日誌作爲警告:

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 5/25/2010 12:23:20 PM 
Event time (UTC): 5/25/2010 4:23:20 PM 
Event ID: c515e27a28474eab8d99720c3f5a8e90 
Event sequence: 4148 
Event occurrence: 332 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/2100509645/Root-1-129192259222289896 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: <PathRemoved>\www\ 
    Machine name: TIPPER 

Process information: 
    Process ID: 6936 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\NETWORK SERVICE 

Exception information: 
    Exception type: NullReferenceException 
    Exception message: Object reference not set to an instance of an object. 

Request information: 
    Request URL: 
    Request path: 
    User host address: 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 

Thread information: 
    Thread ID: 7 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: False 
    Stack trace: at ASP.global_asax.Session_End(Object sender, EventArgs e) in <PathRemoved>\Global.asax:line 113 

任何想法爲什麼此代碼會導致此錯誤?

+0

您打電話的方法是? – 2010-05-25 16:37:36

+0

對不起,我忘了添加這個,它在Session_End。 – 2010-05-25 17:08:54

+0

爲了簡單起見,網站A包含了另一個小型網站B.B是舊的代碼,最終將併入網站A.在我們這樣做之前,我們希望網站A控制進入網站B.因爲它們是不同的我們使用cookie的體系結構,但最終我們想要終止cookie。那麼在會議結束之前你怎麼稱呼它被破壞? – 2010-05-25 17:15:43

回答

2

看起來你正試圖在Session_End事件期間修改cookie。這將不起作用,因爲會話結束(Session_End)不對應於來自用戶的HTTP請求。相反,在從特定用戶接收到最後一個HTTP請求之後,它由ASP.NET啓動20分鐘(或者任何會話超時設置爲)。

0

任何想法爲什麼這段代碼會導致 這個錯誤?

猜測是,你在訪問中不存在響應的方法的響應。

Global.asax在哪種方法中調用此代碼?

0

它看起來像Session_End ...可能沒有HttpContext,更不用說響應了。

如果您只是在會話結束時嘗試清除cookie,您能不能設置過期日期,並在用戶關閉瀏覽器時清除該日期?