我有一個.NET 3.5 Web應用程序,我最近爲一個dbml文件添加了一些Linq to Sql功能等。在本地,它工作正常。如何使用Linq to Sql組件部署ASP.NET網站
但是,當我嘗試部署它時,我得到一個空引用異常,顯然當它試圖調用上下文對象的構造函數時。
爲了增加複雜性,我使用了一個Web部署項目,它將它編譯到一個DLL中。我認爲Linq to 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,Type requiredBaseType,HttpCont ext context,布爾allowCrossApp,布爾noAssert)+119 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext上下文,字符串requestType,VirtualPath virtualPath,字符串physicalPath)+33 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2 .GetHandler(HttpContext的上下文中,字符串的RequestType,virtualPath virtualPath,字符串physicalPath)40 System.Web.HttpApplication.MapHttpHandler(HttpContext的上下文中,字符串的RequestType,virtualPath路徑,字符串pathTranslated,布爾useAppConfig)160 System.Web.MapHandlerExecutionStep。 System.Web.HttpApplication.IExecutionStep.Execute()93 System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously)155
DB_Interface.SarcStateDataDB是我寫的一個類,它調用上下文對象的構造函數:
codeCS.SarcStateDataDataContext context = new SarcStateDataDataContext();
我不給它發送連接字符串或連接對象,因爲程序的本地和部署版本都使用相同的遠程數據庫。但是,這可能是問題嗎?本地應用程序可以訪問dbml文件中的連接字符串,但部署的應用程序不會......?
更新:我看了一下在反射的代碼,它正從web.config中的連接字符串,並且一切看起來就這一問題copasetic ...
THanks Davita - 我更新了我的帖子,提供了更多信息。由於開發和生產數據庫都是相同的,我不認爲這是問題。 – Cynthia 2010-12-02 18:14:31