Может кто-нибудь помочь мне?
Мы разрабатываем приложение asp.net с использованием фреймворка asp.net 2.0. Вопрос носит спорадический характер. Как только конкретный пользователь попадает на сайт в производственном процессе, появляется пользовательская страница с ошибкой. Мне сказали, что этот пользователь может успешно войти несколько раз, и после некоторого простоя он получает эту страницу с ошибкой. Мы даже еще не зашли на сайт. Как только я захожу на сайт. Пример: - www.Mywebsite.com, пользовательская ошибка отображается. Может ли кто-нибудь помочь мне в этом. Еще одна вещь, которую я имею на своем локальном компьютере .NET 3.5 с пакетом обновления 1 установлен и в производстве только после того, как сервер установлен пакет обновления. Может ли это быть причиной проблемы? иногда это показывает страницу и некоторые пользовательские ошибки. Они даже не посетили экран входа в систему. Как только некоторые пользователи заходят на сайт, они видят страницу с ошибкой клиента, а не страницу входа. Как я уже сказал, это происходит, когда пользователь заходит на сайт, я начал проверять свой загрузочный код index.aspx (страница, настроенная в документах виртуальных каталогов как стартовая страница), и это код, который я использую.
Моя каждая страница .aspx наследует класс PageBase, который имеет переопределенный метод ниже и с кодом ниже. Если вы внимательно посмотрите, срок действия "langCookie" составляет 30 минут. Будет ли это проблемой? Ниже приведен небольшой код моего PageBase и моего index.aspx. Я не уверен, что делает пользователь. Я слышал, что это происходит спорадически, поэтому стало трудно воспроизводить. Еще одна вещь, поскольку это сочетание страниц asp и aspx, которые я использовал ниже в web.config. В противном случае я получаю символы sqaure на классических страницах asp, когда открываю их.
PageBase.cs Код: -
protected override void InitializeCulture()
{
base.InitializeCulture();
HttpCookie langCookie = null;
if (null == Request.Cookies[SESSION_KEY_LANGUAGE])
{
foreach (string s in Request.Cookies)
{
if (HttpUtility.UrlDecode(Request.Cookies[s].Name) == SESSION_KEY_LANGUAGE)
{
langCookie = new HttpCookie(SESSION_KEY_LANGUAGE);
langCookie.Value = HttpUtility.UrlDecode(Request.Cookies[s].Value); langCookie.Expires = DateTime.Now.AddMinutes(30.0);
Response.Cookies.Add(langCookie);
break;
}
}
}
else
{
langCookie = Request.Cookies[SESSION_KEY_LANGUAGE];
}
if (null != langCookie)
{
if (langCookie.Value != "")
{
CultureInfo cultureInfo = new CultureInfo(langCookie.Value);
ApplyNewLanguage(cultureInfo);
}
}
}
index.aspx.cs: - Начальная страница в виртуальной среде установлена как index.aspx
protected void Page_Load(object sender, EventArgs e)
{
//Set sign button as default button for login (press enter)
Page.Form.DefaultButton = "ButtonSignIn";
//Get Cookie Language
if (null == Request.Cookies[SESSION_KEY_LANGUAGE])
{
cookie = new HttpCookie(SESSION_KEY_LANGUAGE);
}
else
{
cookie = Request.Cookies[SESSION_KEY_LANGUAGE];
}
if (null == Request.Cookies[SESSION_KEY_LANGUAGE_FORASP])
{
cookieASP = new HttpCookie(SESSION_KEY_LANGUAGE_FORASP);
}
else
{
cookieASP = Request.Cookies[SESSION_KEY_LANGUAGE_FORASP];
}
if (!IsPostBack)
{
//check if chkbtaccess cookies exists
if (null != Request.Cookies[CHECKACCESS])
{
HttpCookie cookieCheckAccess = Request.Cookies[CHECKACCESS];
string strCKBTC = DecryptUsernamePass(cookieCheckAccess.Value.ToString());
if (String.Compare(strCKBTC, string.Empty) != 0)
{
string[] aryCKBTC = strCKBTC.Split(Convert.ToChar(","));
TextBoxUsername.Text = aryCKBTC[0];
TextBoxPassword.Text = aryCKBTC[1];
CheckBoxRememberMe.Checked = true;
}
}
private string DecryptUsernamePassword(string strText)
{
string strDecryptedUsernamePassword = string.Empty;
strDecryptedUsernamePassword = CommonUtil.EncryptDecryptHelper.Decrypt(HttpUtility.UrlDecode(strText, Encoding.Default));
//strDecryptedUsernamePassword = CommonUtil.EncryptDecryptHelper.Decrypt(HttpUtility.UrlDecode(strText, Encoding.Unicode));
return strDecryptedUsernamePassword;
}
private string EncryptUsernamePassword(string strText)
{
string strEncryptedUsernamePassword = string.Empty;
strEncryptedUsernamePassword = HttpUtility.UrlEncode(CommonUtil.EncryptDecryptHelper.Encrypt(strText), Encoding.Default);
//strEncryptedUsernamePassword = HttpUtility.UrlEncode(CommonUtil.EncryptDecryptHelper.Encrypt(strText), Encoding.Unicode);
return strEncryptedUsernamePassword;
}