等待操作超时:2个项目,相同的数据库,重载

时间:2014-09-18 14:24:33

标签: c# asp.net-mvc database timeout

我们有两个使用相同数据库的项目。

由于其中一个项目经历了繁重的数据库操作,另一个项目可能会执行以下小Task个请求:

public async Task<ActionResult> GetManaIconAsync(string _mana)
{
    string mana = _mana.Replace("/", "");

    byte[] imageData = await Task.Run<byte[]>(() => mImateManager.GetManaByName(mana));

    return File(imageData, "image/png");
}

public byte[] GetManaByName(string _mana)
{
    using (MyDb db = new MyDb())
    {
        db.Database.Connection.Open();

        IQueryable<ITEM_IMAGES> imageQry = from img in db.ITEM_IMAGES
                       where img.ITEM_IMAGE_TYPE == (int)ImageTypes.Mana
                       select img;

        if (!imageQry.Any())
        {
            return null;
        }

        return imageQry.First(_item => _item.ITEM_NAME == _mana).ITEM_IMAGE;
    }
}

当点击if(!imageQry.AnY())说等待操作超时时,project2会崩溃,这是正常的,因为project1目前正在做繁重的工作。

现在我的问题是如何解决这个问题?有哪些选项可以让两个人在不影响(太多)另一个的情况下完成各自的工作?

1 个答案:

答案 0 :(得分:1)

SQL服务代理可能是您的选择。请查看:http://technet.microsoft.com/en-us/library/ms166071(v=sql.105).aspx并告诉我这是否适用于您的方案。