Windows Workflow - Serviço Web - Diretório App_Data - Base de dados
-
05-07-2019 - |
Pergunta
Solução
- WorkflowProject
- Workflow1
- Workflow2
- WebProject (WAP)
- App_Data
- MyDatabase.vdb3
- MyWebService.asmx
- Web.Config
Ok, então .. esse é o "esboço" básico do projeto. O banco de dados, é armazenado no site, e é uma base de dados VistaDB (isso também poderia ser um banco de dados MSAccess ou SQLite). No site, eu poderia código no banco de dados. Eu poderia ter | DataDirectory | na minha cadeia de conexão.
O projeto fluxo de trabalho é separado do site. O MyWebService.asmx é um "esboço" para chamar o serviço web baseado Workflow.
Como faço para abrir o banco de dados no site App_Data ??strong> diretório? Agora, eu tenho o valor codificado (isto é, @ "E: \ DataDirectory \ database.vdb3")., Mas isso não é o preferido e só iria trabalhar em minha máquina de desenvolvimento
Eu não posso nem passar na localização do banco de dados, uma vez que o webservice (o arquivo .asmx) é de apenas 1 linha, e é o código de stub para obter o chamador para o fluxo de trabalho. Estou realmente em uma perda de como proceder.
Solução? Melhores Práticas ? Links?
Solução 2
Eu não era capaz de conseguir VirtualPathUtility ao trabalho. Aqui está a solução que eu acabei descobrindo que trabalhou:
string s = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
Isso obtém o caminho absoluto para o diretório App_Data.
Outras dicas
Você deve dar uma olhada em " VirtualPathUtility "
substituir o resultado de:
VirtualPathUtility.ToAbsolute("~/App_Data/db.vdb3");
em sua cadeia de conexão.