单个web.config的WCF HTTPS和HTTP绑定

时间:2009-12-22 23:20:21

标签: c# wcf endpoints

我有什么方法可以完成以下任务:

.net Web应用程序的单个Web.config文件。 Web应用程序公开了许多WCF服务供javascript使用。

生产需要ssl,因此所有这些服务都被强制超过ssl。

开发不允许ssl,(ASP.NET开发服务器)

如何配置此项以便生产将使用HTTPS端点,并且开发将使用HTTP端点来获取相同的服务?

向同一服务添加两个端点不起作用,因为当它尝试连接到HTTP端点时会抛出错误,因为asp.net开发服务器不支持https端点。

2 个答案:

答案 0 :(得分:2)

我通过使用ServiceHostFactory为我生成适当的绑定来解决这个问题。

起初有点尴尬,控制力较弱,但最终效果更好。

这是关键的一行,我把它放在我的.svc文件中:

Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"

答案 1 :(得分:0)

我不确定这是解决问题的最佳方法,但是这样做的一种方法是在配置文件中声明一个变量来指示它在(dev或prod)中运行的环境。如果您配置两个端点,您可以在托管代码中说明

如果environment ==“dev”,则在端点A上托管服务。

如果环境==“eval”,则在端点B上托管服务。