我正在尝试从Asp.Net Core Stateless API调用无状态服务。我无法达到无状态服务的方法。
这是Controller动作方法,它将调用无状态服务方法。
// GET api/values
[HttpGet]
public async Task<string> GetAsync()
{
var repository = ServiceProxy.Create<IRepository>(
new Uri("fabric:/Application1/Stateless1"));
return await repository.GetSomething();
//return new string[] { "value1", "value2" };
}
这是无状态服务中的方法。
internal sealed class Stateless1 : StatelessService, IRepository
{
public Stateless1(StatelessServiceContext context)
: base(context)
{ }
public async Task<string> GetSomething()
{
return await Task.FromResult("HELLO FROM SERVICE!");
}
}
听众代码是
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return this.CreateServiceInstanceListeners();
}
我能够点击控制器Get方法,但它在repository.GetSomething()方法中被触及,并且无法访问该方法。我不知道我在这里失踪了什么。
任何指针都会非常有用。提前致谢
更新
清单文件:
答案 0 :(得分:2)
您需要更改CreateServiceInstanceListeners ...
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return this.CreateServiceRemotingInstanceListeners();
}
它需要远程监听器,因为使用ServiceProxy是一个远程调用。