2012-02-07 26 views
4

ローカルドライブ(C:\ Testingフォルダ)にファイルを作成するWindowsサービスを作成しました。Windowsサービスを使用してファイルを作成する

このサービスをインストールしました。私はIISでホストされているWebアプリケーションからこのサービスを開始しています。私は、サービスコードでこのパスをハードコードした場合

は、サービスが正常に動作しますが、私は、WebサービスへのWebアプリケーションを介してパスを渡すと、イベントが

サービスを開始することができませんexcepetionを示すログ。 System.UnauthorizedAccessException:パス 'C:\ Testing'へのアクセスが拒否されました。

私は自分のマシンで管理者アクセス権を持っており、私は同じアカウントでサービスを開始しています。どうすればこの例外を取り除くことができますか?

+0

'LOCAL SERVICE'ユーザアカウント(またはあなたのサービスが実行されているどのユーザアカウント)に対しても、Testingフォルダに書き込み権限を追加する必要があります。 – qJake

+0

また、通常は誰もが使用するように通常設定されているフォルダを使用します。 Temp –

+1

WebアプリケーションとWindowsサービスとの間でどのように通信しますか?パスにアクセスしているサービスであり、サービスのコードを使用しているWebアプリケーションではないと確信していますか? –

答えて

4

私は愚かな間違いをしていました。私はパスとファイル名を提供する必要があります。今はうまくいきます。応答ありがとう

12

SpikeXは、あなたのサービスは、フォルダCへの読み書きアクセスを持っている必要があり、言ったように:\テスト

は、フォルダを右クリックし、セキュリティ権限を変更します。ローカルシステムアカウントの「ローカルサービス」:

enter image description here

たり、サービスが特定のアカウント(例えば、独自のWindows管理者のアカウント)で実行されている場合、フォルダにそのアカウントの書き込み権限を与える

Services.mscとでサービスのセキュリティ]タブ:

enter image description here

0

あなたがCに書き込みをしようとしているアカウントを確認するためにProcess Monitorのようなものを使用して試みることができる:\テスト。あなたが期待しているアカウント以外のアカウントがファイルを作成しようとしている可能性があります。

-1

あなたのローカルシステム上のドライブをマップする場合、そのような場合は、Windowsサービスを介してアクセスしている共有フォルダのネットワークサービスに権利を与えると仮定します。

+0

は、あなたが意味することは本当にあまり明確ではありません。 – IgnazioC

関連する問題