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

Visual Studio は、コンパイル時に web.config から設定を取得しません。

于 2013-05-02T03:11:31.273 に答える
0

1 つはマシン レベルで定義されており、私のマシンでは 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 に答える