Служба WCF в модуле Orchard с несколькими арендаторами

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

Учитывая, что я не совсем знаком с 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();
}

person DavidAndroidDev    schedule 19.12.2016    source источник


Ответы (1)


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

person DavidAndroidDev    schedule 21.12.2016