2

私のアプリは、実行時に生成されたファイルを作成、保存、処理するフォルダーの構造を実行中に作成することになっています。このシステムはデスクトップアプリケーションでテストされており、正常に動作します。現在、これをC#asp.net webforms DNNプロジェクトで使用しようとしていますが、期待どおりではありません。

プロジェクトをデバッグすると、次の場所にディレクトリが作成されます。理由はわかりません(ただし、アプリケーションは正常に実行されます)。

C:\Program Files\Common Files\microsoft shared\DevServer\10.0\

同じアプリケーションをローカルホスト環境(IIS 7、.NET 4.0、統合パイプラインモード)で実行すると、次の例外がスローされます。

重大なエラーが発生しました。パス'c:\ windows \ system32 \ inetsrv \Processing\'へのアクセスが拒否されました。

「Processing」ディレクトリは、検証済みのアプリケーションロジックに従っても作成されません。

このフォルダー構造を、IISで実行しているアプリケーションのbinフォルダーに作成したいと思います。アプリケーションのbinフォルダーに要件に従って仮想ディレクトリ構造を作成することにより、必要な場所にフォルダー構造を手動で作成しましたが、それも役に立ちませんでした。

だから私の質問は:

  • 誰かが、IISでホストされているときに、Webサイトによって作成されたディレクトリとファイルが保存される方法と場所を明確にできますか。
  • IIS 7ですべての権限を使用して実行しているアプリのbinフォルダーにファイルとディレクトリが作成されるようにするために、実行する必要のある手順は何ですか。
  • これを実現するために必要なコード変更はありますか?

書き込み方向を示すリンクと回答をいただければ幸いです。

ありがとう!

4

1 に答える 1

1

デフォルトでは、Webサーバー(IISまたはローカル開発サーバー)は作業ディレクトリに保存するだけです。特定のパスに保存する場合は、 MapPath(またはServer.MapPath )を使用して、アプリケーションに対応する物理パスを取得します。例えば:

string path = MapPath("~/bin");

また、IISが実行されているアカウントに、書き込みが必要なディレクトリへの読み取り/書き込みアクセス許可があることを確認する必要があります。これは、サーバーにアクセスして、フォルダーのアクセス許可を変更することを意味します。ユーザーアカウントを見つけるには、アプリケーションプールの下の[詳細設定]に移動し、[ ID ]に何が設定されているかを確認する必要があります。

于 2012-08-13T19:40:59.917 に答える