Flujo de trabajo de Windows - Servicio web - Directorio de datos de aplicación - Base de datos

StackOverflow https://stackoverflow.com/questions/248923

Pregunta

Solución
- 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, entonces ... ese es el esquema " básico " del proyecto. La base de datos, se almacena en el sitio web, y es una base de datos VistaDB (esto también podría ser un MSAccess o SQLite Database). En el sitio web, podría codificar contra la base de datos. Yo podría tener | DataDirectory | en mi cadena de conexión.

El proyecto WORKFLOW es independiente del sitio web. El MyWebService.asmx es un " stub " para llamar al servicio web basado en Workflow.

How ¿abro la base de datos en el directorio del sitio web App_Data ? En este momento, tengo el valor codificado (es decir, @ " E: \ datadirectory \ database.vdb3 "), pero este no es el preferido y solo funcionaría en mi máquina de desarrollo.

Ni siquiera puedo pasar la ubicación de la base de datos, ya que el servicio web (el archivo .asmx) es solo de 1 línea y es un código auxiliar para que la persona que llama ingrese al flujo de trabajo. Estoy realmente en una pérdida en cuanto a cómo proceder.

¿Solución? Mejores prácticas ? Enlaces?

¿Fue útil?

Solución 2

No pude hacer que VirtualPathUtility funcione. Aquí está la solución que encontré que funcionó:

string s = AppDomain.CurrentDomain.GetData("DataDirectory") as string;

Eso obtiene la ruta absoluta al directorio App_Data.

Otros consejos

Debería echar un vistazo a " VirtualPathUtility "

sustituye el resultado de:

VirtualPathUtility.ToAbsolute("~/App_Data/db.vdb3");

en tu cadena de conexión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top