2013-02-15 1 views
1

Подключен к веб-сайту и простаивает в течение 30 минут, а затем пытается получить доступ к сущностям. Я получаю следующую ошибку.Ошибка: соединение SQL Azure нарушено. После повторного подключения и доступа к объекту объекта произошла ошибка

Структура объекта Ошибка при выполнении определения команды. Подробнее см. Внутреннее исключение. Внутреннее исключение { «Неверное имя объекта 'dbo.TableName'.»}

Пример кода

Static Class Azure 
{ 
public static CrmEntities ConnectCustomerEntity() 
    { 
     CrmEntities customerEntity = null; 
     policy.ExecuteAction(() => 
      { 
       try 
       { 
        var shardId = GetShardId(); 

        customerEntity = new CrmEntities(ConnectionStringCustomerDB()); 
        string federationCmdText = @"USE FEDERATION Customer_Federation(ShardId =" + shardId + ") WITH RESET, FILTERING=ON"; 

        customerEntity.Connection.Open();      
        customerEntity.ExecuteStoreCommand(federationCmdText); 
       } 
       catch (Exception e) 
       { 
        customerEntity.Connection.Close(); 
        SqlConnection.ClearAllPools(); 
        //throw e; 
       } 
      }); 
     return customerEntity; 
    } 

public static CrmEntities DBConnect(CrmEntities _db) 
    { 
    try{ 
     if (_db == null) 
      _db = Azure.ConnectCustomerEntity(); 
     if ((_db.Connection.State == ConnectionState.Broken) || (_db.Connection.State == ConnectionState.Closed)) 
     {    
      SqlConnection.ClearAllPools(); 
      _db = Azure.ConnectCustomerEntity(); 
     } 
    else 
     { //This code is to find out any issues in connection pool database connection 
     string sqlCmdText = @"select top 1 Id from Project"; 
      _db.ExecuteStoreCommand(sqlCmdText); 
     } 
     } 
    catch (Exception ex) 
     { 
      _db.Connection.Close(); 
      SqlConnection.ClearAllPools(); 
      _db = Azure.ConnectCustomerEntity(); 
     } 
     return _db; 
} 

} 

Mvc контроллер. Следующий код я получаю это исключение, через 30 минут

public class FilterController : Controller 
{ 
public ActionResult GetFilters(string entityName,string typeFilter) 
    { 
     _crmEntities=Azure.DBConnect(_db); 
     var query = _db.FilterFields.Where(filter => filter.TableId == tableId).ToList(); // Here I am getting that exception 
    } 
} 

Я не знаю, почему я получаю это исключение. Я пробовал все возможности. Ничего не помогло. Я действительно ударил этим. Если кто-нибудь знает, пожалуйста, сообщите, чтобы ваши взгляды вышли из этого исключения.

Спасибо заранее.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^