0

我们最近从 SVN 中删除了我们的 Web.config。无意中没有将 Web.config 复制到我们的构建服务器(Team City)。我们代码的编译版本工作正常,并通过了全套测试。请注意,我们在 IIS 指向的应用程序文件夹中确实有一个正确的 Web.config。但是,在构建代码的位置中不存在任何内容。这让我问:Visual Studio 在编译时从 Web.config 中使用了什么?

我猜 Visual Studio 会在编译时创建一个简单的 Web.config,如果不存在的话。我了解 IIS 在运行时获取连接字符串和自定义键等。但是,编译 debug="true/false"怎么样。这些设置会影响 dll 的内容吗?如果使用 debug="true" 进行编译,那么无论 web.config 之后如何更改,该 dll 是否总是低效地锁定在运行代码中?如果在编译后设置 debug=false IIS 是否切换到非调试?

我们有一个使用 VS 2008、.NET 3.5 和 IIS 6.0 的 Web 应用程序项目

4

3 回答 3

0

一个是在机器级别定义的,在我的机器上 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config 是一个 web.config。所以,曾经有过的,就是你得到的。在不同的框架版本中,您从 MS 中获得的默认值略有不同

于 2013-05-01T22:01:53.173 回答
0

一旦 IIS 将传入请求编组到 ASP.NET ISAPI,Web.Config 就会在运行时发挥作用。使用 ASP.NET 有 2 个编译阶段:

  1. 构建时程序集编译(编译静态类型程序集)
  2. ASP.NET 预编译(通过解释 aspx/ascx 视图等,在第一次请求时动态编译程序集以供 ASP.NET 运行时使用)

Web.config 会影响 ASP.NET 预编译输出 - 如果您声明编译 debug="true",则临时程序集将使用调试符号等进行编译,通常会导致运行时间变慢。

网上有很多资料:

http://msdn.microsoft.com/en-us/library/ms366723(v=vs.100).aspx

于 2013-05-02T03:02:51.313 回答
0

Visual Studio 在编译时不从 web.config 获取任何设置。

于 2013-05-02T03:11:31.273 回答