いくつかの画像のスライドショーを実行するWebアプリケーションを開発しました。このアプリケーションのjqueryajaxWebメソッド呼び出しがあります。
画像は完全にローリングしています...しかし、しばらくすると停止します...ログから、セッション変数(ここではSession ["Username"])がnullになっていることがわかりました。私のコードは
[WebMethod]
[ScriptMethod]
public static string GetNextImage()
{
try
{
if (HttpContext.Current.Session["Username"] != null)
{
string username = HttpContext.Current.Session["Username"].ToString();
RollingScreenBAL bal = new RollingScreenBAL();
DetailsForSlideShow[] details = bal.GetDetailsForSlideShow(username);
int count = details.Length;
int i;
for (i = 0; i < count; i++)
{
if (HttpContext.Current.Session["Count"] == null)
{
HttpContext.Current.Session["GraphUrl"] = details[0].GraphUrl;
HttpContext.Current.Session["Count"] = i + 1;
break;
}
else
{
if (Convert.ToInt32(HttpContext.Current.Session["Count"]) == i)
{
HttpContext.Current.Session["GraphUrl"] = details[i].GraphUrl;
if (i == (count - 1))
{
HttpContext.Current.Session["Count"] = null;
}
else
{
HttpContext.Current.Session["Count"] = i + 1;
}
break;
}
}
}
}
return HttpContext.Current.Session["GraphUrl"].ToString();
}
catch (Exception ex)
{
ConfigurationManager configMgr = new ConfigurationManager();
string traceFilePath = configMgr.GetTraceFilePath();
StreamWriter traceFile = new StreamWriter(traceFilePath, true);
traceFile.WriteLine(ex.Message + "\n" + ex.StackTrace + "Current User is " + **HttpContext.Current.Session["Username"])**;
traceFile.Close();
return ex.Message;
}
}
HttpContext.Current.Session ["Username"])セッション値がnullになります..なぜnullになるのか誰か助けてくれませんか?前もって感謝します...