- PR -

System.IO.StreamWriterのIO Exception

1
投稿者投稿内容
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2007-07-06 10:10
お世話になっております。

ASP.NETで、APサーバとは別のサーバにファイルを出力する処理を作成中です。
System.IO.StreamWriterを使用して、パラメータに
new System.IO.StreamWriter(出力ファイルへのフルパス, false, エンコーディング)
の指定をしています。

ここで、出力ファイルは別サーバのため、絶対パスを記述しているのですが、
上記newの処理で
「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」
と例外が発生します。
ファイルパスの記述は以下です。
\\(サーバ名)\e$\aaa\bbb\ccc\file.csv

bbbフォルダを共有にしています。
別サーバにファイルを出力するにはどのような記述にすればよいのでしょうか。
よろしくお願いいたします。
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2007-07-06 10:54
ASP.NETのワーカプロセスの実行ユーザに 別サーバへアクセスできる権限は設定されてますでしょうか?

IIS6.0既定の設定だとASP.NETのワーカプロセス実行ユーザはNetwork Serviceに設定されてますので、そのままでは別サーバに対してアクセスできないため例外が発生してるのではないでしょうか。

[ メッセージ編集済み 編集者: Katze 編集日時 2007-07-06 11:02 ]
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2007-07-06 11:03
ご回答ありがとうございます。

ユーザは、格納先サーバのOSのユーザアカウントとパスワードを
Web.configの
<identity impersonate="true" userName="username" password="password" />
に指定してアクセスするようにしています。
これでログインはできているようなのですが・・・

補足ですが、格納先のフォルダ内のファイルを削除することはできます。
ファイルの書き込みができません。
読み込みはずっと応答がない状態になります。(待ち状態)
フォルダの共有、アクセス権限はすべて通してあります。
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2007-07-06 14:21
フォルダに書き込めない問題は解決しました。
共有にしているフォルダへのパスを書くのが正しかったです。
(bbbが共有フォルダの場合)
× \\(サーバ名)\e$\aaa\bbb\ccc\file.csv
○ \\(サーバ名)\bbb\ccc\file.csv

ありがとうございました。
1

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