当前位置:  开发笔记 > 编程语言 > 正文

WebConfig.ConnectionString中的相对路径引用

如何解决《WebConfig.ConnectionString中的相对路径引用》经验,为你挑选了2个好方法。

是否可以在web.config中的connectionstring,attachDbFileName属性中指定相对路径引用?

例如,在我的数据库位于App_data文件夹中,我可以轻松地将AttachDBFilename指定为| DataDirectory |\mydb.mdf和| Datadirectory | 将自动解析为正确的路径.

现在,假设web.config文件位于A文件夹中,但数据库位于B\App_data文件夹中,其中A和B文件夹位于同一文件夹中.无论如何使用相对路径引用来解析正确的路径?



1> jbandi..:

我在以下场景中遇到了同样的问题:我希望使用与集成测试中的应用程序相同的数据库.

我采用了以下解决方法:

在我的测试项目的App.config中,我有:


  

在测试设置中,我执行以下代码:

   var dataDirectory = ConfigurationManager.AppSettings["DataDirectory"];  
   var absoluteDataDirectory = Path.GetFullPath(dataDirectory);  
   AppDomain.CurrentDomain.SetData("DataDirectory", absoluteDataDirectory);  



2> Jared..:

这取决于你的'| DataDirectory |'的位置 位于.如果'| DataDirectory |'的解析值 在文件夹A(web.config所在的位置)中,然后是 - 您不能指定不是"| DataDirectory |"的已解析值的子文件夹的相对路径.

可以做的是设置'| DataDirectory |'的值 通过调用AppDomain.SetData方法,无论您想要什么.

从MSDN在线文档:

使用DataDirectory时,结果文件路径在目录结构中不能高于替换字符串指向的目录.例如,如果完全展开的DataDirectory是C:\ AppDirectory\app_data,则上面显示的示例连接字符串可以工作,因为它位于c:\ AppDirectory下面.但是,尝试将DataDirectory指定为| DataDirectory | ..\data将导致错误,因为\ data不是\ AppDirectory的子目录.

希望这可以帮助.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有