boh*_*nko 1 .net database asp.net entity-framework web-services
我有一个asp.net网站和一个数据库.
该网站有一个Web服务,用于存储我的软件的反馈.
据我所知,IIS将重复使用创建的对象进行顺序请求.这给出了在Web服务的构造函数中连接到DB的正确实现Dispose()
方法的原因,并使用连接来为每个服务器提供服务[WebMethod] Request()
.当前版本遵循这些模式.
另一方面,我担心顺序请求到webservice之间的时间跨度将大于数据库连接超时.因此,我需要捕获一些异常并重新创建连接(对吗?)
另一种方法是在每个中连接和关闭[WebMethod] Foo()
.但我担心这可能会影响性能.
总而言之,我应该在构造函数中连接到DB并关闭连接Dispose()
或连接并关闭每个请求的DB吗?
您应该为每个请求连接.
页面实例仅用于单个请求,因此您无法在其中存储连接以重复使用它.你必须将它存储在其他地方,这是如此复杂(具有线程安全性等),它绝对不值得.
关闭连接时,实际的数据库连接将返回到连接池.当连接池重新用于您创建的下一个连接对象时,它会负责正确地重置连接,这样您就可以获得一个活动且未被先前使用过的连接.
连接池工作正常,您应该使用它而不是尝试自己创建一个.
您无需执行任何特殊操作即可使用连接池,它内置于数据库驱动程序中.像往常一样打开和关闭连接对象.