如果我的 MVC 项目正在引用(常规项目引用而不是服务引用)WCF 服务项目,我没有使用 HTTP 进行通信,对吗?
我想让我的 WCF 服务通过 web 上的 HTTP 暴露给多个移动和 3rd 方客户端,但是由于更高的性能,我想在没有 HTTP 的情况下使用我自己的应用程序。
我目前正在做什么来实现这一目标?
如果我的 MVC 项目正在引用(常规项目引用而不是服务引用)WCF 服务项目,我没有使用 HTTP 进行通信,对吗?
我想让我的 WCF 服务通过 web 上的 HTTP 暴露给多个移动和 3rd 方客户端,但是由于更高的性能,我想在没有 HTTP 的情况下使用我自己的应用程序。
我目前正在做什么来实现这一目标?
如果您使用的是项目参考(即它出现在“参考”文件夹下而不是“服务参考”文件夹下),那么您没有使用 HTTP。在这种情况下,您正在直接调用程序集/DLL。我通常开发我的应用程序,以便有一个服务层(有时称为应用程序层),它基本上模仿了 Web 服务提供的 API。如果我不想分发此服务,可以直接引用此程序集。那么实际的 Web 服务只是服务层之上的一个薄层,它提供实际的 WCF 绑定和契约供分布式客户端调用。
这取决于您如何添加它。如果您是通过“添加服务引用”完成的,并且您的 app/web.config 中充斥着 WCF 客户端设置,那么它可能会通过 HTTP。您应该使用您的配置检查传输和地址设置。如果您看到 HTTP,那么您使用的是 HTTP。
即使您切换到命名管道,仍然存在开销。用于本地通信的最快传输可能是Roman Kiss 开发的NullTransport示例。