當我們asp.net程序遷移到iis7時,如果頁面cookie中存在未編碼的漢字時,iis內核就會報錯,
錯誤信息如下:
在多字節的目標代碼頁中,沒有此 Unicode 字符可以映射到的字符。 (異常來自 HRESULT:0x80070459)
對應的英文錯誤信息如下:
No mapping for the Unicode character exists in the target multi-byte code page
經過單元測試,確實如此,iis6下還未測試,不知是否會發生此情況
解決方案:存儲cookie值經過url編碼即可,上代碼
HttpCookie cookie =
new HttpCookie(
"username
", HttpUtility.UrlEncode(userName));
cookie.Expires = DateTime.Now.AddMonths( 1);
Response.AppendCookie(cookie);
cookie.Expires = DateTime.Now.AddMonths( 1);
Response.AppendCookie(cookie);