【问题标题】:Is this a WCF Service?这是 WCF 服务吗?
【发布时间】:2015-07-23 18:59:48
【问题描述】:

我的问题是关于 WCF 服务的。我最近参与了一个使用 WCF 服务的 ASP.NET 项目(我之前没有太多接触过它们),我对什么是 WCF 服务以及什么不是。

我的困惑来自我们使用的 WCF 服务,它似乎不是典型的 WCF 服务。当我通过在 Visual Studio 中添加一个新项目(使用“WCF 服务应用程序”模板)来创建 WCF 服务时,它会生成一个带有 Service.svc 的项目,并且项目图标是 Web 服务图标。但是,对于我们拥有的另一个 WCF 服务(用于从 Ajax 到 ASP.NET 应用程序的调用),我们有一个项目,它看起来是一个普通的 C# 项目 - 它的图标是典型的 C# 项目图标,项目内容仅包括调用其他函数的 Service.cs 文件(不是普通的 .svc 扩展名)。此 Service.cs 文件实现了 ServiceContract/ServiceBehavior/OperationContract 属性,但是这可能是手动创建的 WCF 服务?

在主项目 Web.config 中有一个指向 Service.cs 文件的标记,而使用 WCF 模板创建的“真正的”WCF 服务不包含此标记。

希望我已经提供了足够的信息,以便有人告诉我所关注的项目是否实际上是 WCF 服务?

非常感谢!

【问题讨论】:

标签: c# asp.net .net web-services wcf


【解决方案1】:

WCF 代表 Windows 通信基础。 WCF是Web Services+MSMQ+.NET Remoting+COM+的组合。 如果将 WCF 与 Web 服务进行比较,则 Web 服务的限制是 Web 服务仅支持 HTTP 协议。2] 您不能在两种不同的协议上托管 Web 服务。3] Web 服务不提供安全性、并发控制等。

现在 wcf.. 您可以使用 wcf 模板创建 wcf 服务,而其他是类库项目。如果您使用类库,那么您可以通过多种方式托管它,例如 Self Hosting、Host On IIS 即 .svc 文件,但如果您使用包含 .正如您在问题中提到的 SVC 文件,您只能在 IIS 上托管该项目/服务....

【讨论】:

    【解决方案2】:

    WCF 服务可以自托管并在不实际使用 Visual Studio 项目模板的情况下创建。您需要做的只是一个适当属性化的接口,一个实现该接口的类,以及在您的项目中实例化ServiceHost 的代码。大多数人会将服务配置放在app.config 文件中,但也有一些人更喜欢在代码中配置服务。

    WCF 项目模板仅包含一些内容,因此您可以轻松地将服务托管在 ISS 或 Windows 激活服务 (WAS) 中。

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 2015-03-20
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多