2016-09-09 26 views
1

私は2つのMVCアプリケーション(AdminとUser)を持っています。管理者は、ユーザーアプリケーションに表示される画像をアップロードします。画像のパスは、2つのアプリケーション間で共有されるdbに保存され、パスを使用して、ユーザーアプリケーションが画像を取得します。 Visual Studioの両方のアプリケーションがイメージフォルダにアクセスできるようにする方法と、サイトがサーバーにアップロードされたらどうすればよいですか?2つのMVCプロジェクト間で共通のイメージフォルダを共有する

+0

Azureでブロブストレージを使用することをお勧めします。 –

+0

これは良い解決策になりますが、OPはAzureを使用することについて言及しておらず、Azureを使用できないことがあります。 –

答えて

1

これは実際には2つの別個の質問です:

  1. プロダクションでフォルダを共有するにはどうすればよいですか?

    サイトが同じサーバー上にある場合は、共有イメージを同じサーバー上のどこにでも置くことができます。それらが異なるサーバー上にある場合は、両方のサーバー上のネットワーク上の場所をイメージが配置されている場所にマップすることをお勧めします。どちらの場合でも、両方のサイトでIISで仮想ディレクトリを作成して、その共有場所を指定します。

  2. 開発中のフォルダ(Visual Studio)を共有するにはどうすればよいですか?

    これは少し難解です。基本的には、プロダクションと同じ方法で処理する必要がありますが、IIS Expressは完全なIISほど透過的ではないという問題があります。私はVisual Studio 2012と2013で次のメソッドを使用しましたが、2015年に最後に試したときにもう機能しませんでした。それはしばらくされているように、今でも修正されているかもしれません。それにもかかわらず、これはあなたの唯一の選択肢です。

    1. ソリューションエクスプローラーペインでソリューションを右クリックし、Add > New Website...を選択します。
    2. 結果ウィンドウのBrowse...ボタンをクリックします。
    3. Local IISタブをクリックします。
    4. 共有イメージディレクトリを利用したいリストの最初のサイトを探し、それをクリックして強調表示します。
    5. 次に、ウィンドウの右上に、星が付いたフォルダのようなアイコンをクリックします。 1秒以上マウスを置くと、「Create New Virtual Directory」と表示されます。
    6. "エイリアス名:"に、のパス部分の内容を入力します。たとえば、画像をhttp://localhost:12345/SharedImagesに検索する場合は、SharedImagesと入力します。あなたが選択したものは、プロジェクト内の実際の既存のディレクトリではないことを確認してください。
    7. "Folder:"の場合、コンピュータ上の共有イメージが存在する物理ディレクトリを参照します。
    8. Create IIS applicationのチェックボックスをオフにします。
    9. OKをクリックします。
    10. 追加のサイトについては、手順4〜9を繰り返します。
    11. 前のウィンドウでCancelをクリックします。
    12. Add New Website Windowに再度Cancelをクリックしてください。その時点で、(あなたが実際にこれはちょうどあなたがこの仮想ディレクトリを作成することができる場所にアクセスするための唯一の方法です。あなたのソリューションに新しいサイトを追加するつもりはない。)

     

    、メインのVisual Studioウィンドウに戻ります。これはすべてIIS Expressで実行されたため、プロジェクト/ソリューションの違いは実際には気づかないでしょう。あなたのウェブサイトを閲覧し、仮想ディレクトリの下に画像をロードしようとする場合は、あなたがイメージが表示された場合、すべてが正常に動作している

    http://localhost:12345/SharedImages/foo.jpg 
    

    :すなわち、ブラウザでそれを見ることができるはずです。

0

ユーザーのアプリケーションに完全なURLを指定すると、他の設定の必要がない画像が取得されます。しかし、両方のアプリが実行されていることを、あなたがPATHにファイルではない、完全なURLを提供していることを確認してください

[UPDATE] これは動作します:

Http://domain.com/folder/file.ext 

これは動作しません。

D:\\Hosting\domain\folder\file.ext 
+0

btw、私は両方のアプリが同じサーバーまたは別のサーバーにある可能性があると考えました – Ziyad

関連する問題