2

私の Web アプリケーションには、日付に基づいてフォルダーを作成するボタンがあります。

if (!Directory.Exists(SaveLocation + DateTime.Now.Year + @"\" + DateTime.Now.Month + " - " + DateTime.Now.ToString("MMM") + @"\" + DateTime.Now.Day + @"\" ))
    Directory.CreateDirectory(SaveLocation + DateTime.Now.Year + @"\" + DateTime.Now.Month + " - " + DateTime.Now.ToString("MMM") + @"\" + DateTime.Now.Day + @"\");

このコードを localhost で実行すると、問題なく動作します。これがサーバー上で実行されるたびに、エラーが発生します。

Access to the path '\\server\share\savelocation\2014\06 - June\3\' is denied

私が試したこと:

  • サイトは Windows 認証で実行されます
  • フォルダーと共有の読み取り/書き込みアクセス許可を Everyone に与える
  • <identity impersonate="true" />Web.configに追加してみました
  • アプリ プールのマネージド パイプライン モードをクラシックに変更

アプリケーションがこのディレクトリにアクセスできないのはなぜですか?

4

3 に答える 3

0

わかりましたので、サーバーへの匿名認証を無効にすると、機能するようになりました。これは、権限が不十分なユーザーとして共有にアクセスしようとしていたと思います。SQLサーバーに情報を渡すときに正しい資格情報を使用していたため、これを理解できなかったため、フォルダーのアクセス許可に対して資格情報が正しいと想定しました。しかし、とにかく動作します。

于 2014-06-03T14:33:17.210 に答える
-2

末尾のスラッシュを削除します。MSDNの例にはそれがなく、IIRCには問題があります。

于 2014-06-03T09:31:49.647 に答える