2017-02-15 3 views
0

Ich habe ein Sitzungsproblem, wo mein Handler die Sitzungswerte nicht liest. Dies geschieht NUR auf unserem Server. Wenn ich lokal arbeite, funktioniert es gut. Ich rufe auch IRequiresSessionState auf, also sollte das auch kein Problem sein.Sitzungsstatus funktioniert nicht in Aschx-Datei auf Server

Ich kann sehen, dass der Sitzungszustand noch funktioniert, bis ich meine Aschx-Datei anrufe. Innerhalb dieser Datei ist jedoch die Sitzung gemäß meiner Spur verloren.

Hier ist mein Javascript-Code verwende ich meine Handler aufzurufen:

$(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' 
     }); 

unter meinem Handler CS- ist Dateicode

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); 
      } 

Jedes Mal, es in anderen Teil geht und neue Ordner per Code. Bitte Rat

+0

die current sein könnte, werden nicht eingerichtet in Server –

+0

Hii Dank für Antwort gewesen, aber ist zu –

Antwort

0

bekam ich die alternative Möglichkeit Sitzung in ASJX Datei Umgang mit ich habe Pass Sitzung in ‚scriptData‘: { ‚Session‘: current}, in Tag-Funktion Uploadify und diese Daten in der Bezeichnung der Form erhält

JavascriptCode

var currentDirectory = ""; 
    $(document).ready(function() {      
     $("#<%=btnAdd.ClientID%>").uploadify({      
      'uploader': '../Scripts/Uploadify/uploadify.swf', 
      'script': '../Handlers/file1.ashx?mode=schedule', 
      'scriptData': { 'SessionData': currentDirectory }, 
      '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; 
       currentDirectory = response; 
       $("#<%=btnAdd.ClientID%>").uploadifySettings('scriptData', { 'SessionData': currentDirectory }); 
      }, 
      'onAllComplete': function (event, queueID, fileObj, response, data) { 
       $get('<%= hdnDirty.ClientID %>').value = '0'; 
       //     document.getElementById('<%= btnConfirm.ClientID %>').click(); 
       document.getElementById('<%= btnUploadFiles.ClientID %>').click();  
       currentDirectory = ""; 
      } 

      , 
      'multi': true, 
      'expressInstall': '../Scripts/Uploadify/expressInstall.swf' 
     }); 

wir Sitzungsdaten in onComplete Ereignis mit der Nutzung der unter der Linie

$("#<%=btnAdd.ClientID%>").uploadifySettings('scriptData', { 'SessionData': currentDirectory }); 
gesetzt haben

und Abrufen von Daten in C# wie unter

string sessionValue = Convert.ToString(context.Request.Form["SessionData"]) 
Verwandte Themen