9

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

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

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

提前致谢,

马丁。

4

5 回答 5

18

起初这也让我有些困惑。

您可能认为类库使用了它自己的项目中包含的 app.config 文件,但事实并非如此。它使用引用它的项目的配置文件。

所以你需要做的是<appSettings/>在你的 ASP.Net 项目的 web.config 文件中查找标签,并将其更改为<appSettings></appSettings>并添加<add ... />库项目的 app.config 文件中包含的标签。您无需为 ConfigurationManager 类更改代码中的任何内容即可解决此问题。它知道在哪里自动查找。

希望这是有道理的。

于 2009-01-12T12:34:04.247 回答
1

Web.config您可以在最终产品中编辑该文件。配置 API 通常会从应用程序的主要配置文件中获取配置数据,对于 ASP.NET 应用Web.config程序来说是Myfile.exe.config. 重要的是要知道项目中的类库通常不会有它们单独的配置文件MyClassLib.dll.config(除非您手动引用特定文件)。

于 2009-01-12T12:21:27.063 回答
1

为了克服连接字符串的问题,这里是技巧

  1. 在您的类库中声明具有两个属性的模块,一个是setter,另一个是getter,并将它们公开。
    1. 在您的网站项目中,转到全局文件,并在会话启动和应用程序启动下调用您之前声明的 setter 属性,并为其分配位于您的 web.config 中的连接字符串,现在连接字符串将可用在网站的一般范围内,只要您的会话凭据未过期,该值就存在。
于 2010-06-03T09:16:45.970 回答
0

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

于 2009-01-12T12:38:51.473 回答
0

如果您想为开发和生产设置不同的设置,请使用 Web 部署项目。在这里下载。来自微软的描述:

Visual Studio 2008 Web 部署项目提供了在 Visual Studio 2008 中构建和部署网站和 Web 应用程序的附加功能。此加载项提供了一个全面的 UI 来管理构建配置、合并以及使用 MSBuild 的构建前和构建后任务.

于 2009-01-12T14:26:57.810 回答