2011-10-17 36 views
0

このコードをコンソールアプリケーションプロジェクトで実行するとうまく動作しますが、webpartで実行すると、パスは拒否されました "。私は、私のsharepointサイトから匿名ユーザーのディレクトリ情報にアクセスしたい。私はフルアクセス(リード/ライト) "みんな"、 "ANONYMOUS LOGON" の "wwwrootに" フォルダは、everoneためDirectory.GetFiles(...)を使用しているときに「パスへのアクセスが拒否されました」というメッセージが表示される

string VideosPath = @"\\10.2.10.2\inetpub\wwwroot\Videos"; 
string[] fileDirectories= 
    System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories); 

感謝 "をIIS_IUSRS"、私は、デリゲート

 SPSecurity.RunWithElevatedPrivileges(delegate() 
       { 
        using (SPSite site = new SPSite(SPContext.Current.Site.Url)) 
        { 
         using (SPWeb currentWeb = site.OpenWeb(SPContext.Current.Web.ID)) 
         { 
string[] fileDirectories= 
     System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories); 

         } 
        } 
       } 
      ); 
を使用して問題を解決与える

+0

このパスは、サイト、アプリケーション、または物理ドライブからの相対パスですか? –

+0

多分これは >はhttp://stackoverflow.com/questions/4986293/access-to-the-path-is-denied-when-using-directory-getfiles – user997287

+0

多分これが役立つのに役立ちます > http://stackoverflow.com/questions/4986293/access-to-the-path-is-denied-when-using-directory-getfiles – user997287

答えて

1

@"\\10.2.10.2\...のパスは、現在のドライブのルートを参照してください。

あなたが必要です:

string VideosPath = Server.MapPath("~/10.2.10.2/..."); 
... 

~/アプリのルートであるとちょうど/は、「サイト」

+0

ネットワーク共有を指定することは、 '現在のドライブ'とは関係ありません。\\ 10.2.10.2 \は、ネットワーク共有など〜/ 10.2.10.2 /は意図したものではありません –

+0

私はサーバーにSharePointサイトを持っています。私のサーバーから別のサーバー(/10.2.10.2/)にアクセスしようとしています。それは別のサーバーに接続し、ビデオファイルを取る必要があります。 – ygy59

1

、Webサーバーの匿名アカウントは匿名アカウントではないのルートになりますリモートマシン上で実行します。

同じ名前とパスワードの両方のマシンに新しいアカウントを作成し、このアカウントでWebサイトのアプリケーションプールを実行させます。このアカウントを使用してIISを実行していることを「唯一」と思うかもしれないので、まずそれを試してみてください。

これで、フォルダとそのすべての親フォルダに対するアカウントのアクセス許可を与えます。

関連する問題