无法在服务结构

时间:2017-06-23 14:04:10

标签: c# asp.net-core azure-service-fabric

我试图让无状态服务向另一个发送值,只是为了通过使用服务结构中的DNS服务来实现服务之间的通信。我已经用邮递员测试了这两个应用程序,并且它们运行良好。我跟随this tutorial,这似乎很简单。

已启用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发送到服务,就像在教程中一样。

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

但我得到一个例外:

  

WebException:无法解析远程名称:&#39; socketservice.timeseriesactorapplication&#39;

当我使用端口8080(如教程建议)和使用我在ServiceManifest.xml中指定的端口时,会发生这种情况。

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

我在这里缺少什么?

更新 使用localhost而不是dns-name也可以正常工作。

Github问题:Unable to resolve service DNS name #332

2 个答案:

答案 0 :(得分:0)

我看到你正在运行service fabric 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名称解析似乎并不总是立即开始工作(我必须重新部署或等待几分钟)。如果您在本地运行,则可以在终端窗口中测试名称解析 - 只需ping服务的DNS名称。

答案 1 :(得分:0)

我通过使用ipconfig / flushdns刷新DNS来修复它。 我还发现本地IP是我的DNS链中的第一台DNS服务器。

相关问题