3
votes

My service fabric application runs locally no problem: http://localhost:8080/api/values

When deployed to Azure, it just sits and I will eventually get a timeout. http://cluster-myapp.centralus.cloudapp.azure.com/api/values

After digging around I found some info that the Azure load balancers needed to be updated with a new rule, and a new probe. I did that, but still the same issue. Here is what I have:

ServiceManifest.xml

  <Resources>
<Endpoints>
  <!-- This endpoint is used by the communication listener to obtain the port on which to 
       listen. Please note that if your service is partitioned, this port is shared with 
       replicas of different partitions that are placed in your code. -->
  <Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8080" />
</Endpoints>

I added a Probe as follows:

enter image description here

... and this LB rule

enter image description here

I'm not seeing any logs, errors or anything so I'm stumped at the moment. Any help will be greatly appreciated.

1

1 Answers

2
votes

Turns out that my issue was caused by the "Path" setting on the probe. My API didn't have a default controller so the path "/" returned a 404.

I created a Ping controller in my web api and updated the path on the Probe to "/ping", and that got it working.

I find it a bit strange that there were no "health" issues reported in the "Service Fabric Explorer", or perhaps I'm missing something here?