ServiceStack中是否有报告错误/请求功能的地方?
使用ServiceStack时,我的ServiceStack.ServiceInterface.Service对象抛出了这个错误: ExecuteReader需要一个开放且可用的连接。连接的当前状态已关闭。
Service类包含一个Db属性(在示例中使用),它是一个IDbConnection - 数据库连接不是线程安全的。
我很想知道为什么这种非线程安全的访问数据库的方法包含在Service类中。这对于处理多个Web服务请求没有好处。
答案 0 :(得分:2)
Service.cs将尝试解析将为您创建新IDbConnection的IDbConnectionFactory,因此这里没有线程安全问题。
如果您想以不同方式处理它,可以覆盖它。
private IDbConnection db;
public virtual IDbConnection Db
{
get { return db ?? (db = TryResolve<IDbConnectionFactory>().OpenDbConnection()); }
}
修改强> 也许不清楚OrmLiteConnectionFactories是否与 OpenDbConnection 调用一起自动创建一个新连接,但它们确实: