【发布时间】:2019-04-10 00:01:23
【问题描述】:
这是我第一次尝试使用 Azure Service Fabric 和 .Net Core 创建微服务
在调试模式下它工作正常,我可以使用 Postman 访问 API 端点。但是,当我在将 Service Fabric 应用程序发布到 Service Fabric 本地集群(单节点)后尝试访问相同的端点时,它会在下面抛出异常
在尝试激活“UrlShortener.WebService.Controllers.UrlShortenerController”时,无法解析“UrlShortener.Services.Contracts.IUrlService”类型的服务。
我不确定这里缺少什么。
这是我的代码 sn-p
控制器
public class UrlShortenerController : ControllerBase
{
private readonly IUrlService _urlService;
public UrlShortenerController(IUrlService urlService)
{
_urlService = urlService;
}
}
服务
public class UrlService : EntityService<Url>, IUrlService
{
private readonly IUnitOfWork _unitOfWork;
private readonly IUrlRepository _repo;
private readonly IOptions<ShortenUrlConfig> _config;
public UrlService(IUnitOfWork unitOfWork, IUrlRepository repo, IOptions<ShortenUrlConfig> config)
: base(unitOfWork, repo)
{
_unitOfWork = unitOfWork;
_repo = repo;
_config = config;
}
}
服务扩展
public static IServiceCollection RegisterCustomServices(this IServiceCollection services)
{
services.AddScoped<IUrlService, UrlService>();
return services;
}
public static IServiceCollection RegisterRepositories(this IServiceCollection services)
{
services.AddScoped<IUrlRepository, UrlRepository>();
return services;
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.RegisterCustomContracts();
services.RegisterCustomServices();
services.RegisterRepositories();
// configure the system messages
services.Configure<ShortenUrlConfig>(Configuration.GetSection("ShortenUrlConfig"));
services.AddEntityFramework(Configuration.GetConnectionString("TestDBContext"));
}
【问题讨论】:
-
在您的代码中没有发现任何问题!它的神秘!
-
UrlService的类定义是什么?是否实现IUrlService?
标签: c# azure asp.net-core microservices azure-service-fabric