我们有两个使用相同数据库的项目。
由于其中一个项目经历了繁重的数据库操作,另一个项目可能会执行以下小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目前正在做繁重的工作。
现在我的问题是如何解决这个问题?有哪些选项可以让两个人在不影响(太多)另一个的情况下完成各自的工作?
答案 0 :(得分:1)
SQL服务代理可能是您的选择。请查看:http://technet.microsoft.com/en-us/library/ms166071(v=sql.105).aspx并告诉我这是否适用于您的方案。