2011-07-25 13 views
3

可能性の重複:
Hosting Multiple TCP WCF service Endpoints on single Port1つのポートで複数のWCFサービスを実行するにはどうすればよいですか?

私は1つのWCFサービスアプリケーションから実行されている4つのサービスがあり、それがすべて使用4別々のポート場合は素晴らしい作品と私​​のローカルマシン上で実行され、ホストされていますコンソールアプリでそれは開発には問題ありませんが、今はイントラネット上のServer 2008マシンに移したいと思っています。そのITボーイたちは、そのマシンに多数のポートを開くことについて本当に幸せではありません。

私は同じポート上で複数のサービスを実行できることは知っていますが、その方法を教えてくれるものはありません。ほとんどの場合、最初のサービスが起動し、次に2番目のサービスが起動しません。

誰でも私にこのことを説明するブログまたは記事を指摘できますか?

また、WASでサービスをホストする方法を理解する必要がありますが、それは別の問題かもしれません。それはすべての違いを、私は...、それはあなたのためにトリックを行うことができようにこれが見えます

Thxを、デイブ

+0

あなたは正しいです、それは重複しています。私の検索用語はどういうわけか昨日見つからなかった、私は謝罪した... – DaveN59

答えて

8

をTCPプロトコルを使用しています。

// Add behavior for Services - enable WSDL access 
ServiceMetadataBehavior serviceABehavior = new ServiceMetadataBehavior(); 
serviceABehavior.HttpGetEnabled = true; 
serviceABehavior.HttpGetUrl = new Uri("http://localhost:8080/ServiceA"); 
serviceAHost.Description.Behaviors.Add(serviceABehavior); 

ServiceMetadataBehavior serviceBBehavior = new ServiceMetadataBehavior(); 
serviceBBehavior.HttpGetEnabled = true; 
serviceBBehavior.HttpGetUrl = new Uri("http://localhost:8080/ServiceB"); 
serviceBHost.Description.Behaviors.Add(serviceBBehavior); 

// Create basicHttpBinding endpoint at http://localhost:8080/ServiceA/ 
serviceAHost.AddServiceEndpoint(serviceAContractType, new BasicHttpBinding(), 
"http://localhost:8080/ServiceA"); 
// Create basicHttpBinding endpoint at http://localhost:8080/ServiceB/ 
serviceBHost.AddServiceEndpoint(serviceBContractType, new BasicHttpBinding(), 
"http://localhost:8080/ServiceB"); 

またはNet.TCPポート共有を:あなたは正しくサービス動作とエンドポイントを設定する必要がありますことを示唆している

http://blogs.msdn.com/b/dkaufman/archive/2008/06/13/hosting-multiple-service-implementation-on-the-same-port-with-wcf.aspx

http://msdn.microsoft.com/en-us/library/ms734772.aspx

多くの異なったHTTPアプリケーションのトラフィックが単一のTCPポートに多重化されているHTTP.SYSモデルは、Windowsプラットフォーム上で標準となっています。これにより、ファイアウォール管理者に共通のコントロールポイントが提供され、アプリケーション開発者はネットワークを利用できる新しいアプリケーションを構築するための導入コストを最小限に抑えることができます。

+0

昨日、先ほど参照されたブログ記事を見つけたが、より洗練されたソリューションを望んでいた。作者は、とりわけ、設定ファイルを使用する代わりに、ハードコードされたURIを使用するので、理想的なソリューションではないことを彼の投稿で認めています。ポート共有のアプローチは、より良い解決策になるかもしれないようです... – DaveN59

関連する問題