2

看,我关心的是使用同一个网站/WebApplication 中的 WebService 更快/最好的方法。

想象一下,我在同一个网站中有 20 个页面和 1 个 WebService..

在每个页面中,我都必须使用 WebService 中的所有内容......

但我关心的是它应该如何消费?我应该添加在同一个网站中的 WebService 的 webreference,并使用该 Webservice 的代理生成的所有内容。或者我应该像普通类一样直接实例化 WebService 并使用这些方法?

我知道(或者我认为)最佳实践是将其用作 SOA especifications 的 webService 并在我的解决方案中的另一个网站中使用 WebService。

但我的推理是,使用 WebService 需要通过该协议发出请求的 http 协议,并且 Web 服务序列化响应......

我猜要注意的重要一点是,My WebService 的 webmethods 可以返回多个记录/信息/数据,因此序列化步骤可能是一个问题或性能问题。

我正在寻找这样做的最佳方法。

我应该将 WebService 移动到另一个站点并在我的页面中使用它吗?即使性能会受到影响?或者我不应该?如果是,多少钱?它会花费吗?还是影响不大?

如果我应该移动 WebService,如果我像 http:// localhost .. 而不是 ... 192.168.1.1 或 Web 域而不是 localhost 一样使用它,它会影响吗?它是一样的还是会影响某些东西?

在此先感谢您的帮助。

4

1 回答 1

2

但我的推理是,使用 WebService 需要通过该协议发出请求的 http 协议,并且 Web 服务序列化响应......

你的推理绝对正确。如果您在同一个项目中,则无需在无用的 HTTP 请求中浪费 CPU 周期。您可以直接调用您的 Web 服务方法已经使用的同一个存储库层。如果您需要非 .NET 客户端来使用它,您仍然可以使用可互操作的格式(例如 SOAP)公开 Web 服务,否则我认为没有必要这样做。实际上,您为什么首先开发 Web 服务?我猜你对未来的消费者有一些期望?经验法则是始终将可重用的服务域逻辑封装到服务层中,然后根据需要使用它的人,直接使用实现此功能的程序集(如果我们谈论的是 .NET 客户端),或者如果你需要互操作性,它'

但是,如果您对确切的数字感兴趣,请不要犹豫,执行一些负载测试,并比较直接从您的 cinsuming Web 应用程序中直接调用 .NET 方法与使用可互操作协议的 HTTP 请求之间的响应时间。

备注:WebReference 客户端现已弃用。如果您决定在整个网络连接中调用您的服务,则应该使用 ServiceReference。

于 2012-07-03T22:24:37.203 回答