2016-12-19 5 views
1

У меня есть служба WCF, определенная в модуле. Когда мы пытаемся вызвать эту услугу у нестандартного арендатора, менеджер контента всегда ссылается на наши настройки арендаторов по умолчанию. В отладке, внутри OrchardServiceHostFactory, Я замечаю, что он заканчивает получение настроек для арендатора по умолчанию, потому что базовый адрес, который передается в метод CreateServiceHost, всегда является нашим арендатором по умолчанию.Служба WCF в модуле Orchard с многократной арендой

Учитывая, что я не полностью знаком с WCF, есть ли параметр конфигурации, который мне не хватает, что вызывает создание службы WCF с адресом арендаторов по умолчанию вместо арендатора, не являющегося дефолтом?

Соответствующий код:

private static readonly Route _SITEMAP_SERVICE_ROUTE = new ServiceRoute("api/SitemapService", new OrchardServiceHostFactory(), typeof(ISitemapService)) 
{ 
    DataTokens = new RouteValueDictionary 
    { 
     { 
      "area", "Project.Localization" 
     } 
    } 
}; 

public interface ISitemapService : IOrchardSitemapService, IDependency 
{ 
} 

[ServiceContract] 
public interface IOrchardSitemapService 
{ 
    [OperationContract] 
    int GetNavigableContentCount(); 

    [OperationContract] 
    List<SitemapEntry> GetNavigableContent(); 
} 

ответ

0

я был в состоянии исправить это, добавив дополнительный сайт в IIS, которое указывает на то же место файловой системы, и используется один и тот же пул приложений. Затем этот новый сайт ссылается на арендатора, не являющегося дефолтом, и теперь служба будет создана с правильным базовым адресом.