2009-02-27 16 views
4

私はWindowsのファイルパーミッションの専門家ではないと言って始めましょう。UNCファイルパスを使用しているときにAsp.net FileUploaderが動作しない

私はAsp.net FileUploaderコントロールを持っています。私はファイルをアップロードしたいAsp.netアプリケーションと同じマシンにフォルダを持っています。

私は

\\thisMachineName\UploadFolder\ 

にファイルを置くためにFileUploaderを伝えることができるようにしたいが、私は常にそのパスへのアクセスが拒否されたことを示す例外を取得します。

私は

c:\UploadFolder\ 

するディレクトリを変更した場合、それが正常に動作します。また、上記のUNCをWindowsエクスプローラに置くこともできますし、実際にはディレクトリにマップします。

アイデアや考えはありますか?

- 更新プログラム注:これはWindows 2000サーバーボックスであり、そのフォルダにはすべての可能な許可が与えられています。

答えて

3

私が常にやっていることの1つは、共有にアクセス許可を設定できないことです。共有フォルダを設定するには、あなたは何をする必要があり、次の

1)は、ファイルシステム上で、このアカウントへのアクセス権を付与し、あなたが共有
2)に接続するアカウントを決定し
3)このアカウントにネットワークファイル共有へのアクセス権を付与します

1はこの場合、通常は設定を確認するか、単にプロセスエクスプローラを使用してASP.NETが実行されているアカウントを判断することを意味します。これを行う方法についてのGoogleの情報をたくさん。

2番は明らかです。物理ドライブが存在するマシンにログオンし、エクスプローラのフォルダを参照し、右クリックしてセキュリティタブをクリックします。私たちはこれを何百回もやりました。

No. 3は、人々が混乱する場所です。はい、ワーカーアカウントはローカルファイルシステムに対する権限を持ちますが、ネットワーク経由でローカルファイルシステムには接続できません。 [セキュリティ]タブから[ネットワーク共有]タブに戻り、[アクセス権]ボタンを探します。これを使用して、ワーカーアカウントに共有への接続権を付与します。

2番目の問題は、マシンAのアクセス権をマシンBにしか存在しないアカウントに許可しようとしたときです。これは一般的には機能しません。マシンAとマシンBの両方が、AとBの両方がユーザーを認証するために信頼する共通ドメインに属していなければなりません。ほとんどの場合、Windowsを実行する企業はActiveDomainを使用してネットワーク上のアクセス権を制御します。

ASPを取得するにはマシンBのNETワーカープロセスがマシンAの共有にアクセスする場合、ワーカープロセスは、ローカルマシンだけでなく、ネットワーク上で認証されたアカウントで実行されている必要があります。ほとんどの場合、ネットワーク上に特定のアカウントを作成し、そのアカウントの権限を両方のコンピュータに与え、そのアカウントを使用してWebサイトのASP.NETワーカープロセスを実行する必要があります。

あなたの頭を傷つけているなら、何かすることを学んでいる。このことは簡単ではありません。私は強く、以下を読んでお勧め:

http://msdn.microsoft.com/en-us/library/ms978378.aspx

その比較的はっきりとあなたが知る必要があるすべてが含まれています。

+0

ありがとうWill! UNCを使用すると(たとえ私の場合はローカルコンピュータを参照していますが)、フォルダの通常のアクセス許可に加えて、このネットワーク共有のセキュリティを通過するということはわかりませんでした。 私はASPNETユーザーに共有への読み書きアクセスを許可しました。 – spilliton

1

あなたはそのディレクトリにファイルを置くことができますが、ASP.NETプロセスが実行されているユーザーはどうですか? Windows Server 2003(そしておそらく2008年ですが、わかりません)では、ASP.NETはNETWORK SERVICEアカウントで実行されます。ネットワークアカウントサービスは、特にネットワーク上ではほとんど何の権利もありません。 ASP.NETアプリケーションで偽装を使用するか、Everyoneアクセスで共有を設定する必要があります。このようなシナリオでは、通常、Everyoneのアクセスとファイアウォールで共有を設定するだけで、Webサーバーだけがアクセスできるようになります。

+0

返信いただきありがとうございます。私は、これが2kサーバボックスであることと、UploadFolderで持っている権限であることを忘れてしまったので、私は自分の投稿にアップデートノートを追加しました。 「ネットワークサービス」に完全なアクセス許可を与えようとしたところ、アクセス拒否エラーが発生します。 – spilliton

0

ウィルの答えに加えて。

私はNETWORK SERVICEアカウントではなく、NETWORKアカウントに許可を与えなければなりませんでした。

共有フォルダのセキュリティタブで、新しいユーザーとしてNETWORKを追加し、必要なアクセス許可を与えます。

関連する問題