1

これは、Azureへの2回目のデプロイです。最初は、データベースを備えた単純なMVC4 Webサイトで、gitを介してデプロイしました。チャームのように働いた。

今、私は次のものを持っています:3つのプロジェクトを含むソリューション。

  • Web->MVC4フロントエンドはどれですか
  • モデル->モデルとDBコンテキストが含まれています
  • バックエンド->データ管理用のMVC4プロジェクト

すべてのプロジェクトはMVC4です(モデルプロジェクトでこれをより適切に管理する方法がわかりませんでした)。私のモデルプロジェクトでは、コードを最初に移行します。バックエンドは仮想ディレクトリで実行されています:localhost:80 / Backend(localhostで完全に機能します)Webプロジェクトとバックエンドプロジェクトの両方にモデルプロジェクトへの参照があります。

フォルダー構造:ソリューションフォルダーに含まれるもの: Web/モデル/バックエンド/MySolution.sln

初めてデプロイしたとき、Projectsフォルダーにgitリポジトリを作成しました(単一のプロジェクトだったため)。これで、私のリポジトリはソリューションフォルダーにあります。

また、バックエンドにファイルをアップロードし、次のパスを介して他のプロジェクト(Web)に移動します。

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;

これはAzureで問題になりますか?

ですから、私のゆるい質問は、このソリューションをどのように展開するのかということです。


Azureでソース管理を使用してWebサイトを作成し、それにSQLデータベースを追加しました。

ソリューションをAzureにプッシュすることができましたが、Azureにはメッセージがあります

解決策が見つかりました...デプロイ可能なプロジェクトはありません。代わりにファイルをデプロイします。

今。


この問題に関する良いチュートリアルはありますか?

私はそれを完全に間違っていますか?(そう思います)

私はASP.NETとAzureに比較的慣れていないので、理解するのは少し難しいです。

ありがとう、トビ

4

2 に答える 2

1

フォローアップ編集:わかりました。これは、2つのプロジェクトデプロイの構成と関係があります。展開スクリプトを作成する必要があります

私は調査を終えていませんが、これらの投稿を見てください:

http://blog.amitapple.com/post/38419111245/azurewebsitecustomdeploymentpart3

http://kellyhpdx.wordpress.com/2012/04/11/deploying-multiple-web-applications-to-a-single-azure-instance-and-applying-web-config-transforms-correctly/

于 2013-02-09T22:35:43.810 に答える
0

私はなんとか問題を解決することができました。 申し訳ありませんが、私は自分の質問に答えています-これが誰かを怒らせないことを願っています。

私が達成したかったことは、Azure Webサイトでは不可能ですが、Webロールでは不可能です。ここCloudCoverStructureTooBigで見られるように。

そこで、Visual Studioで新しいAzureクラウドアプリケーション(Azure Toolsによって提供される)を作成しました。デフォルトのWebロールは、私のWebフロントエンドプロジェクトです。「backend」という名前でVirtualApplicationをWebロールに追加し、physicalDirectoryをバックエンドプロジェクトパスに設定しました。次に、VirtualDirectoryの「ストア」を追加しました。これは、ファイルをアップロードするために両方のプロジェクトからアクセスできます。

私のWebRoleは次のようになります。

<WebRole name="MvcWebRole1" vmsize="ExtraSmall">
<Sites>
  <Site name="Web" physicalDirectory="[projectpath]">
    <VirtualApplication name="backend" physicalDirectory="[projectpath]">
    </VirtualApplication>
    <VirtualDirectory name="store" physicalDirectory="[projectpath]">
    </VirtualDirectory>
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
  <Import moduleName="Diagnostics" />
  <Import moduleName="RemoteAccess" />
  <Import moduleName="RemoteForwarder" />
</Imports>

現在、次の方法でストアにアクセス(読み取り+書き込み)しています。

HttpContext.Current.Request.MapPath("/Store" + DirSeperator);

それ以外の

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;

これは両方のプロジェクトで完全に機能します。

したがって、このソリューションは機能し、私はすでにそれを本番環境に展開しています!

新たな問題:

  • Webサイトはgit統合で動作しますが、クラウドサービスは動作しません(これは私のワークフローにとって非常に悪いことです)。
  • 展開には約30〜45分かかります。聖なる..。
  • リモートアクセスとWebDeploy機能をアクティブにするには、すべてを再度公開する必要がありました。そして、WebDeployが更新の展開にかかる時間を節約することを願っています...今更新するたびに、完全なソリューションがサーバー上で(前述の期間内に)置き換えられます。
  • FTP経由でデータにアクセスする方法はありますか?

チャオ

于 2013-02-15T09:31:11.453 に答える