1

なぜこれが私にとって理解するのが難しい概念になっているのかわかりません。私は次の問題に苦しんでおり、どんな助けでも大歓迎です。

C# を実行している 2 つの ASP.net MVC 4 アプリケーションがあります。これらは 2 つの別個のアプリケーションで、1 つは公開サイト用で、もう 1 つは管理者側用です。2 つを分離した理由は、これらが 2 つの完全に別個の設計とコード ベースであり、管理が容易になるためです。

2 つのアプリケーションは、1 つの SQL Server データベース インスタンスに接続されています。

各サイトにファイルのアップロード機能があり、両方のサイトの 1 つの共通ディレクトリにファイルのアップロードを保存する方法を見つけようとしています。

問題は、ファイルがアップロードされると、画像の場所がデータベースに保存されることです。

/アップロード/filename.png

これは、次の関数を使用して行います。

Server.MapPath("~" + TempImage.ThumbnailLocation.Replace("TempUploads/", "")));

両方のサイトのファイルをサーバー上の同じディレクトリに保存して、データベース内のすべての画像パスを同じに保つにはどうすればよいですか?

画像を削除するには、両方のアプリケーションから次のように呼び出すことができる必要があります。

if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(Path)))
{
     System.IO.File.Delete(HttpContext.Current.Server.MapPath(Path));
}
4

3 に答える 3

4

各アプリケーションに仮想ディレクトリを作成できます。仮想ディレクトリは、単一の物理パスを指します。したがって、両方のサイトの同じ物理ディレクトリからファイルをアップロードおよび削除できます。

于 2013-07-10T13:39:16.793 に答える
1

私は通常、BLOB ストレージを使用します。これは、AmazonまたはMicrosoft (および他の多くのプロバイダー) のいずれかから非常に安価です。

このアプローチが優れている理由は次のとおりです。

  • 単一サーバー マシンでハードウェア障害が発生した場合のデータ損失のリスクを軽減します。
  • アセットは CDN から読み込まれるため、ページの読み込みが速くなります
  • ファイルはすべてクラウドにあるため、どのアプリケーションからでもファイルを再利用できます

Azure を使い始めるためのいくつかのチュートリアルを次に示します。

于 2013-07-10T14:00:19.860 に答える
0

これを行う 1 つの方法は、仮想ディレクトリを使用することです。IIS では、両方のサイトを「/Uploads/」仮想ディレクトリを持つように構成でき、両方をハード ドライブの同じ場所にマップできます。

于 2013-07-10T13:39:54.487 に答える