具有多租户的Orchard模块中的WCF服务

时间:2016-12-19 21:32:11

标签: wcf orchardcms orchard-modules

我有一个在模块中定义的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();
}

1 个答案:

答案 0 :(得分:0)

我能够通过向IIS添加指向相同文件系统位置的其他站点并使用相同的应用程序池来解决此问题。然后,这个新站点引用非默认的租户,现在将使用正确的基址创建服务。