У меня проблема с сеансом, где мой обработчик не читает значения сеанса. Это ТОЛЬКО происходит на нашем сервере. Когда я запускаю локальный, он работает нормально. Я также звоню в IRequiresSessionState, так что это тоже не должно быть проблемой.Состояние сеанса, не работающее в файле ashx на сервере
Я могу видеть, что состояние сеанса все еще работает до тех пор, пока я не вызову свой файл ashx. Однако в этом файле сеанс потерян, согласно моему следу.
Вот мой Javascript код я использую, чтобы позвонить мой обработчик:
$(document).ready(function() {
$("#<%=btnAdd.ClientID%>").uploadify({
'uploader': '../Scripts/Uploadify/uploadify.swf',
'script': '../Handlers/file1.ashx?mode=schedule',
'cancelImg': '../Images/cancel.png',
'wmode': 'transparent',
'hideButton': true,
'fileExt': '*.XML;*.xml;*.CIF;*.cif;*.zip;*.ZIP',
'fileDesc': 'Schedule Files',
'onComplete': function (event, queueID, fileObj, response, data) {
$('#pnlOverlayFrame').show();
document.getElementById("<%=hdnFilePath.ClientID%>").value = response;
},
'onAllComplete': function (event, queueID, fileObj, response, data) {
$get('<%= hdnDirty.ClientID %>').value = '0';
// document.getElementById('<%= btnConfirm.ClientID %>').click();
document.getElementById('<%= btnUploadFiles.ClientID %>').click();
}
,
'multi': true,
'expressInstall': '../Scripts/Uploadify/expressInstall.swf'
});
Ниже моего обработчика .cs файл кода
try
{
HttpPostedFile postedFile = context.Request.Files["Filedata"];
if (context.Session != null && context.Session["CurrentDirectory"] != null)
{
StorageRoot = context.Server.MapPath(context.Session["CurrentDirectory"].ToString());
}
else
{
//string DirectoryName = "OP1" + "_" + DateTime.Now.ToString().Replace('/', '_').Replace(':', '_').Replace(' ', '_') + Guid.NewGuid().ToString();
string DirectoryName = "OP1" + "_" + String.Format("{0:yyyyMdHHmmss}", DateTime.Now) + Guid.NewGuid().ToString();
//DirectoryName = DirectoryName.Remove(DirectoryName.Length - 3, 3);
HttpContext.Current.Session.Add("CurrentDirectory", DirectoryName);
//context.Session["CurrentDirectory"] = DirectoryName;
StorageRoot = context.Server.MapPath(DirectoryName);
}
string filename = postedFile.FileName;
if (!Directory.Exists(StorageRoot))
Directory.CreateDirectory(StorageRoot);
postedFile.SaveAs(StorageRoot + @"\" + filename);
context.Response.Write(StorageRoot);
context.Response.StatusCode = 200;
}
catch (Exception ex)
{
context.Response.Write("Error: " + ex.Message);
}
Каждый раз, когда он идет в еще части и создать новую папку, как в код. Пожалуйста, советы
может быть CurrentDirectory не был настроен на сервере –
HII спасибо за ответ, но CurrentDirectory это имя сеанса –