サーバーASP.net上のファイルを保存する方法
-
12-09-2019 - |
質問
[OK]をので、私はASP.netやC#上で実行されているウェブサイトのエラー・ログ・ファイルを持ってしようとしています。
私は定期的にパスを駆動するために保管しようとしました。 それは、サーバーをピックアップし、そこに格納するC#コード(ページの背後にあるコード)であるので、それを期待。 (最終的にそれがサーバー上で実行されますコード)
生憎私にとっては真実ではないthatsの。これは、クライアントがサイトを開き、そこからローカルマシンに保存されます。
どのようにサーバマシン上で保存することを強制することができますか?
私は1つの場所にエラーログのすべてをしたいです。 読み取りまたはこれを行う方法上の任意の提案ます。
string path = "C:\\WebSite";
string error = "error";
try
{
// check if dir exists if it does i add file name to the path
// i removed code to keep it simple
path += "\\logs.txt";
FileStream log_fs =
new FileStream(path, FileMode.Append, FileAccess.Write);
StreamWriter log_sw =
new StreamWriter(log_fs);
string log = String.Empty;
// formate log string using error message
log_sw.Write(log);
log_sw.Close();
log_fs.Close();
}
catch (Exception ex)
{
// here I e-mail the error in case logging failed
}
このコードではなく、サーバーの
、ローカルマシン上のファイルを生成します。解決
あなたはこのようなコードを使用して、Webサーバー上の任意の場所(ASPNETユーザーアカウントがへの書き込み権限を持っていること)にログインすることができます:
string log = String.Empty;
// format log string using error message
try
{
using (StreamWriter logFile = new StreamWriter(@"C:\WebSite\logs.txt", true))
{
logFile.WriteLine(log);
}
}
catch
{
// here I e-mail the error in case logging failed
}
このウェブサイトをホストしているWebサーバーにファイルを書き込みます。さて、あなたは、開発中にローカルにウェブサイトを実行している、あなたがウェブサイトをテストするときにどちらかのビルトインのVSのWebサーバまたはIIS、そしてもちろん、ファイルがローカルマシン上に作成されます。
使用している場合他のヒント
、あなたの質問の提案部分に答えるために、あなたはそれが、 ELMAH を使用して検討しています別のストレージにエラーを記録します。
のMicrosoft SQL Serverの オラクル(OracleErrorLog) SQLiteの(バージョン3)データベースファイル Microsoft Accessの(AccessErrorLog) VistaDB(VistaDBErrorLog) ルースXMLファイル RAM(メモリ)
または電子メールを介して送信、Twitterの
ELMAHはセットアップが非常に簡単かつ非常に効果的です。