Windows-Workflow - Web-Service - App_Data Directory - Datenbank
-
05-07-2019 - |
Frage
Lösung
-- WorkflowProject
-- Workflow1
-- Workflow2
-- Webprojekt (WAP)
-- App_Data
-- MyDatabase.vdb3
-- MyWebService.asmx
-- Web.Config
Ok, also..das ist die grundlegende "Umriss" des Projekts.Die Datenbank ist gespeichert in die website, und ist einer VistaDB database (dies könnte auch eine MSAccess-oder SQLite-Datenbank).Auf der website konnte ich code für die Datenbank.Ich hätte vielleicht der |DataDirectory| - in my connection string.
Das WORKFLOW-Projekt ist getrennt von der Website.Die MyWebService.asmx ist ein "stub" für den Aufruf des Workflow-basierte web-service.
Wie kann ich die Datenbank öffnen, in der website App_Data - Verzeichnis ?Jetzt habe ich den Wert hart-codiert (D. H., @"E:\datadirectory\database.vdb3"), aber dies ist nicht die bevorzugte und nur funktionieren würde auf meiner Entwicklung Maschine.
Ich kann mich nicht einmal übergeben Sie den Speicherort der Datenbank, da der webservice (das .asmx-Datei) ist nur 1 Zeile, und stub-code für das erhalten der Aufrufer in den workflow.Ich bin wirklich ratlos, wie Sie Vorgehen.
Lösung ?Best practices ?Links ?
Lösung 2
Ich war nicht in der Lage zu bekommen VirtualPathUtility zu arbeiten.Hier ist die Lösung, dass ich am Ende zu finden, die funktioniert hat:
string s = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
Das wird der absolute Pfad zu dem App_Data-Verzeichnis.
Andere Tipps
Sie sollten einen Blick auf "VirtualPathUtility"
ersetzen Sie das Ergebnis:
VirtualPathUtility.ToAbsolute("~/App_Data/db.vdb3");
in Ihrem Verbindungs-string.