올리지 발행 : 때때로 https://orchard.codeplex.com/discussions/471475산발적 LifetimeScope이
을,이 오류가 발생합니다 : ". 인스턴스가 해결 될 수없고 이미 삭제 된 경우로 중첩 된 수명이 LifetimeScope에서 생성 할 수 없습니다" 가 일부 콘텐츠 항목을 질의 할 때.
protected IEnumerable<ContentItem> GetResources(string[] productFilters, string[] topicFilters, string[] techLevelFilters)
{
var cacheKey = BuildCacheKey(productFilters, topicFilters, techLevelFilters);
var resourceItems = ContentManager.Query().ForType("Resource").ForVersion(VersionOptions.Published).List();
if (productFilters != null && productFilters.Any())
{
resourceItems = resourceItems.Where(r => productFilters.Contains(GetTaxonomyFieldValue(r, productTaxonomy)));
}
if (topicFilters != null && topicFilters.Any())
{
resourceItems = resourceItems.Where(r => topicFilters.Contains(GetTaxonomyFieldValue(r, topicTaxonomy)));
}
if (techLevelFilters != null && techLevelFilters.Any())
{
resourceItems = resourceItems.Where(r => techLevelFilters.Contains(GetTaxonomyFieldValue(r, techLevelTaxonomy)));
}
return _cacheManager.Get(cacheKey, ctx =>
{
ctx.Monitor(_clock.When(TimeSpan.FromMinutes(CacheTime)));
return resourceItems;
});
}
이 위의 하나를 호출하는 기능의 일부가 시간에 오류 보여줍니다 :
이
는 항목 빌드 나의 기능입니다 그것은 산발적으로 발생 string[] newProductFilters = GetProductFilters(0);
if (newProductFilters != null && newProductFilters.Any())
{
productFilters = productFilters.Concat(newProductFilters).ToArray();
}
var resourceItems = GetResources(productFilters, topicFilters, techLevelFilters);
및 문제의 원인을 찾을 수 없습니다. 모든 조언이나 정보는 높이 평가 될 것입니다. 감사!
종속성을 어떻게 사용하는지 완전히 명확하지 않습니다. 어떻게 주사합니까? 평생 스코프를 직접 사용합니까? 더 많은 코드를 게시 할 수 있었습니까? 오류 추적을 스택하십시오. –