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

发布于 2024-08-16 01:12:54 字数 303 浏览 8 评论 0原文

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

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

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

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

我如何配置它,以便生产将使用 HTTPS 端点,而开发将使用 HTTP 端点来提供同一服务?

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

Is there any way I can accomplish the following:

Single Web.config file for a .net web application.
the web application exposes a number of WCF services for consumption by javascript.

Production requires ssl, so all these services are forced over ssl.

Development does not allow ssl, (ASP.NET development server)

How can I configure this so that production will utilize an HTTPS endpoint, and development will utilize an HTTP endpoint for the same service?

Adding two endpoints to the same service doesn't work, because when it tries to connect to the HTTP endpoint it throws an error since the asp.net development server doesn't support the https endpoint.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏见 2024-08-23 01:12:54

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

一开始有点尴尬,控制力较差,但最终效果更好。

这是关键的一行,我将其放入我的 .svc 文件中:

<代码>
工厂=“System.ServiceModel.Activation.WebScriptServiceHostFactory”

I solved this by using a ServiceHostFactory to generate the appropriate bindings for me.

It was a little awkward at first, having less control, but works out better in the end.

this is the line that was key, I put it in my .svc file:


Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"

凉宸 2024-08-23 01:12:54

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

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

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

I'm not certain that this is the best solution to your problem, but one way of doing this would be to declare in the config file a variable to indicate what environment this is running in (dev or prod). If you configure two endpoints, you could say in your hosting code,

if environment=="dev", then host the service on endpoint A.

if environment=="eval", then host the service on endpoint B.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文