gpt4 book ai didi

.net - SOAP Web 服务 (.net) 中数据库连接的正确位置

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:42 27 4
gpt4 key购买 nike

我有一个 asp.net 网站和一个数据库。

该网站有一个网络服务,用于存储来 self 的软件的反馈。

据我所知,IIS 会为顺序请求重用创建的对象。这给出了在 Web 服务的构造函数中连接到数据库、正确实现 Dispose() 方法并使用连接为每个 [WebMethod] Request() 提供服务的原因。当前版本遵循此模式。

另一方面,我担心对 web 服务的顺序请求之间的时间跨度会大于数据库连接超时。因此,我需要捕获一些异常并重新创建连接(对吗?)

另一种方法是在每个 [WebMethod] Foo() 中连接和关闭。但我担心这可能会影响性能。

综上所述,我应该在构造函数中连接到数据库并在 Dispose() 中关闭连接还是为每个请求连接并关闭数据库?

最佳答案

您应该为每个请求连接。

页面实例仅用于单个请求,因此您不能在其中存储连接以重用它。您必须将它存储在其他地方,这非常复杂(具有线程安全等),绝对不值得。

当你关闭连接时,实际的数据库连接被返回到连接池中。连接池负责在连接重新用于您创建的下一个连接对象时正确重置连接,以便您获得一个事件的连接,并且未被之前的使用所污染。

连接池工作正常,您应该使用它而不是尝试自己创建。

您无需执行任何特殊操作即可使用连接池,它内置于数据库驱动程序中。像往常一样打开和关闭连接对象。

关于.net - SOAP Web 服务 (.net) 中数据库连接的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com