Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF的设计问题_Wcf_Design Patterns - Fatal编程技术网

WCF的设计问题

WCF的设计问题,wcf,design-patterns,Wcf,Design Patterns,我有一个引用包含服务契约的DLL的服务,该实现位于IIS中托管的服务中 我使用的客户端也引用了相同的DLL 我正在使用channel factory调用服务方法,我的服务器端点在我的客户端的客户端部分中手动定义app.config 在启动任何数据库操作之前,我的所有服务方法都需要知道连接字符串。现在,我不想在每个函数请求上创建连接,因为它会降低性能,而且我的服务对于我的大多数其他组件来说都是通用的,我希望以一种通用的方式创建连接 在WCF中有什么实用程序或设计模式可以使用吗?我不确定我是否完全理

我有一个引用包含服务契约的DLL的服务,该实现位于IIS中托管的服务中

我使用的客户端也引用了相同的DLL

我正在使用channel factory调用服务方法,我的服务器端点在我的客户端的客户端部分中手动定义
app.config

在启动任何数据库操作之前,我的所有服务方法都需要知道连接字符串。现在,我不想在每个函数请求上创建连接,因为它会降低性能,而且我的服务对于我的大多数其他组件来说都是通用的,我希望以一种通用的方式创建连接


在WCF中有什么实用程序或设计模式可以使用吗?

我不确定我是否完全理解你的问题,但根据你上面写的内容,你可能想得太多了

如果您的服务方法需要知道连接字符串(在进行任何数据库操作之前),为什么不将其放在服务的Web.config文件中呢

对我来说,这似乎是最有意义的。除非我遗漏或不知道其他因素/考虑因素

另外,根据您访问数据库的方式,.NET实现连接池(至少在ADO.NET中)。请看这里:


实际上,我建议在进行db调用之前,尽可能晚地打开数据库连接,并尽快再次关闭连接。不要在服务启动时打开连接,并将其保持长时间打开!马克,你总是乐于助人,非常感谢