2011-01-07 2 views
2

これは長年の夢ですが、希望は永遠に湧きます。進行中のリクエストや "兄弟"サービスへの影響を最小限に抑えながら、サービスの追加/更新を可能にするフレームワーク/サービス(WCF/WAS/MVC/ETC)がありますか?.NET 4.0テクノロジは、モジュール式のフィックス・イン・フライト(ホットスワップ)RESTサービスホスティングを提供していますか?

の夢は、このようなものになります。

  • IIS7を

    • プラグイン可能なRESTサービスホスト

      • 共有リソース(リポジトリ、QA)

      • サービスA - 生産中のフォルダにドロップされた、新しいREST方式

        を提供
      • サービスB - バグ、リクエストの最小限の中断を修正するために、 "飛行中" に更新

答えはWASかAppFabric(夢は慎重ではない)が関係するかもしれないと思いますが、私はそれを簡単にする方法を見つけることはできませんでしたので、私たちのPHPの同志はちょうど "行う"。

+0

これは良い質問だと思います。 HotSwap、より完全には、JRebelはJava環境でこれを行います。 Javaもコンパイルされます。.NETのこの分野で進歩があったかどうかを知りたいですか? – Nathan

答えて

1

WebHttpBindingを使用したMEF +自己ホストWCF。またはMEFとHttpListener。 http://wcf.codeplex.comの新しいWCF Httpスタックはこれをもっと簡単にする

+0

ありがとう!私は他の回答には感謝しますが、質問に答えを得ることが常に良いです。大変感謝しています。 –

+0

私はこれが質問に対する答えだとは思わない。 IIS、WCF、RESTに関する質問がありました。自己ホスティングでは、IISのすべての機能とインフラストラクチャを失います。さらに悪いことに、WCF 4でRESTサービスを開発するときにAspNetCompatibilityを失うと、実際に役立ちます(キャッシュなど)。 –

+0

@Ladislav実際にIISについての質問はありませんでした。 IISはただ一つの潜在的な解決策として提案されました。 IISはソリューションを提供するのと同じくらい多くの問題をもたらします。特定のシナリオは、IISが実際にその価値があるかどうかを定義します。 –

-1

これは実際にはRESTの質問ではありません。これはHTTPサーバーに関する質問です。

これまで、新しいバージョンのアプリケーションをサーバーの新しい場所に展開することは、たぶん内部的にしか見えないURLを使用することでした。私は単純に新しいURLを指すようにIISのプロパティを切り替えました。

+0

それは素晴らしいですが、目標がRESTサービスを作成/更新しているので、私はそのような傾向のあるフレームワークを望んでいます。したがって、WAS/WCFなどで、多くの個別および更新可能アイテムからRESTサービスを「構成」することができる場合は、それが良い解決策になります。 –

+0

こんにちは、あなたのサービスがRESTであるかどうかはどうして重要ですか?あなたのコードがどんなものであれ、サービスやWebサイトをサーバーの別のディレクトリに展開し、IISを新しい場所に向ける。既存の要求には触れませんが、新しい要求はすべて新しい場所に移動します。 –

+0

httpサービスを構築したいのであれば、より一般的な回答が必要ですが、私の目標は特にRESTサービスなので、その知識を持っている人の指導がより役に立ちます。 –

-1

これは奇妙な質問です。まず、アセンブリがコンパイルされる.NETの世界にあります。これは他のものに大きな影響を与えます。

PHPプログラマーのようなプログラミングを始めるなら、基本的にはあなたが望むことができます。 .svcファイルを開き、サービス全体をこのファイルに直接書き込んでください。これはインラインコーディングとも呼ばれます。サイトのGACおよびBinフォルダに配置されたアセンブリのタイプを使用できます。 .svcファイルをWebアプリケーションディレクトリにコピーするだけで、サービスを利用できます。変更も簡単です。 .NET 4.0を使用しなければならず、新しいサービスを「配備する」ときに構成の変更は必要ありません。

編集:

コメントに基づいて、私はいくつかの説明を追加します。

IISに依存するもの(WAS、AppFabric)は、新しいアセンブリが追加されたときに常にドメインをリサイクルします。理由は.NETコア - AppDomainに直接あると思います。アセンブリを動的にロードおよびアンロードするには、新しいドメインが必要です。

+0

私はコンパイルがほしいと思うので、個々のアセンブリだけをフォルダにドロップし、同じフォルダ内の他のアセンブリのドメインをリサイクルせずにすぐに要求を処理することができます。 –

+0

私は "COM +"はこれまでに、サービスを個別に更新できる既存のリクエストを中断することなく、コンポーネントとして過酷な試みをしていたと思います。 –

関連する問題