2

解决方案
-- WorkflowProject
  -- Workflow1
  -- Workflow2
-- WebProject (WAP)
  -- App_Data
    -- MyDatabase.vdb3
  -- MyWebService.asmx
  -- Web.Config

好的,所以..这是项目的基本“大纲”。该数据库存储在网站中,是一个 VistaDB 数据库(也可以是 MSAccess 或 SQLite 数据库)。在网站上,我可以针对数据库进行编码。我可能有 |DataDirectory| 在我的连接字符串中。

WORKFLOW 项目与网站是分开的。MyWebService.asmx 是一个“存根”,用于调用基于工作流的 Web 服务。

如何打开网站App_Data目录中的数据库?现在,我有硬编码的值(即@"E:\datadirectory\database.vdb3"),但这不是首选,只能在我的开发机器上工作。

我什至无法传递数据库的位置,因为 web 服务(.asmx 文件)只有 1 行,并且是用于让调用者进入工作流的存根代码。我真的不知道如何进行。

解决方案 ?最佳实践?链接?

4

2 回答 2

1

你应该看看“ VirtualPathUtility

替换结果:

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

进入您的连接字符串。

于 2008-10-30T00:46:53.880 回答
1

我无法让 VirtualPathUtility 工作。这是我最终发现有效的解决方案:

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

这将获得 App_Data 目录的绝对路径。

于 2008-11-12T16:50:06.343 回答