ASP.NETから別のWebアプリケーションにファイルをアップロードする方法
質問
あるWebアプリケーションからファイルをアップロードし、別のWebアプリケーションで使用する必要があるシナリオがあります。私のセットアップは次のとおりです。
- IISで2つのWebアプリケーションをホストする1つのサーバー-両方ともASP.NET
- 一方のアプリケーションを使用してもう一方のアプリケーションを管理し、さらに多くのものを管理します
- この管理アプリからファイルをアップロードし、DALを介してDBにパスを保存してから、ダウンロード用のファイルを提供する他のWebアプリからファイルにアクセスする必要があります
- ファイルをディスクに保存します。DBのパスのみ
では、両方のWebアプリケーションからアクセスできるように、ファイルをどこでどのようにアップロードできますか?サービスを使用する必要がありますか、または他の方法がありますか?
ここに私が見つけたいくつかの関連する質問がありますが、それらは私の特定のシナリオをカバーするとは思わない:
専用画像サーバーへのファイルアップロードの処理方法
WCFサービスにファイルをアップロードする方法
解決
両方のアプリケーションが同じサーバー上にあるので、これは簡単なはずです:
- アップロードしたファイルをどこかに保存します サーバー。
- 任意の場所に仮想ディレクトリを作成します 公開する必要があるアプリケーション 物理パスを指すファイル。
- 柔軟性のためにデータベースに仮想パスを保存します
他のヒント
各アプリケーションで、ファイルをアップロードするサーバー上の同じフォルダーを指す新しい仮想ディレクトリを設定できます。 c:ドライブに" uploads"という新しいフォルダーを作成したとしましょう。つまり、c:\ uploads。次に、IISで" uploads"という新しい仮想ディレクトリをセットアップします。各Webアプリケーションのc:\ uploadsを指します。これにより、両方のサイトがファイルにアクセスできるようになります。
DBにファイルを保存していない理由を尋ねられますか?これにより、簡単に渡すことができます。
DBに配置したファイルパスに管理者以外のWebアプリからアクセスできると仮定すると(このように聞こえます)、ファイルは両方のアプリケーションがアクセス権を持っている場所に移動する必要があります。管理アプリのみに書き込みアクセス権が必要です。
IIS Webサイトがどのユーザーアカウントを実行するかは、Webサイトのプロパティ>で設定できます。 IIS管理コンソールのディレクトリセキュリティ。次に、適切なディレクトリ権限を設定してください。