2017-11-20 5 views
0
私は私のMVC 5アプリケーションの実行をトレースする必要が

では動作しませんので、私はこれを追加しました: は、本番サーバー

<system.diagnostics> 
    <trace autoflush="true" indentsize="4" /> 
    <sources> 
     <source name="mySource" switchValue="Information" switchType="System.Diagnostics.SourceSwitch"> 
     <listeners> 
      <add name="sdt" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "C:\inetpub\wwwroot\website\trace.log" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

とコードで

、私は次のように追加しました:

public static TraceSource _trace = new TraceSource("mySource"); 

_trace.TraceInformation("Tracing messages"); 

問題は本番サーバーでは何も起こらないということです。ログファイルは作成されません。

私の開発PCで、リリースビルドを使用しているのが不思議なことです。ウェブサイトはTRACE定数ONでコンパイルされました。

プロダクションサーバーにはIIS 8.5があり、私のPCにはIISEXPRESSが使用されています。それが唯一の違いです。

お願いします。

+1

ACLの問題である可能性があります。ログファイルの場所を 'c:\ temp \ trace.log'のように変更しようとしましたか?または、C:\ inetpub \ wwwroot \ websiteのセキュリティ設定を見て、それらをMVCアプリケーションが実行されているユーザーと比較しますか? – spodger

+0

あなたは正しいと思います... IIS_APPPOOLユーザーをフルコントロールのフォルダに追加してトレースを保存しました – jstuardo

+0

IISユーザーにWebアプリケーションのルートを完全に制御する必要はありません。 。さらに、ログファイルを一般公開されている場所に書き込んでいます。その代わりに、サブフォルダまたはアプリケーションのいずれかに書き込む必要があります。また、IISユーザーに制御権を与えます(または読み取り/書き込み/変更のみ)。また、Webルートの外部に書き出しを許可し、ログを書き込むこともできます。そこにファイル。 –

答えて

1

ACLの問題である可能性があります。

C:\ inetpub \ wwwroot \ websiteのセキュリティ設定を確認し、MVCアプリケーションが実行されているユーザーと比較してください。

関連する問題