| DataDirectory目录|返回AppData文件夹的错误路径

时间:2013-09-09 21:00:26

标签: .net asp.net-mvc .net-4.0 connection-string

| DataDirectory |,你有一份工作。 IIS7.5上的|DataDirectory|解析为:

C:\inetpub\wwwroot\appname\App_Data

该文件夹不存在。正确的文件夹是:

C:\inetpub\wwwroot\appname\bin\App_Data

开发机器上的一切都很好,但是当我部署到服务器时,AppData被放置在bin\内。我使用任何Visual Studio 2010项目中显示的AppData,并使用“ Build Deployment Package ”(VS2010)和“导入应用程序”(IIS管理器)进行部署。

我知道我可以使用AppDomain.SetData或类似手动设置路径,但我对该功能的解释是返回在不同服务器上部署的正确位置。如果我必须对该路径进行硬编码,那就没有用了。

连接字符串:"Data Source=|DataDirectory|\db.sqlite;"

如何让|DataDirectory|返回AppData路径,或者阻止创建不必要的bin\文件夹?

2 个答案:

答案 0 :(得分:4)

它也为我打破了。我尝试了“复制/不复制”和更改“ExcludeApp_Data”参数的各种组合,但无法在Visual Studio和已发布版本之间保持一致。为了避免在服务器上有两个数据副本,我最终更改了应用程序以首先检查App_Data文件夹,如果没有找到则查看bin / App_Data文件夹。

答案 1 :(得分:0)

在Visual Studio中,确保为 App_Data文件夹中的每个文件设置了正确的属性:

enter image description here

如果有任何个文件的构建操作=内容,这将在构建过程中创建一个appname\App_Data文件夹,其中包含文件的副本。

复制到输出目录=不复制,防止将文件副本放置在appname\bin\App_Data中。如果所有文件均设置为“不复制”,则在构建过程中将不会创建该文件夹。