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

带有类库项目的ASP.NET解决方案,asp.net,web-config,Asp.net,Web Config,我在VS2008中有一个解决方案,它包含两个类库项目和一个ASP.NET网站。ASP.NET站点引用类库,其中一个库包含LINQ To SQL项 我的问题是关于类库中的app.config,它包含数据库的连接字符串。生成项目时,此app.config不在生成目录中,这意味着我无法动态更改已部署项目的连接字符串 我在这里做错了什么,如何部署这些设置,以便对连接字符串进行更改 提前感谢, Martin。您可以在最终产品中编辑Web.config文件。配置API通常从应用程序的主配置文件获取配置数据,

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

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

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

提前感谢,


Martin。

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

这一点起初也让我有点困惑

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

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


希望有意义。

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

如果您希望对开发和生产使用不同的设置,请使用web部署项目。下载。根据Microsoft的描述:

VisualStudio2008 Web部署 项目提供了额外的资源 构建和部署Web应用程序的功能 Visual Studio中的站点和Web应用程序 工作室2008。此加载项提供了一个 管理构建的综合UI 配置、合并和使用 使用 MSBuild


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

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