1

Web ロールを持つ Azure クラウド プロジェクトを構築しています。Web ロールには Web API が含まれており、私の同僚はリモート コンピューターを介してこれらの API をテストしています。したがって、VS でプロジェクトを実行すると、エミュレーターが起動し、Web ロールが IIS でホストされます。しかし、VS でプロジェクトを停止するとすぐに、エミュレーターは IIS から Web ロールも削除します。なぜそれが起こるのかは明らかですが、Webロールをエミュレーターで継続的に実行し、VSのコードで同時に作業する方法はありますか. 同僚が API をテストしたいときはいつでも VS の作業をやめなければならないというのは、私にとって非常に難しいことです。

これに対する回避策または解決策はありますか?

ありがとう

編集:

ServiceConfiguration.Local.cscfg

<ConfigurationSettings>     
  <Setting name="StorageConnectionString" value="UseDevelopmentStorage=true" />
<ConfigurationSettings>

Web ロール:

var cloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString"));
4

2 に答える 2

1

継続的デリバリーの設定を検討する: Team Foundation Service を使用した Windows Azure への継続的デリバリー

利点:

  • チェックインのたびに (または毎日...)、アプリケーションはクラウド サービスに自動的にデプロイされます。そうすれば、他の開発者がこのバージョンを使用して API を操作できます。
  • 手間をかけずにローカルで開発を続けることができます
于 2013-02-27T12:15:49.730 に答える
1

いくつかの方法があります。

  1. チーム メンバーに、開発マシンではなく、テスト デプロイで API をテストしてもらうことができます。たとえば、Azure で実行されている極小の Web ロール インスタンスを使用できます。Visual Studio では、Web Deploy 機能を使用して、このインスタンスを新しいコードですばやく更新できます。変更が反映されるまでに数秒しかかかりません。このアプローチには、同僚のテストが、開発中に行った重大な変更によって影響を受けないという追加の利点があります (たとえば、プロジェクトがコンパイルされていないか、適切に動作していない状態にある場合)。

  2. マシンで 2 つの Visual Studio インスタンスを実行できます。1 つは Azure エミュレーターでデバッグ モードで Web ロールを実行し、もう 1 つは開発モードで実行します。

  3. Visual Studio でプロジェクトを構成して IIS と統合し、マシンの IIS サーバー (Azure エミュレーターの外部) を介してプロジェクトを実行できるようにすることができます。Azure ストレージ エミュレーターが実行されている限り、コードはエミュレートされたテーブル サービスに引き続きアクセスできます。実際、WinForms またはコンソール プロジェクトでも、ストレージ エミュレーターのサービスを使用できます。クライアント コード自体は、Azure コンピューティング エミュレーター (2 つの異なる別のエミュレーター) で実行する必要はありません。この場合、Web ロール構成からストレージ接続文字列を取得するのではなく、Web.config や App.config などのアプリケーション構成から取得します。

アプローチ 1、つまり別のテスト環境を用意することをお勧めします。それに対して自動化された統合テストを実行することもできます。エミュレーターではなく、Azure 自体で実行できるという追加の利点があります。いくつかの動作の違いがあり、この方法でライフサイクルの早い段階でそれらを検出できます。

チームが次のレベルに到達したい場合は、継続的デリバリーを設定して、いずれかのプロジェクトでリポジトリ コミットが発生したときに、ビルド、Azure へのデプロイ、および一連の自動テストが行​​われるようにすることができます。

于 2013-02-27T11:01:56.977 に答える