/ Помилка / ObjectContext у програмі Dev, але не при публікації - asp.net-mvc, asp.net-mvc-3, entity-framework, objectcontext

Помилка ObjectContext у програмі Dev, але не коли публікується - asp.net-mvc, asp.net-mvc-3, сутність-фреймворк, objectcontext

Враховуючи наведені нижче класи, запуск веб-сайту в Visual Studio видає мені таку помилку, коли home/index називається (це насправді внутрішній виняток).

A transport-level error has occurred when receiving results from the server. (provider: Shared Memory Provider, error: 0 - The handle is invalid.)

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)

Однак якщо я публікую точно такий самий код локально і потрапляю на сайт за допомогою WebMatrix, це працює нормально.

Я також використовую SQL Server 2008 Express, якщо це має значення. Будь ласка, повідомте, якщо потрібна додаткова інформація.

Контролер

public class HomeController : BaseController
{
public ActionResult Index()
{
var candidates = BusinessObj.AllOf<Candidate>().ToList();
return View(candidates);
}
}

BaseController

public class BaseController : Controller
{
protected ITestBusinessObject BusinessObj { get; set; }

public BaseController()
{
BusinessObj = new Business.TestBusinessObj();
}
}

TestBusinessObj (Entities - це клас EF edmx)

public class TestBusiness : ITestBusinessObject
{
private Entities DB = new Entities();
private string ContainerName = "Entities";

public IEnumerable<T> AllOf<T>() where T : class, new()
{
return DB.CreateObjectSet<T>(ContainerName.GetEntitySetName<T>());
}

private static string GetEntitySetName<T>(this string containerName) where T : new()
{
var name = new T().GetType().Name;
if (name.EndsWith("y"))
{
name = name.Substring(0, name.Length - 1) + "ies";
}
else
{
name = name + "s";
}
return string.Format("{0}.{1}", containerName, name);
}
}

Відповіді:

1 для відповіді № 1

Це почалося як коментар, оскільки це було більше якпропозиція, аніж рішення, але виходячи з відповіді, особистого досвіду з цим, здавалося б, випадковим явищем / кожні два квартали або близько того, що відбувається локально та результатами пошуку в Інтернеті, перезавантаження, здається, частіше за все вирішує цю проблему.

Під час отримання результатів від сервера сталася помилка транспортного рівня

http://www.garrypassarella.co.uk/2011/05/12/a-transport-level-error-has-occurred-when-receiving-results-from-the-server-provider-shared-memory-provider-error-0-the-handle-is-invalid/

http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/666/A-transport-level-error-has-occurred.aspx

Консенсус зосереджується навколо спільного характеру каналу пам'яті та втягування в інші фонові процеси, які спричиняють помилку, доки не буде виконано перезавантаження системи.