2

アプリを開発しています。Common.Logging (http://netcommon.sourceforge.net/index.html) を使用します。簡単なログ構成 (web.config で実行) は次のとおりです。

<configuration>
   ...
   <arg key="configType" value="FILE" />
   <arg key="configFile" value="NLog.config" />
   ...
</configuration> 

ここでわかるように、構成はバックエンド ロギング フレームワークの別の構成ファイル (ここでは NLog.config) を指しています。

私の質問は、Azure にデプロイする場合、ここでどのパスを指定する必要があるかということです (dev では、ソリューションのビルド時に NLog.config がコピーされ、bin ディレクトリに配置されます)。つまり、アプリが Azure にデプロイされている物理的な場所を取得する最も安全な方法は何でしょうか?

前もって感謝します!

4

1 に答える 1

2

コードでは、 を使用してアプリケーションへの現在のパスを見つけることができますServer.MapPath("/")これで、 NLog.configファイルがアプリケーション フォルダーにデプロイされることを確認できます。

  1. NLog.config をプロジェクトに (Web アプリケーションのルートに) 追加します。
  2. ビルド アクションをコンテンツに変更する

これをテストするには、Azure プロジェクトを右クリックして [パッケージ] を選択します。Azure プロジェクトのbin\Release|Debug\app.publishフォルダーに*.cspkgファイルがあります。このファイルに .zip 拡張子を追加し、WinRAR/ZIP/7zip/... でファイルを開くと、次のようなファイルが表示されます: SomeWebRole_1a91f39a-49b7-4ece-873f-862172a2fa06.cssx。ここでも、このファイルに .zip 拡張子を追加して開きます。

sitesroot\0フォルダーに移動すると、NLog.config ファイルを含む IIS の Web アプリケーションのファイルが表示されます。このようにして、Common.Logging 設定で NLog.config ファイルを簡単に参照できます。

ここに画像の説明を入力

于 2012-09-03T08:38:41.170 に答える