- PR -

ASP.NETでファイル書込みしたいのですが

投稿者投稿内容
みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2006-06-01 19:40
いつも参考にさせていただいております。

Webサーバー:Windows2003Server
DBサーバー:Windows2003Server

現在ASP.NETにてWEBアプリを作成しております。
只今アプリをセットアップ中なのですが、今まではWebサーバとDBをサーバを兼ねて
一台で運用していたのを、それぞれ分けて2台で運用する構成になりました。
ログ出力はlog4netにてファイルを出力し、そのファイルをOracleで外部テーブルとして読込み、データセットでアクセスし表示などの処理をしていました。

が、今回WebサーバーとDBサーバが別になったため、今までWebサーバーで吐き出していたログファイルをDBサーバに吐き出さなくてはならなくなりました。(外部テーブルを作るため)
ここがうまくいきません。

とりあえずDBサーバーの指定フォルダを共有にして権限をevryoneフルアクセスにしてみました。(一応テストのため)
そしてWebサーバーのドライブにそのフォルダを割り付けて、Log4netの設定ファイルに
書いてみました。

<param name="File" value="Z:log/weblog.log" />


しかしログは出力されません。
Webサーバー上には出力されるのでパスの設定(書き方?)かネットワークの権限ではないかと思うのですが・・・。
2003サーバーだと、色々権限が厳しそうですよね。
知識が足りず、かなりお恥ずかしい質問ですが、どなかた何かお気づきの点ございませんでしょうか?
何卒宜しくお願いいたします。

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-02 10:28
ユーザの権限の問題じゃないでしょうか。
ASP.NETの実行ユーザはそのマシンに設定されているユーザになりますから、
書き込み権限がないんだと思います。
偽装等を行う必要があるんじゃないかな?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-06-02 11:44
引用:

ユーザの権限の問題じゃないでしょうか。



それ以前に、「Z ドライブ」なんてもんが ASPNET や NETWORK SERVICES に見えるとは思えないすね。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-02 11:51
そか、フォルダの割付ってユーザ毎でしたっけ?
みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2006-06-02 12:29
どっとねっとふぁんさん、渋木さん、ありがとうございます。

引用:

渋木宏明(ひどり)さんの書き込み (2006-06-02 11:44) より:
引用:

ユーザの権限の問題じゃないでしょうか。



それ以前に、「Z ドライブ」なんてもんが ASPNET や NETWORK SERVICES に見えるとは思えないすね。




そ、そうですか・・・。
パスの設定もおかしいし、ユーザー設定や権限もどれもよろしくないってことですね。
私、いいかげんすぎますねぇ。

ファイルを書くのはASPNET
書く場所はASPNETユーザーとは別のマシン
別のマシンにアクセスするにはASPNETに偽装が必要?
別のマシンにアクセスするには認証の問題もある?
ログ書き込み先のパスの設定方法は?

といった具合に問題山積みです・・・。
認証についてもう少し勉強してみます。

ところで、別のマシンにファイルを書き出すって通常みなさんが普通にやってらっしゃる事でしょうか?
oracle
常連さん
会議室デビュー日: 2003/12/04
投稿数: 29
お住まい・勤務地: さいたま
投稿日時: 2006-06-02 13:00
単純に言って発想がちがうような気がします。
そもそもブラウザベースで、クライアントにファイル書き込みはセキュリティ上
出来てはいけないのです。
悪意のあるサイトへ間違えて行ってしまってファイル書き込みされるってことは
ウィルスもかけるってことだと思います。
ただし、マイクロソフトはScriptinghostによって表示した画面から
記述できるようにしていますが、本当はよくないのではと思います。
(業務アプリでは必要になることもありますが)
javascriptもクライアントへのファイルの書き出し機能はありません、というか
Secutiry上の制約だったはずです。
よってもうひとつ間に処理をはさむことが必要だと思います。
oracle
常連さん
会議室デビュー日: 2003/12/04
投稿数: 29
お住まい・勤務地: さいたま
投稿日時: 2006-06-02 13:03
追記:
上記で言っているところのクライアントはみつんさんの環境でいうところのDBServerのことです。

みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2006-06-02 13:09
oracleさん、ありがとうございます。

引用:

oracleさんの書き込み (2006-06-02 13:00) より:
単純に言って発想がちがうような気がします。
そもそもブラウザベースで、クライアントにファイル書き込みはセキュリティ上
出来てはいけないのです。



クライアントに書くのではなく、サーバーにログファイルを書き出すだけです。
ただその書き出し先を、Webサーバーではなく、別のDBサーバーにしたいのです。
Webサーバー上にLog4netでログ出力することはすでに行っているので、その出力先を別のサーバーにしたいのです。
あれ?私が何か勘違いしてるのかな?
間違ってたらごめんなさい!!

スキルアップ/キャリアアップ(JOB@IT)