0

ディレクトリを作成する Web アプリケーションがあります。Web サーバー上にディレクトリを作成する場合、アプリケーションは正常に動作しますが、リモート ファイル サーバー上にディレクトリを作成しようとすると、アプリケーションは動作しません。

ファイルサーバーとウェブサーバーは同じドメインにあります。ドメイン「DOMAIN\aspnet」にローカル ユーザーを作成しました。ローカル ユーザーは両方のサーバーにいます。

ドメイン ユーザーの下で .Net アプリケーション プールを実行しています。また、web.configでWindowsの偽装を使用して、ドメインユーザーで実行しようとしました。

ドメイン ユーザーがリモート ディレクトリを完全に制御できることを確認しました。これをデバッグするために、「全員」にリモート ディレクトリへのフル コントロールも与えました。

これをデバッグするために、ドメイン ユーザーを管理者グループに追加しました。

これをテストするために、Web サーバー上に単純な .net テスト ページがあります。テスト ページを通じて、ファイル サーバー上のディレクトリを読み取り、その中のすべてのリストを取得できます。

ファイルをアップロードしたり、ファイル サーバーにディレクトリを作成したりできません。

動作するコードは次のとおりです。

var path = @"\\fileserver\images\";
 var di = new DirectoryInfo(path);
            foreach (var d in di.GetDirectories())
            {
                Response.Write(d.Name);
            }

動作しないコードは次のとおりです。

 path = Path.Combine(path, "NewDirectory");
 Directory.CreateDirectory(path);

表示されるエラーは次のとおりです。パス '\fileserver\images\NewDirectory' へのアクセスが拒否されました。

私はこれにかなりこだわっています。何か案は?

4

2 に答える 2

0

サーバー/サイトの信頼レベルを確認してください。Full Trust 未満で実行している場合は、FileIOPermission設定を変更する必要がある場合があります。

<IPermission 
   class="FileIOPermission" 
   version="1" 
   Read="$AppDir$" 
   Write="$AppDir$" 
   Append="$AppDir$" 
   PathDiscovery="$AppDir$"/>

マクロ値は$AppDir$、Web サイトが存在するフォルダーに展開されます。パスをセミコロンで区切って追加することができます。

編集する必要があるファイルは、.NET 2.0 を実行していると仮定して<trust level=.../>、 のマスターweb.configファイルの設定によってポイントされます。C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG

于 2010-04-25T06:49:42.610 に答える
0

問題は最終的にパスの問題になりました。

\fileserver\images\ は h:\files\http\images にマップされました

このサービスには、H のドライブへのアクセス許可がありましたが、共有へのアクセス許可はありませんでした。

于 2010-04-25T12:27:13.160 に答える