我有一个VB.NET站点。在我的许多页面的顶部,我有这样的代码:
Partial Class _Default
Inherits System.Web.UI.Page
Dim fns As New Functions
Dim bOnOff As Boolean
Dim LNBs As New LimsNetBusiness.SiteUI.SiteUI
Dim LNBu As New LimsNetBusiness.User.user
Dim LNBp As New LimsNetBusiness.PasswordFunctions.Password
当我发布网站时。我得到“对象引用未设置为对象的实例”。在线:
Dim LNBs As New LimsNetBusiness.SiteUI.SiteUI
为什么呢?我该如何解决?
答案 0 :(得分:1)
您需要向我们展示我认为的LimsNetBusiness.SiteUI.SiteUI的构造函数。
鉴于此问题仅发生在远程,我认为构造函数访问服务器上不可用的资产,连接或配置文件。
我的建议是用Reflector打开DLL,看看它访问了哪些资源/其他潜在的空引用。
奇怪的是你说没有Sub New(),但我很好奇你如何在没有构造函数的情况下创建该类型的变量。
您提到SiteUI会传递到您的数据层 - 您是否确信数据层访问可以正常工作?
答案 1 :(得分:1)
信息不足。不幸的是,LimsNetBusiness不是.net命名空间。我建议查看SiteUI构造函数,看看你是否在那里失败。
答案 2 :(得分:1)
Lims Business是一个单独的DLL吗?你也发表过这个吗?
答案 3 :(得分:0)
LimsNetBusiness.SiteUI.SiteUI是引用表还是web.config文件?可能删除了表格行或类似的东西。
答案 4 :(得分:0)
这是一个NullReferenceException
一些正在发生NullReferenceException的地方。
现在你没有提供关于LimsNetBusiness
是什么的足够信息,但是如果我不得不猜测:
LimsNetBusiness.SiteUI.SiteUI
的构造函数中实例化的代码中LimsNetBusiness.SiteUI
是静态属性,则需要确保实例化返回的对象。答案 5 :(得分:0)
LNB的初始化可能会发生错误。由于这发生在昏暗的语句中,如果这是真的,你可能不会看到错误的位置。您可以尝试将LNB的初始化移动到赋值语句:
Dim LNBs As LimsNetBusiness.SiteUI.SiteUI
LNBs = new LimsNetBusiness.SiteUI.SiteUI
此外,检查LimsNetBusiness.SiteUI.SiteUI的初始化,并确保应该有的地方到处都是“新”。