2009-11-04 129 views
0

我在客户端asp.net网站中添加了对WCF服务的引用。调用WCF服务 - 服务实例

现在,我只是实例化WCF服务在每个服务方法调用为:

TemplateServiceClient objTemplateService = new TemplateServiceClient(); 
objTemplateService.MethodCall(); 

我不知道有关性能下降,原因是上面。

如果它将成为一个性能问题,你能否建议我一个更好的方法来调用我的服务方法。

谢谢!

回答

3

了解性能的唯一方法就是测试它,所以如果您有任何疑问,应该这样做。

如果不知道自己在做什么以及如何使用,很难知道。

Web服务客户端是另一个对象,这样你可以做所有常见的东西:

  • 你与每一次新的实例做什么;
  • 如果服务调用的方法相同,则重用该对象;
  • 将该对象作为类中的字段创建;

就个人而言,我倾向于第二个为太多的事情要结束了,但适合我的用户配置文件。

+0

感谢您的回复。我创建了一个类级别的对象。但是因为我打电话时我正在用不同的方法进行服务调用,所以我需要在每种方法中实例化它。任何解决方法来避免这种情况? – iniki 2009-11-04 16:56:12

+0

我认为这个问题应该是:你需要吗?考虑一下你的维护。如果每次都创建对象的新实例,则可以合理确定它处于正确的状态,并且没有通过其他方法进行更改。我想这取决于事情是如何建立在你身上的,但是说一些人在六个月内出现并做出了一项影响Web服务的变化,但并没有检查每一种方法 - 她可能会引入各种错误。 – serialhobbyist 2009-11-04 17:13:01

+0

你可以创造一些可怕的全球/静态/单身的东西,并从任何地方访问它,但你应该?可能不会。性能可能是主要关注的问题,但如果不是问题,维护应该在那里。 – serialhobbyist 2009-11-04 17:15:53

0

只要性能可以接受,这不是问题。不要过度优化,即使不知道是否确实存在性能问题...

衡量你的表现,看看它是否是。

每个通话场景确实是WCF的首选和推荐场景 - 它只是最好的那种方式,没有多余的状态服务,会话或单身 - 它只是工作和扩展到相当好甚至相当沉重的负载。