연결을 열 때 C# 코드에 예외가 발생했습니다. Visual Studio에서 '연결이 닫혀 있지 않습니다.'라는 예외가 발생합니다. 연결의 현재 상태가 열려 있습니다. '. 이상한 점은 연결이 전혀 열려 있지 않다는 것입니다.연결을 열려고 할 때 예외가 throw되는 이유는 무엇입니까?
이상한 점은 한 PC (PC-1)에서만 문제가 발생한다는 것입니다. 다른 2 대의 PC (PC-2 및 PC-3)에서는 예외가 발생하지 않고 코드가 컴파일되어 2 대의 다른 PC에서 정상적으로 실행됩니다. PC-2 또는 PC-3에서 Azure로 배포하면 모든 것이 작동합니다.
모든 3 대의 PC에는 Visual Studio 2010 SP1 (10.0.40219.1 SP1Rel), .NET (4.0.30319 SP1Rel), Azure 1.6 SDK, Azure Ap Fabric 1.5.37 및 VS2010 용 Azure 도구 (1.6.41103.1601 코드를 얻기 위해, 문제가있는 PC에
System.InvalidOperationException was unhandled by user code
Message=The connection was not closed. The connection's current state is open.
Source=System.Data
StackTrace:
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at myPost.Models.Repository.Foo(Int64 rId, Int64 mItemId) in C:\code\Models\Repository.cs:line 326
at myPost.Models.Repository.Foo(Int64 menuItemId, Int64 rId, mItemRatings[]& ratings, Photos[]& thumbnails) in C:\code\Models\Repository.cs:line 92
at myPost.Controllers.HomeController.Index(String part1, String part2, String embed) in C:\code\Controllers\HomeController.cs:line 97
at lambda_method(Closure , ControllerBase , Object[])
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
(PC-1) : 여기
private long[] Foo(long rId, long mItemId)
{
List<long> list = null;
using (myDBEntities ctx = new myDBEntities())
{
EntityConnection entityConnection = (EntityConnection)ctx.Connection;
using (DbConnection connection = entityConnection.StoreConnection)
{
connection.Open();
...
전체 예외 사항입니다 :)
여기에 코드의 관련 부분 달리기, 나는 connection.Open();
바로 앞에 connection.Close();
을 추가하십시오. 그러나 PC-2 및 PC-3에서는이 문제가 발생하며 Azure에 배포 할 때 예외가 발생합니다. connection.Close()
을 추가 할 필요가 없기 때문에 예외가 발생합니다.
PC-1의 설정이 코드 문제가 아닌 구성 문제처럼 보이므로 잘 모르겠습니다.
코드를 실행하기 전에 첫 번째 PC에서 SQL Server MS의 Azure 인스턴스에 연결 했습니까? – Lloyd
아니요. 내가 가지고있는 Azure와의 유일한 연결은이 프로젝트에서 온 것입니다. 그것은 내가 실행중인 유일한 코드입니다. – TMC
동일한 문제가 발생할 수있는 VS 데이터베이스 마법사에서 연결 문자열을 만들었습니까? VS 내에서뿐만 아니라 로컬에서 응용 프로그램을 빌드하고 배포하는 경우에도 동일한 문제가 발생합니까? – Lloyd