WCF サービス Web ロールと ASP.NET フォーム Web ロールを含む Azure プロジェクトがあり、それぞれの 2 つのインスタンスを使用しています。ASP.NET フォーム Web ロールは、このように Web.config で構成された tcp バインディングを介して、標準サービス参照を介して WCF サービス Web ロールを定期的に呼び出します。
<endpoint address="net.tcp://localhost:666/EventService.svc"
behaviorConfiguration="DefaultBehaviour" binding="netTcpBinding"
bindingConfiguration="TCPBinding" contract="EventService.IEventService"
name="EventService" />
私が抱えている問題は、現在、各展開後に web.config ファイルを手動で編集せずにこれらの役割を展開する方法がないことです (これらの役割が展開される IP エンドポイント アドレスが変更される可能性があるため)。
この問題を解決するために私が検討した方法は、WebRole.OnStart()
イベントをインターセプトして を使用しRoleEnvironment.Roles["MyWCFServices"].Instances
、Web.config ファイルを直接変更しMicrosoft.Web.Administration.ServerManager
て正しい WCF サービス IP を参照することです。
ただし、この方法に進む前に、Azure プラットフォームで Web ロール間の IP 参照を実現する簡単な方法がないことを誰か確認していただけますか?