Решение
- Рабочий процессProject
- Рабочий процесс1
- Рабочий процесс2
- Веб-проект (WAP)
- App_Data
- MyDatabase.vdb3
- MyWebService.asmx
- Web.Config
Хорошо, итак .. это основная "схема" проекта. База данных хранится на веб-сайте и является базой данных VistaDB (это также может быть база данных MSAccess или SQLite). На веб-сайте я мог кодировать в соответствии с базой данных. Я мог бы иметь | DataDirectory | в моей строке подключения.
Проект WORKFLOW отделен от веб-сайта. MyWebService.asmx - это «заглушка» для вызова веб-службы на основе рабочего процесса.
Как открыть базу данных в каталоге Данные приложения веб-сайта? Прямо сейчас у меня жестко запрограммировано значение (например, @ "E: \ datadirectory \ database.vdb3"), но это нежелательно и будет работать только на моей машине разработки.
Я даже не могу передать местоположение базы данных, поскольку веб-сервис (файл .asmx) - это всего одна строка и код-заглушка для включения вызывающего абонента в рабочий процесс. Я действительно не понимаю, как действовать дальше.
Решение ? Лучшие практики ? Ссылки?





Вам стоит взглянуть на "VirtualPathUtility"
подставить результат:
VirtualPathUtility.ToAbsolute("~/App_Data/db.vdb3");
в строку подключения.
Мне не удалось заставить VirtualPathUtility работать. Вот решение, которое я нашел, что сработало:
string s = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
Это дает абсолютный путь к каталогу App_Data.
Мне было бы любопытно увидеть код, который вы использовали с VirtualPathUtility, и какую ошибку вы получили, просто для моего собственного назидания.