带有类库项目的ASP.NET解决方案

时间:2009-01-12 12:19:49

标签: asp.net web-config

我在VS 2008中有一个解决方案,它包含两个类库项目和一个ASP.NET网站。 ASP.NET站点引用类库,其中一个库包含LINQ To SQL项。

我的问题是关于类库中的app.config,它包含数据库的连接字符串。当我构建项目时,此app.config不在构建目录中,这意味着我无法动态更改已部署项目的连接字符串。

我在这里做错了什么,如何部署这些设置,以便我可以更改连接字符串?

提前致谢,

马丁。

5 个答案:

答案 0 :(得分:18)

这也引起了我一点困惑。

您可能认为类库使用的是包含在其自己的项目中的app.config文件,但它没有。它使用引用它的项目的配置文件。

因此,您需要做的是在ASP.Net项目的web.config文件中查找<appSettings/>标记,并将其更改为<appSettings></appSettings>并添加<add ... />标记包含在库项目的app.config文件中。您不需要在代码中更改ConfigurationManager类的任何内容来解决这个问题。它知道自动查找的位置。

希望这是有道理的。

答案 1 :(得分:1)

您可以编辑最终产品中的Web.config文件。配置API通常会从应用程序的主配置文件中获取配置数据,如果ASP.NET应用程序为Web.config,则客户端应用程序为Myfile.exe.config。重要的是要知道项目中的类库通常不会有像MyClassLib.dll.config这样的单独配置文件(除非您手动引用特定文件)。

答案 2 :(得分:1)

要克服连接字符串的问题,这是技巧

  1. 内部ur类库声明模块,它有两个属性,一个是setter,另一个是getter,并将它们公开。
    1. 在你的ur网站项目中,转到全局文件,在session start和application start下调用你之前声明的setter属性,并为它分配ur web.config中的连接字符串,现在是连接字符串将在网站的一般范围内提供,只要您的会话凭证未过期,该值就会存在。

答案 3 :(得分:0)

将库的app.config文件中的connectionString部分复制到web.config文件中。根据需要将实际连接字符串从开发更改为生产服务器。 LINQ2SQL用于获取连接字符串的ConfigurationManager类将在web.config文件中查找适当命名的连接字符串,如果存在则使用它。

答案 4 :(得分:0)

如果要为开发与生产设置不同的设置,请使用Web部署项目。下载here。来自微软的描述:

  

Visual Studio 2008 Web部署   项目提供额外的   构建和部署Web的功能   Visual中的站点和Web应用程序   Studio 2008.这个加载项提供了一个   全面的UI来管理构建   配置,合并和使用   预构建和后构建任务   的MSBuild。