2

ユーザーがファイルをアップロードできるWebアプリがあります。ファイルは、IISによって、外部ストレージデバイスにマップされている仮想フォルダーに物理的に保存されます。アップロードされた各ファイルに関するレコードがデータベースに保存されます。データベースレコードには、ファイルがまだ「アクティブ」であるかどうか(ユーザーによって削除されていないかどうか)、および仮想フォルダーのパス(例:/ storage1 / test)に関する情報が含まれています。

ここで、IISの外部で管理タスクを定期的に実行して、「アクティブ」ではなくなったすべてのファイルのリストを取得し、それらを物理ストレージから削除したいと思います。管理タスクをIISの外部でスケジュールされたタスクまたはWindowsサービスとして実行したいと思います。ただし、外部プロセスで、データベースレコードに格納されている仮想フォルダーパスを物理パスにマップする方法がわかりません。外部プロセスからIISに「タップ」する方法、またはこれを行う他のスマートな方法はありますか?(または私は完全に間違った方向に進んでいますか)。

TIA/ヘンリック

4

3 に答える 3

2

プロジェクトに System.Web への参照を追加する必要があります。

string path = System.Web.HttpServerUtility.MapPath("/MyWebSite");
于 2009-03-18T12:44:13.847 に答える
0

アプリがASP.NETアプリの場合、メインアプリと同じ仮想ディレクトリを使用している場合は、Server.MapPath呼び出しを調査できます。

それ以外の場合は、「ベースパス」(仮想ディレクトリパスに対応)を外部アプリの構成に保存し、そのベースパスとファイルパスを完全なパスに連結することをお勧めします。

マーク

于 2009-03-18T11:37:00.187 に答える