誰かが私を助けてくれることを願っています。
リモート サーバー上のディレクトリをスキャンして一連のディレクトリを探し、それらのディレクトリ内で一連のファイルを検索するカスタム アクション ページを作成しました。ただし、運用サーバーでコードを実行すると、アクセス拒否の例外が発生します。テストサーバーで同じコードを使用すると(同じリモートサーバーにアクセスして)、問題なく動作します。
運用サーバーで powershell またはエクスプローラーを使用すると、リモート ディレクトリとファイルに問題なくアクセスできます。
すべてのシナリオで同じアカウントを使用しています (Page.User.Identity.Name と SPContext.Current.Web.CurrentUser.LoginName を出力すると、テスト サーバーで使用しているアカウントと同じであり、同じアカウントです)。コマンドラインまたはエクスプローラーからリモートサーバーにアクセスするときに、本番サーバーにログオンしています)。
コードは次のようになります。
string user = SPContext.Current.Web.CurrentUser.LoginName.Remove(0,7);
string user_path = "\\\\srv\\share1\\subdir\\dir\\" + user;
// The line below will raise an exception on the production server.
foreach (string board_path in Directory.GetDirectories(user_path, "Board*")) {
foreach (string board_file in Directory.GetFiles(board_path, "Board*.xml")) {
.
.
}
}
コードがテストサーバーで実行され、本番マシンでは実行されない理由がわかりません。SharePoint 2010 Standard を使用しています。
私が得ることができるあらゆる種類の助けを前もって感謝します。
/フレドリック