2012-08-10 50 views
6

我定义我的configSource寻找在名为config子目录的配置文件,如下所示:为什么Web.config在项目文件夹而不是bin中查找configSource?

<connectionStrings configSource="config\ConnectionStrings.config" /> 

我定义为一个链接文件中的配置文件,所以当编译发生它被复制到我的bin \ config文件夹就好了。

然而,我的web应用程序的项目正在寻找在发展项目config文件夹,而不是部署斌\ config文件夹。我用Process Monitor证实了这一点。

所以我有几个问题:

  1. 为什么寻找替代斌有\ config目录 - 我错过了一个相对路径设置的地方?
  2. 链接的文件不会被复制到那里,而只能被复制到bin中。我的理解是,这是正确的行为。这是一个正确的假设,还是应该复制到两个位置?如果是这样,那么启用该设置的设置是什么?
  3. 对链接文件使用子文件夹是好的做法,还是应该将它们留在项目根目录中?

非常感谢!

更新:我使用这里介绍的方法:http://consultingblogs.emc.com/jamesdawson/archive/2008/06/03/using-linked-files-with-web-application-projects.aspx以确保配置文件被复制,做一个小实验我已经回答了问题#2。不,它不是Visual Studio中的默认行为,但此解决方法可确保将文件复制到两个位置。

回答

1

我相信这可能会对你有所帮助。 How to use multiple Web.config files

基本上你可以拥有尽可能多的配置文件,只要它们位于Web应用程序的独立文件夹中即可。我对你提到的“不同的web项目”的部分评论感到有点困惑,你能否在该部门更具体一些? 另外,我发现这个msdn更详细,我建议你检查一下。

快乐编码!

+0

嗯,我不认为我使用短语“不同的Web项目”,但我有多个目标项目(3个Web项目和一个控制台应用程序),它们使用链接文件ConnectionStrings.config。 问题不在于有多少个配置文件。我不喜欢的是,Web项目正在寻找我的开发路径与配置文件的部署路径。控制台应用程序没有这样做。 我的期望是,web.config将在编译后查找部署路径中的链接文件,就像我的控制台应用程序的app.config一样。对不起,缺乏清晰度! – Shane 2012-08-10 19:38:00

+0

嗨,再次,如果我正确理解你的问题,这里唯一的问题是web.config没有从预期的位置读取链接的文件。从我可以挖掘,似乎需要指定确切的文件位置,以便web.config读取它。这里是我的[链接](信息来源:http://stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file) – 2012-08-10 21:33:03

+0

嗨,如果我正确理解你的问题,唯一的问题是web.config没有从期望的位置读取链接的文件。从我可以挖掘出来的东西看来,确切的文件位置需要指定,以便网络。配置来读取它。这里是我的[信息来源] [1] [1]:http://stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file在我的项目中,我实际上使用这种方法,希望这可能会解决您的问题。 – 2012-08-10 21:41:42

相关问题