나는 최근에 Linq를 SQL 기능에 추가 한 .NET 3.5 웹 응용 프로그램이 있습니다. dbml 파일 등입니다. 로컬에서는 제대로 작동합니다.Linq SQL 구성 요소와 ASP.NET 웹 사이트를 배포하는 방법
그러나 배포하려고하면 컨텍스트 개체의 생성자를 호출 할 때 null 참조 예외가 발생합니다.
복잡성을 더하기 위해 웹 배포 프로젝트를 사용하여 단일 DLL로 컴파일합니다. 나는 Linq가 Sql에 대한 것들이 다른 것들과 함께 컴파일 될 것이라고 생각했다. 그러나 이제는 dbml 파일을 DLL과 함께 이동해야한다고 생각합니다.
App_Code 디렉토리에 dbml 파일이 있으므로 원격 서버에서 해당 디렉토리 구조를 다시 만들려고했습니다. 하지만. NET은 미리 컴파일 된 응용 프로그램에 App_Code 디렉토리를 갖게하지 않습니다. 그래서 방금 dbml 파일을 루트 디렉토리로 옮겼습니다.하지만 여전히 오류가 발생합니다.
도움말!
: 여기
내가지고있어 오류의 스택 추적의 [NullReferenceException이 :. 개체의 인스턴스로 설정되지 않았습니다 개체 참조] codeCS.SarcStateDataDataContext..ctor() +28 DB_Interface.SarcStateDataDB ..ctor() +26 eSARC_Basic..ctor() +56 ASP.esarc_basic_aspx..ctor() +14 __ASP.FastObjectFactory_sarcwriting.Create_ASP_esarc_basic_aspx() +20 System.Web.Compilation.BuildResultCompiledType.CreateInstance() + 32 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (VirtualPath virtualPath, 유형 requiredBaseType, HttpCont 확장 컨텍스트, 부울 allowCrossApp, 부울 noAssert)System.Web.UI.PageHandlerFactory.GetHandlerHelper (HttpContext 컨텍스트, String requestType, VirtualPath virtualPath, String physicalPath) +33 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2 .GetHandler (HttpContext 컨텍스트, String requestType, VirtualPath virtualPath, String physicalPath) +40 System.Web.HttpApplication.MapHttpHandler (HttpContext 컨텍스트, String requestType, VirtualPath 경로, String pathTranslated, 부울 useAppConfig) +160 System.Web.MapHandlerExecutionStep. System.Web.HttpApplication.IExecutionStep.Execute() +93 (IExecutionStep 단계, 부울 & completedSynchronously) 155DB_Interface.SarcStateDataDB는 컨텍스트 개체의 생성자를 호출하는 클래스입니다.
codeCS.SarcStateDataDataContext();
프로그램의 로컬 버전과 배포 된 버전 모두 동일한 원격 데이터베이스를 사용하기 때문에 연결 문자열이나 연결 개체를 보내지 않습니다. 그러나 그것이 문제 일 수 있습니까? 로컬 응용 프로그램은 dbml 파일의 연결 문자열에 액세스 할 수 있지만 배포 된 응용 프로그램은 그렇지 않습니다 ... ??
업데이트 : 내가 리플렉터의 코드를 쳐다 보면서 그것은의 Web.config에서 연결 문자열을 받고, 모든 것이 ...
THanks Davita - 내 게시물을 좀 더 자세한 정보로 업데이트했습니다. 개발 및 프로덕션 데이터베이스가 모두 같기 때문에 이것이 문제는 아니라고 생각합니다. – Cynthia