Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 托管在Azure上的服务结构WebAPI服务无法通过公共IP和本地主机访问_C#_Azure_Azure Service Fabric_Asp.net Core Webapi - Fatal编程技术网

C# 托管在Azure上的服务结构WebAPI服务无法通过公共IP和本地主机访问

C# 托管在Azure上的服务结构WebAPI服务无法通过公共IP和本地主机访问,c#,azure,azure-service-fabric,asp.net-core-webapi,C#,Azure,Azure Service Fabric,Asp.net Core Webapi,我正在尝试创建一个ASP.NET核心WebAPI有状态服务,该服务将托管在Azure上,并可从应用程序服务应用程序访问。我已通过Visual Studio成功创建了Service Fabric群集,并指定了默认端口80和83,并在其上发布了我的应用程序。是可访问的,并显示处于正常状态的节点和应用程序 <Endpoint Name="ServiceEndpoint" Protocol="http" Type="Input" Port="8210" /> 我使用Kestrel作

我正在尝试创建一个ASP.NET核心WebAPI有状态服务,该服务将托管在Azure上,并可从应用程序服务应用程序访问。我已通过Visual Studio成功创建了Service Fabric群集,并指定了默认端口80和83,并在其上发布了我的应用程序。是可访问的,并显示处于正常状态的节点和应用程序

    <Endpoint Name="ServiceEndpoint" Protocol="http" Type="Input" Port="8210" />
我使用Kestrel作为web主机使用的服务器。除了无法访问的公共IP之外,我主要关心的是,如果没有Service Explorer提供的长数据,localhost端点将无法工作。也许问题不在Azure服务结构配置中,而是服务本身

原因可能是什么?我是否使用了错误的URL


更新:我应该澄清,只有在使用ASP.NET核心状态ful服务模板时才会出现问题。我将ASP.NET核心状态less服务上载到localhost和Azure并访问所有api端点都没有问题。

我建议使用内置的

确保传递分区键&kind,以指示要访问的有状态服务副本

http://:Port//?PartitionKey=&PartitionKind=&ListenerName=

您的服务很可能可以通过以下方式访问:

http://appname.region.cloudapp.azure.com/myservice/api/values?PartitionKey=0&PartitionKind=Int64Range

分区键注意:

对于分区服务,这是 要访问的分区。注意,这不是分区 ID GUID。对于使用 单件分割方案


为了排除端口问题,请向映射8210到8210的负载平衡器添加一个规则。我无法添加映射到8210的其他规则,因为它已经映射,并且映射必须是唯一的。以下是我当前的LB规则和运行状况探测:使用routeprefix和route重定向到特定api,并将路由连接到service fabric节点公开的端点。假设api/values/get是您的路由,然后转到部署在服务结构上的有状态服务,检查其端点。它可能看起来像localhost:8030。然后向localhost:8030/api/Values/getJust查询信息,我们使用无状态服务公开端点或创建web api,对于后端逻辑,我们在项目中使用有状态服务;事实上,我对无状态服务没有问题——它们工作得很好。这是我无法通过localhost(或Azure)发布或访问的有状态模板。
http://appname.region.cloudapp.azure.com/
http://appname.region.cloudapp.azure.com/api/values
51.136.XX.XXX/api/values
51.136.XX.XX:80/api/values