我有什么方法可以完成以下任务:
.net Web应用程序的单个Web.config文件。 Web应用程序公开了许多WCF服务供javascript使用。
生产需要ssl,因此所有这些服务都被强制超过ssl。
开发不允许ssl,(ASP.NET开发服务器)
如何配置此项以便生产将使用HTTPS端点,并且开发将使用HTTP端点来获取相同的服务?
向同一服务添加两个端点不起作用,因为当它尝试连接到HTTP端点时会抛出错误,因为asp.net开发服务器不支持https端点。
答案 0 :(得分:2)
我通过使用ServiceHostFactory为我生成适当的绑定来解决这个问题。
起初有点尴尬,控制力较弱,但最终效果更好。
这是关键的一行,我把它放在我的.svc文件中:
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
答案 1 :(得分:0)
我不确定这是解决问题的最佳方法,但是这样做的一种方法是在配置文件中声明一个变量来指示它在(dev或prod)中运行的环境。如果您配置两个端点,您可以在托管代码中说明
如果environment ==“dev”,则在端点A上托管服务。
如果环境==“eval”,则在端点B上托管服务。