2017-08-08 67 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进行往返,它可能在本地工作。 –