web-dev-qa-db-ja.com

IIS 7.5?

私はこれを投稿し、それに答えています。これにより、非常に長い間困惑していました。 web.configに次の行があります:

<aspNetCore processPath="dotnet" arguments=".\XXX.Server.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />

どうやら、これはlogs\stdoutにログを記録するはずですが、私が見ると、何もありません。私は野生のガチョウの追跡に行き、「ログ」(あまりにも多くを返した)または「stdout」(何も返さなかった)という名前のものをディスク全体で検索しましたが、それでもそれを理解できませんでした。

14

おそらく、マシンのイベントビューア->アプリケーションをチェックして、ログにエラーが記録されているかどうかを確認できます。これにより、ログファイルが生成されない理由を説明できます。

ただし、最も可能性の高い理由は、IISにそのログフォルダーへの書き込み権限がないことです。

  1. フォルダを右クリック->セキュリティ
  2. IIS_IUSRSユーザーに次の権限があることを確認します。読み取りと実行、リスト、write(デフォルトでは書き込みが欠落している可能性があります)
14
Vlatko Vlahek

ログフォルダーが存在することを確認する必要があります! IISはあなたのためにそれを作りません。この腹立たしい問題に対するそのような簡単な解決策。

11

Logsフォルダーを作成しましたが、まだ何も記録されていません。 home/logfilesの下にある既存のフォルダーを使用し、フォルダーを作成せずに機能させることができることがわかりました。 このソリューションは私のためにそのまま働いた:

1)公開アプリケーションのルートフォルダーに作成されたweb.configファイルを開きます。

2)stdoutlogEnabledをtrueに設定し、stdoutLogFileを\?\%home%\ LogFiles\stdoutのように設定します。

<aspNetCore processPath="dotnet" arguments=".\SellCarsHereV2.dll" stdoutLogEnabled="true" stdoutLogFile="\\?\%home%\LogFiles\stdout" />

次に、そのパスに移動してファイルをダウンロードするか、Azureポータル(Azureでホストされている場合)を使用します。 Azure Portalを使用している場合:

1)アプリサービスに移動します。

2)https:// {アプリサービス} .scm.azurewebsites.net /にアクセスする高度なツールに移動します

3)[デバッグコンソール]メニュー-> CMDをクリックします

4)LogFilesをクリックします

5)stdout _ *。logというファイルが表示され、鉛筆をクリックして表示できます。必要に応じてファイルをダウンロードすることもできます。

web.configファイルで提供されているstdoutLogFile=".\logs\stdout"に従って、logsディレクトリがWebの横に作成されます。 config、内部 公開ディレクトリ

logsサブディレクトリを作成するには、 ASP.NET Coreディレクトリ構造 で説明されているアプローチを使用できます。

これを公開プロジェクトの*.csprojファイルの最後に貼り付けてください

<Project>
...
  <Target Name="CreateLogsFolder" AfterTargets="Publish">
    <MakeDir Directories="$(PublishDir)logs" 
              Condition="!Exists('$(PublishDir)logs')" />
  </Target>
</Project>

この変更後の公開プロセス中に、出力ディレクトリにlogsディレクトリが存在しない場合は作成する必要があります。

たとえばdotnet publish --output <path_to_your_publish_folder>を実行すると、<path_to_your_publish_folder>内にlogsディレクトリが見つかります。

1
kasptom

ログを取得するために、次の手順を実行しました。

  1. フォルダログを作成し、上記のIIS_IUSRSへの書き込みアクセスを許可します
  2. web.configに絶対パスを設定:stdoutLogFile="C:\xxx\xxx\logs"
  3. アプリケーションプールをリサイクルする
  4. 停止、Webサイトを開始

編集

ステップ2は相対パスでも機能しますstdoutLogFile=".\logs\stdout"

1
G. Siganos