Flusso di lavoro di Windows - Servizio Web - Directory App_Data - Database
-
05-07-2019 - |
Domanda
Soluzione
- WorkflowProject
& nbsp; & nbsp; - Workflow1
& nbsp; & nbsp; - Workflow2
- WebProject (WAP)
& nbsp; & nbsp; - App_Data
& nbsp; & nbsp; & nbsp; & nbsp; - MyDatabase.vdb3
& nbsp; & nbsp; - MyWebService.asmx
& nbsp; & nbsp; - Web.Config
Ok, quindi .. questo è il "contorno" di base " del progetto. Il database, è archiviato nel sito Web ed è un database VistaDB (potrebbe anche essere un database MSAccess o SQLite). Nel sito Web, ho potuto codificare contro il database. Potrei avere | DataDirectory | nella mia stringa di connessione.
Il progetto WORKFLOW è separato dal sito Web. MyWebService.asmx è un "stub" per aver chiamato il servizio Web basato sul flusso di lavoro.
Come posso aprire il database nella directory del sito App_Data ? In questo momento, ho il valore hardcoded (ovvero @ " E: \ datadirectory \ database.vdb3 "), ma questo non è preferito e funzionerebbe solo sulla mia macchina di sviluppo.
Non riesco nemmeno a passare la posizione del database, poiché il servizio web (il file .asmx) è solo 1 riga ed è un codice stub per far entrare il chiamante nel flusso di lavoro. Sono davvero a corto di come procedere.
Soluzione? Migliori pratiche ? Link?
Soluzione 2
Non sono riuscito a far funzionare VirtualPathUtility. Ecco la soluzione che ho scoperto che ha funzionato:
string s = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
Questo ottiene il percorso assoluto della directory App_Data.
Altri suggerimenti
Dovresti dare un'occhiata a " VirtualPathUtility "
sostituisce il risultato di:
VirtualPathUtility.ToAbsolute("~/App_Data/db.vdb3");
nella stringa di connessione.