Frage

Ich habe eine Anwendung mit 2 Verzeichnissen (Bücher und export).Wenn wir erstellen ein Buch oder eine Seite eines Buches in der Anwendung ein Verzeichnis Hinzugefügt wird mit der id der Seite (dies ist für das hochladen von Ressourcen).Wenn wir eine Seite löschen, die Seite (und das Verzeichnis) aus der Datenbank entfernt werden und das Dateisystem.

Allerdings führte dies zu einem Verlust Sitzung (sogar ein Neustart der Anwendung).Habe ich blickte auf etwas, was auf google gefunden und die folgenden link.Es scheint ein problem zu sein in ASP.NET 2.0 (und 3.5).Hat jemand eine Lösung für dieses problem.

Wir denken jetzt über das schreiben ein Dienst, sauber bis die Verzeichnisse in der Nacht.Aber es hat doch eine andere Lösung für dieses Nein?Oh, und setzen Sie das Verzeichnis außerhalb des virtuellen Verzeichnisses ist nicht eine option.

War es hilfreich?

Lösung

Oh, und setzen Sie das Verzeichnis außerhalb das virtuelle Verzeichnis ist nicht ein option.

Putting das Verzeichnis außerhalb des virtuellen Verzeichnisses ist die einzige Lösung, die ich gefunden (bisher).Was Sie tun können, ist, eine Verknüpfung zu erstellen (Kreuzung) in der Datei-system, so dass das Verzeichnis angezeigt, in dem virtuellen Verzeichnis,, e.g:

  • Unsere Website (virtuelles Verzeichnis) befindet sich bei C:\projectX\website
  • das Daten-Verzeichnis (wo wir anlegen/löschen von Dateien und Ordnern) befindet sich bei C:\projectX\data
  • dann erstellen wir eine Verknüpfung, die macht die Daten-Ordner verfügbar C:\projectX\website\data

Der link ist erstellt mit dem Programm Linkd.exe (verfügbar in windows resource kit), mit dem folgenden Befehl:

linkd c:\projectX\website\data c:\projectX\data

Jetzt c:\projectX\website\data ist ein link/Kreuzung, die Punkte, um die real-Daten-Verzeichnis.Sie können die Arbeit mit der link-als wäre es ein physisches Verzeichnis.

E. g.in Ihrer Website, die Sie zugreifen können, verwenden Sie diesen code:

Server.MapPath("~/data")

Und Sie können auch mit der windows-Datei-explorer, und navigieren Sie zu C:\projectX\website\data.Es erscheint nur wie ein echtes Verzeichnis.

Andere Tipps

Versuchen Sie, die Überwachung von File System deaktivieren. Dies verhindert, dass die Sitzung am Leben. Diese Artikel kann für Sie nützlich sein.

Es scheint ein Hotfix zu sein, die die gleichen wie der Artikel erreicht Sachin erwähnt (drehen Sie die Datei Änderungsbenachrichtigungen in einer Web-Site aus).

Überprüfen Sie dieser Artikel in der Microsoft-KB für weitere Informationen.

Aber da Sie in einem Kommentar erwähnt, dass Sie keinen Zugriff auf den Server, ich denke, das wird nicht auch in Ihrem Fall helfen.

Für Datendateien zu speichern, die häufig aktualisiert werden, erstellt und gelöscht Sie App_Data Ordner in der Wurzel der Website verwenden müssen. MSDN für App_Data Ordner lautet:

  

Enthält Anwendungsdatendateien   einschließlich MDF-Dateien, XML-Dateien, wie   auch andere Datenspeicher-Dateien. Das   App_Data Ordner wird von ASP.NET 2.0 verwendet   eine Anwendung zu speichern lokalen   Datenbank, die für verwendet werden kann,   Aufrechterhaltung Mitgliedschaft und Rolle   Informationen.

Überprüfen Sie auch Q & A Abschnitt für Ordner App_Data Nutzung: Ordner App_Data Frage

Ich hatte das gleiche Problem. Die Lösung ist, die Session-Handling unter Verwendung des ASP.Net Staatsdienst externalisieren. Der einzige Nachteil ist, dass jedes Objekt, das Sie Platz in der Sitzung serializable sein muss, wie es auf den Staatsdienst übertragen wird und zurück.

Im Moment habe ich nicht die Möglichkeit, weitere Verbindungen zur Verfügung zu stellen, aber Google wird Ihnen helfen, jetzt, dass Sie wissen, was zu suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top