2017-06-23 15 views
3

サービスファブリック内のDNSサービスを使用してサービス間の通信を実現するために、ステートレスサービスを取得しようとしています。私は両方のアプリケーションを郵便配達員と一緒にテストしましたが、うまく動作します。私はthis tutorialに従っていますが、これはかなり簡単です。サービスファブリックでDNSを使用してサービスと通信できません

DNSサービスが有効になっている:DNS-service is running

ステートレスサービスは、DNS名を持っていますenter image description here DNS名はApplicationManifest.xml

<Service Name="SocketService" 
ServiceDnsName="SocketService.TimeSeriesActorApplication" 
ServicePackageActivationMode="ExclusiveProcess"> 
    <StatelessService ServiceTypeName="SocketServiceType" 
    InstanceCount="[SocketService_InstanceCount]"> 
     <SingletonPartition /> 
    </StatelessService> 
</Service> 
に設定されています

私はチュートリアルのように、サービスにhttp getを送信しようとします。

WebException:

using (var client = new HttpClient()) 
{ 
client.BaseAddress = new Uri("http://socketservice.timeseriesactorapplication:8712/api/"); 
var response = await client.GetAsync("values"); 
} 

しかし、私は例外を取得リモート名を解決できませんでした: 'socketservice.timeseriesactorapplication' この問題が発生した

を両方とも私は次のようにポート8080を使用する場合チュートリアルでは、ポートを使用するときにServiceManifest.xmlで指定します。

<Endpoints> 
    <Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8712" /> 
</Endpoints> 

私はここで何が欠けていますか?

更新: dns-nameの代わりにlocalhostを使用すると正常に動作します。 Githubの上

問題:Unable to resolve service DNS name #332

+0

チュートリアルは問題なく終了しました。コールを実行しているクライアントはどこにいますか? –

+0

どちらもローカルサービスファブリッククラスタで実行されるステートレスサービスです。私はもう一度2番目のget要求でもう一方に到達しようとしている郵便配達員のうちの1人にget-requestを行っています。 –

+0

localhostを使って言うと、それはサービス通信のサービスですか? –

答えて

0

私はあなたがサービスファブリック5.6.210を実行している参照してください。最近の5.6.220リリース(https://blogs.msdn.microsoft.com/azureservicefabric/2017/06/20/release-of-sdk-2-6-220-and-runtime-5-6-220-refresh-for-windows/)には、DNSサービスのいくつかの修正が含まれています。私が5.6.220を実行しているにもかかわらず、私は、ローカルマシン上に展開した直後にDNS名解決がすぐに動作するとは思わないことに気付きました(私は再展開または数分待たなければなりません)。ローカルで実行している場合は、サービスのDNS名をpingするだけで、ターミナルウィンドウで名前解決をテストできます。

+0

最新バージョンに更新されましたが、動作させることはできません。私のサービスのDNS名をpingしても動作しません。 –

+0

pingを実行する前に、DNSキャッシュ(ipconfig/flushdns)をフラッシュしてみてください。また、DNSサービスは、マシン上でDNSサーバーをローカルに実行し、プライマリ・アダプター用のDNSサーバーのリストの最上部にマシンを追加することで動作します。したがって、ipconfig/allを実行すると、そのアダプタのDNSサーバのリストの一番上にプライマリアダプタのIPアドレスが表示されます。それがなければ、何かが間違っている可能性があります。 –

関連する問題