【发布时间】:2017-11-02 08:17:36
【问题描述】:
我使用以下示例为我的Stateful Service 配置通信侦听器:
相关sn-p:
public Task<string> OpenAsync(CancellationToken cancellationToken)
{
var serviceEndpoint = this.serviceContext.CodePackageActivationContext.GetEndpoint(this.endpointName);
var protocol = serviceEndpoint.Protocol;
int port = serviceEndpoint.Port;
if (this.serviceContext is StatefulServiceContext)
{
StatefulServiceContext statefulServiceContext = this.serviceContext as StatefulServiceContext;
this.listeningAddress = string.Format(
CultureInfo.InvariantCulture,
"{0}://+:{1}/{2}{3}/{4}/{5}",
protocol,
port,
string.IsNullOrWhiteSpace(this.appRoot)
? string.Empty
: this.appRoot.TrimEnd('/') + '/',
statefulServiceContext.PartitionId,
statefulServiceContext.ReplicaId,
Guid.NewGuid());
}
...
服务清单 sn-p:
<Endpoints>
<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8090" />
<Endpoint Name="ReplicatorEndpoint" />
</Endpoints>
现在在部署我的应用程序时,我可以通过各种 guid 在 URL 上获取服务:
如果我尝试自行访问 http://localhost:8090/,则会收到错误 503
有什么方法可以将通用 URL 映射到主分区和副本?或者在有状态服务中是不可能的?在 Stateless 中,您可以立即使用它。
【问题讨论】:
标签: c# routes owin azure-service-fabric service-fabric-stateful