确定暴露basichttpbinding的wcf服务的主机类型(自主机与iis)

时间:2013-04-25 20:33:54

标签: wcf hosting configurationmanager basichttpbinding

有一项服务,将一个端点暴露为基本的http绑定。 我有两种类型的托管(selfhost for test,iis for production)

我正在使用configurationmanager,它必须从config读取服务模型部分。 当然,当它是自托管时,配置文件是myapp.exe.config,它位于与执行程序集相同的路径中,当它在iss下运行时,它是web.config。

所以我想使用configurationmanager.openmappedexeconfiguration并为它提供配置路径。

但我需要了解现在使用的托管类型。没有httpcontex.current,因为它是基本的http绑定。 (如果是的话,我将能够使用它来检查它是否为空,如果不是,则为主机托管)。

如何解决问题?

1 个答案:

答案 0 :(得分:0)

我有点困惑:ConfigurationManager应该知道从bith appp和web config读取appSettings。

你也可能不需要自己阅读服务模型部分 - 让wcf为你做。它也可以关心配置。

您还可以在代码中设置服务详细信息 - 以避免配置搜索。

如果您别无选择(我将其用作最后一个选项) - 可能会尝试使用Assembly的运行exe路径,例如 Assembly.GetExecutingAssembly()