在哪里写连接字符串?在 app.config 还是 web.config 中?

9 浏览
0 Comments

在哪里写连接字符串?在 app.config 还是 web.config 中?

我正在开发MVC应用程序。\n我的应用程序中有两个项目。\n一个是包含控制器和视图的MVC应用程序,另一个是DataLayer项目。\n我对在哪里编写连接字符串感到困惑,因为在发布应用程序时它会使用web.config文件,并且我从DataLayer项目中获取数据,所以我应该在DataLayer项目的app.config/Web.config中添加连接字符串吗?\n另外,我想知道app.config和web.config的目的和区别是什么?

0
0 Comments

在ASP.NET Web项目/ Web服务中使用Web.Config。

在Windows Forms、Windows Services、控制台应用程序和WPF应用程序中使用App.Config。

在数据层项目的Web.Config中添加连接字符串。

好的,我将在数据层的WebConfig文件中添加连接字符串。但是发布应用程序怎么办?它会采用MVC项目而不是dataLayer项目的Web Config...

类库中没有Web.Config。

0
0 Comments

在.NET框架中,连接字符串(connection string)是用于指定应用程序与数据库之间建立连接所需的信息。在一个解决方案中,可能存在多个项目(如Web项目和数据层项目),每个项目都有自己的配置文件(app.config或web.config)。那么问题来了,连接字符串应该写在哪个配置文件中呢?

根据上述提供的信息,我们可以得出结论:连接字符串应该写在web.config文件中。这是因为,默认情况下,应用程序会在执行程序集的配置文件中查找连接字符串,而忽略引用程序集的配置文件。而引用程序集的配置文件(app.config)主要用于设计时。例如,如果在数据层项目中使用Entity Framework,它会将用于从数据库构建模型的连接信息存储在app.config文件中。

当我们开始编写Web项目并通过数据层访问数据时,通常会将连接信息从app.config文件复制到web.config文件中。这样,在运行Web项目时,数据层将使用web.config文件中的连接字符串。

如果不在设计时使用连接字符串(例如使用EF Code-First),甚至可以将其从app.config文件中移除,只保留在Web项目的web.config文件中。

连接字符串应该写在web.config文件中,以确保在运行Web项目时数据层能够正确地使用连接信息。

0
0 Comments

在创建项目时,每个项目都会带有一个配置文件。普通的类库项目有一个名为app.config的通用配置文件。Web项目则更具体一些,其配置文件为web.config,包含了一些与Web相关的参数。它们的作用都是相同的。

你面临的问题是,只有可执行项目的配置文件(web.config)会被默认部署。你有几个选择:

  1. 将连接字符串添加到web.config中,并将其传递给数据层。这种方法简单(也是最常见的),但将配置信息与数据层项目分离。
  2. 让数据层使用System.Configuration.ConfigurationManager读取web.config。这样可以避免将数据传递给数据层,但会创建一个强依赖关系(没有正确格式的web.config文件,数据层将无法工作)。
  3. 将app.config作为XML内容部署,并编写自定义代码,使数据层能够读取它。这样做需要更多工作,但可以将数据配置从web.config中分离出来。
  4. 稍微修改#2的方法,可以在web.config中创建一个名为"dataLayer"的自定义配置节。可以通过System.Configuration.ConfigurationManager来读取它。我更喜欢这种方法,因为它看起来是一个很好的平衡。你在"默认"的配置文件中有一个自定义的强类型配置节。

这个相关问题也提供了一些很好的信息。

我已经在MVC项目中添加了数据层的引用,如何将其传递给数据层?

你可以按照这里的方法从web.config中读取它。然后只需将它作为一个字符串传递给数据层的方法或构造函数即可。

0