다음은 정확한 응용 프로그램 시나리오입니다.ResolutionException - "*********** 유형의 필수 종속성을 확인할 수 없습니다"
저는 ServiceStack 3.9.48과 AutoFac 4.6.0을 사용하여 REST 서비스를 개발했습니다.
이 코드는 잘 작동하고, 조건이 만족되지 않은 경우 예외를 로깅 볼 수
public AppHost()
:base("My Service Host", typeof(NotificationService).Assembly)
{
var builder = new ContainerBuilder();
builder.RegisterType<ConfigurationProvider>().As<IConfigurationProvider>();
builder.RegisterType<Logging>().As<ILogging>();
IoCContainer = builder.Build();
}
public override void Configure(Container container)
{
using (var scope = IoCContainer.BeginLifetimeScope())
{
var _logging = scope.Resolve<ILogging>();
JsConfig.EmitCamelCaseNames = true;
base.RequestFilters.Add(delegate (IHttpRequest req, IHttpResponse res, object dto)
{
HandleUncaughtExceptionDelegate uncaughtExceptionDelegate = null;
if (DateTime.Now.Year <= 2019)
{
if (uncaughtExceptionDelegate == null)
{
uncaughtExceptionDelegate = delegate (IHttpRequest request, IHttpResponse response, string operationName, Exception ex)
{
res.StatusCode = 0x191;
res.Write("Error: This service is unavailable till 2019: " + operationName);
};
}
base.ExceptionHandler = uncaughtExceptionDelegate;
HttpResponse originalResponse = res.OriginalResponse as HttpResponse;
originalResponse.SuppressFormsAuthenticationRedirect = false;
res.End();
}
});
base.ServiceExceptionHandler = delegate (object request, Exception exception)
{
_logging.Log(exception);
return DtoUtils.HandleException(this, request, exception);
};
}
}
AppHostBase
에서 상속 AppHost의 코드는 다음. 나는 다음과 같은 호출합니다되는 API 엔드 포인트로 전화를 걸하려고 할 때
그러나 문제가있다 :
public class NotificationService: Service
{
private IConfigurationProvider _configurationProvider;
public NotificationService(IConfigurationProvider _configurationProvider)
{
_configurationProvider = configurationProvider;
}
public object Post(SendEventNotification request)
{
return new SendEventNotificationResponse { SentStatus = SendNotification(_configurationProvider.GetValue("EncId")) };
}
}
이 말을 나에게 오류를 제공 -
형 IConfigurationProvider의필수 의존성 을 해결할 수 없습니다.
아무도 이유를 제시 할 수 있습니까? 나는 AppHost 동안 초기화 된 인스턴스가 지속되지 않았다고 믿는다.
확실한 것은 있지만 뭔가 빠져 있지만 알아낼 수는 없습니다.
이 문제에 대한 도움을 주시면 감사하겠습니다.
감사와 안부,
Nirman