繁体   English   中英

web 方法和数据库连接

[英]web methods and DB connections

如果我在 web 服务方法的一次调用中打开一些全局可行的数据库连接,并且如果同时在第二次调用此方法时,它会在此全局可行中看到此实例吗? 这些资源是共享的还是每个呼叫都有自己的资源?

谢谢

全局变量往往就是这样,全局的。 如果您的全局变量是 C# static ,它将由 AppDomain 中的 web 服务方法共享。 这显然容易出错 - 如果每个 web 服务方法在需要时获得一个新连接,并在方法完成之前关闭它,那就更好了。

通常 Web 服务使用 Http 请求。 在这种情况下,可能每次调用都必须定义 object,因为服务是无状态的......

对于服务,最好使用某种数据库连接管理。 通常您可以根据每个请求调整打开/关闭新连接。 请注意,您很可能会使用逻辑连接和连接池 这些有助于显着减少打开物理连接的负载。 物理连接是在没有您直接控制的情况下创建的,并且是真正的重量级操作。

不要将连接放在共享的 static 变量中,因为连接通常是一次性资源,这意味着您必须处置它。 如果出现问题并且您与数据库的连接已损坏,那么您随后的所有调用都将被视为厄运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM