wcf - 创建以不同方式托管的 WCF 服务

标签 wcf iis-7

我有一个 WCF 服务,它以编程方式创建其端点,而不是使用配置文件 - 我正在研究这一点,因为我们的现场工程师很容易破坏 XML,并且我们可能在不同的场景中使用不同类型的绑定(bind)。

这在自托管环境(控制台应用程序、Windows 应用程序)和作为 Windows 服务中运行良好。

我可以使用 IIS 中的服务来执行此操作吗?还是必须为每个端点提供 .SVC 文件?

客户端的端点地址也必须包含 .SVC 扩展名吗?

这不是供第三方使用的服务,仅供我们的客户端组件使用。我们可能稍后会公开部分 API,但一开始不会。

最佳答案

如果您使用的是 .NET Framework 4.0(及更高版本),则可以使用 ASP.NET 路由集成来定义使用自定义 ServiceHostFactory 的服务。执行。您需要一些东西:

  • 在 web.config 中,设置属性 aspNetCompatibilityEnabled关于<system.serviceModel / serviceHostingEnvironment>元素至 true
  • 添加global.asax/global.asax.cs文件,并在Application_Start中添加新的 ServiceRoute到 ASP.NET RouteTable.Routes收藏。服务路由要求您定义一个新的服务主机工厂,您可以在其中以编程方式定义端点。

这样,您就可以拥有地址中不带“.svc”的端点。您还可以在不使用路由的情况下使用服务主机工厂,方法是为每个服务(而非端点)创建 .svc 文件,并使用 Factory <%@ ServiceHost 中的属性指令。

有关服务主机工厂的更多信息,请查看 http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspx 上的帖子.

关于wcf - 创建以不同方式托管的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144730/

相关文章:

c# - 每个连接的 MVC 4 IIS 内存泄漏

asp.net - ASP.NET 中的大数组支持

c# - 如何使用 wcf 服务获取 facebook 授权码

wcf - NotFound 错误和编译失败的问题

c# - 如何在 WPF 后端正确使用 .NET 数据注释进行数据验证?

wcf - 在 WCF 中运行重复性后台任务的好方法?

iis-7 - 如何以内置管理员身份运行 IIS 7 应用程序池?

iis-7 - IIS 7权限:如何为目录设置正确的权限?

c# - HTTP 415 无法处理消息,因为内容类型 'application/json; charset=utf-8' 不是预期的类型 'text/xml; charset=utf-8'

iis - IIS7 中的文件安全(IP 地址访问限制)