2017-08-08 72 views
0

返回404我有一個服務織物集羣在本地工作正常,但在部署到Azure中的WebAPI無狀態的服務回報服務織物的服務存在,但在調用時

404 FABRIC_E_SERVICE_DOES_NOT_EXISTS 

然而,SF集羣表明服務實際上不存在並且啓動並運行 下面是我的服務清單的服務

<?xml version="1.0" encoding="utf-8"?> 
<ServiceManifest Name="SvcWebAPIPkg" 
      Version="1.0.9" 
      xmlns="http://schemas.microsoft.com/2011/01/fabric" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<ServiceTypes> 
<!-- This is the name of your ServiceType. 
    This name must match the string used in RegisterServiceType call in 
Program.cs. --> 
<StatelessServiceType ServiceTypeName="SvcWebAPIType" /> 
</ServiceTypes> 

<!-- Code package is your service executable. --> 
<CodePackage Name="Code" Version="1.0.9"> 
<EntryPoint> 
    <ExeHost> 
    <Program>SvcWebApi.exe</Program> 
    <WorkingFolder>CodePackage</WorkingFolder> 
    </ExeHost> 
</EntryPoint> 


</CodePackage> 

    <ConfigPackage Name="Config" Version="1.0.9" /> 

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

    </Endpoints> 
    </Resources> 
</ServiceManifest> 
+0

你是如何訪問它的? – Mardoxx

+0

您使用什麼地址訪問該服務? –

+0

http://myaddress.com/api/BriefcaseApi/GetString/ @Mardoxx這是一個簡單的調用集羣內的自我託管的WebAPI – Kayani

回答

0

如果這就是你如何訪問您的服務的方式 - 「myaddress.com/api/BriefcaseApi/GetString」 - 這是不正確。 SF試圖解決'api'作爲註冊服務,這顯然不存在。對?這裏是你應該如何構建URL的方式 -

http(s)://<Cluster FQDN | internal IP>:Port/<ServiceInstanceName>/<Suffix path>?PartitionKey=<key>&PartitionKind=<partitionkind>&ListenerName=<listenerName>&TargetReplicaSelector=<targetReplicaSelector>&Timeout=<timeout_in_seconds> 

在你的情況,這裏是如何可能看起來像 -

HTTP(S)://myaddress.com/SvcWebAPI/api/BriefcaseApi/GetString

在此處查找更多信息 - Reverse proxy in Azure Service Fabric

+0

服務已經存在作爲它的默認服務,所以我不必構造url反向代理。 – Kayani

+0

此外,相同的網址在本地工作 – Kayani

+0

@Kayani我想看看你的聽衆配置和SF集羣清單。如果請求直接路由到機器而不通過LB進行往返,它可能在本地工作。 –