Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 无法将X类型的对象强制转换为X类型_Asp.net_Vb.net_Exception_Web Site Project - Fatal编程技术网

Asp.net 无法将X类型的对象强制转换为X类型

Asp.net 无法将X类型的对象强制转换为X类型,asp.net,vb.net,exception,web-site-project,Asp.net,Vb.net,Exception,Web Site Project,用户随机获得“无法将类型为“X”的对象强制转换为类型为“X”的异常错误。有时,此问题一天会发生几次。有时,我们可以在一周内不出现此问题 我有一个序列化对象(“X”),我在列表“CurrentDetails”和“NextDetails”中填充为“X”。在文本更改事件中,我检查“CurrentDetails”中的一个值,在该值处引发异常。“无法将X类型的对象强制转换为X类型”以下是一些代码示例 文本更改事件(编辑以显示原始数据) 它在txtChange事件的IF语句上抛出了一个错误。有什么想法吗 编

用户随机获得“无法将类型为“X”的对象强制转换为类型为“X”的异常错误。有时,此问题一天会发生几次。有时,我们可以在一周内不出现此问题

我有一个序列化对象(“X”),我在列表“CurrentDetails”和“NextDetails”中填充为“X”。在文本更改事件中,我检查“CurrentDetails”中的一个值,在该值处引发异常。“无法将X类型的对象强制转换为X类型”以下是一些代码示例

文本更改事件(编辑以显示原始数据)

它在txtChange事件的IF语句上抛出了一个错误。有什么想法吗

编辑:原始堆栈数据

堆栈跟踪:在仓库\u SingleUnitPickPack.get\u CurrentSUPPDelivery() 在里面 C:\Inetpub\lawsonwebapps\warehouse\mobile\SingleUnitPickPack.aspx.vb:line 107在仓库\u SingleUnitPickPack.txtPackaging\u文本已更改(对象 发件人,事件参数(e)在 C:\Inetpub\lawsonwebapps\warehouse\mobile\SingleUnitPickPack.aspx.vb:line 249 at System.Web.UI.WebControls.TextBox.OnTextChanged(EventArgs e)at System.Web.UI.WebControl.TextBox.RaisePostDataChangedEvent()位于 System.Web.UI.WebControls.TextBox.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() 位于System.Web.UI.Page.RaiseChangedEvents()的 System.Web.UI.Page.ProcessRequestMain(布尔值 IncludeStages前同步点,布尔值IncludeStages后同步点)

编辑:“X”-Manager.CurrentDetails…原始名称:SUPPDelivery

<Serializable()> Public Class SUPPDelivery

        Private _DeliveryNumber As String
        Private _OrderNumber As String
        Private _OrderLine As String
        Private _TransactionType As String
        Private _PackedQty As String
        Private _PackageNumber As String
        Private _PackageMaterial As String
        Private _OrderLineSuffix As String
        Private _ItemNumber As String
        Private _ItemLocation As String

        Public Property DeliveryNumber() As String
            Get
                Return _DeliveryNumber
            End Get
            Set(ByVal value As String)
                _DeliveryNumber = value
            End Set
        End Property

        Public Property OrderNumber() As String
            Get
                Return _OrderNumber
            End Get
            Set(ByVal value As String)
                _OrderNumber = value
            End Set
        End Property

        Public Property OrderLine() As String
            Get
                Return _OrderLine
            End Get
            Set(ByVal value As String)
                _OrderLine = value
            End Set
        End Property

        Public Property TransactionType() As String
            Get
                Return _TransactionType
            End Get
            Set(ByVal value As String)
                _TransactionType = value
            End Set
        End Property

        Public Property PackedQty() As String
            Get
                Return _PackedQty
            End Get
            Set(ByVal value As String)
                _PackedQty = value
            End Set
        End Property

        Public Property PackageNumber() As String
            Get
                Return _PackageNumber
            End Get
            Set(ByVal value As String)
                _PackageNumber = value
            End Set
        End Property

        Public Property PackageMaterial() As String
            Get
                Return _PackageMaterial
            End Get
            Set(ByVal value As String)
                _PackageMaterial = value
            End Set
        End Property

        Public Property OrderLineSuffix() As String
            Get
                Return _OrderLineSuffix
            End Get
            Set(ByVal value As String)
                _OrderLineSuffix = value
            End Set
        End Property

        Public Property ItemNumber() As String
            Get
                Return _ItemNumber
            End Get
            Set(ByVal value As String)
                _ItemNumber = value
            End Set
        End Property

        Public Property ItemLocation() As String
            Get
                Return _ItemLocation
            End Get
            Set(ByVal value As String)
                _ItemLocation = value
            End Set
        End Property

    End Class
公共类交付
Private\u DeliveryNumber作为字符串
Private\u OrderNumber作为字符串
Private\u订单行作为字符串
Private _TransactionType作为字符串
专用包装数量为字符串
Private _PackageNumber作为字符串
作为字符串的专用包装材料
Private\u OrderLineSuffix作为字符串
Private\u ItemNumber作为字符串
Private\u ItemLocation作为字符串
公共属性DeliveryNumber()作为字符串
收到
返回_DeliveryNumber
结束
设置(ByVal值作为字符串)
_DeliveryNumber=值
端集
端属性
公共属性OrderNumber()作为字符串
收到
返回\u订单号
结束
设置(ByVal值作为字符串)
_OrderNumber=值
端集
端属性
公共属性OrderLine()作为字符串
收到
退货订单行
结束
设置(ByVal值作为字符串)
_订单行=价值
端集
端属性
公共属性TransactionType()作为字符串
收到
返回\u事务类型
结束
设置(ByVal值作为字符串)
_TransactionType=值
端集
端属性
公共属性PackedQty()作为字符串
收到
退货包装数量
结束
设置(ByVal值作为字符串)
_包装数量=价值
端集
端属性
公共属性PackageNumber()作为字符串
收到
返回_PackageNumber
结束
设置(ByVal值作为字符串)
_PackageNumber=值
端集
端属性
公共属性PackageMaterial()作为字符串
收到
返回包装材料
结束
设置(ByVal值作为字符串)
_包装材料=价值
端集
端属性
公共属性OrderLineSuffix()作为字符串
收到
Return\u OrderLineSuffix
结束
设置(ByVal值作为字符串)
_OrderLineSuffix=值
端集
端属性
公共属性ItemNumber()作为字符串
收到
返回_ItemNumber
结束
设置(ByVal值作为字符串)
_ItemNumber=值
端集
端属性
公共属性ItemLocation()作为字符串
收到
返回项目位置
结束
设置(ByVal值作为字符串)
_ItemLocation=值
端集
端属性
末级

可能有两种不同的
X
类型具有相同的名称。服务器是否正在重新启动?是否有任何内容正在重新部署?是否存在运行不同版本的恶意服务器?类型是否在强名称程序集中?程序集版本号是否在更改时更新?是否在动态编译的代码中定义了
X
您的setter有一个尾随空格-这在您的代码中吗?
Me.ViewState(“CurrentDetails”)
。您还为属性和类型指定了相同的名称-编译器可能会遇到问题吗?查看
管理器。GetSomething
的外观会有帮助,调用堆栈也会有帮助,并知道
是什么。通常,我在AppDomain转换期间见过很多次这种情况ns.您有一个类型为
X
的对象存储在会话状态或其他状态,但您的代码正在新的AppDomain中运行,并且
X
现在是另一种类型,即使它具有相同的名称。请查明当时应用程序是否有任何更改。检查IIS和Windows事件日志。在事件日志。你打开了吗?有AppDomain重新启动的事件。@JohnSaunders我甚至尝试过在隐藏字段中放置一个键,并尝试用该键重新填充对象,但它仍然崩溃。我假设它崩溃是因为它不知道已加载的信息是什么……我想这就是我试图找出的答案不是这一点。到底是什么原因导致了这个错误,如果我可以尝试重新填充对象,甚至清除它。我甚至做了一次尝试捕捉,它仍然存在
Private Property CurrentSUPPDelivery() As WarehouseManager.SUPPDelivery
    Get
        Return Me.ViewState("CurrentSUPPDelivery")
    End Get
    Set(ByVal value As WarehouseManager.SUPPDelivery)
        Me.ViewState("CurrentSUPPDelivery") = value
    End Set
End Property
<Serializable()> Public Class SUPPDelivery

        Private _DeliveryNumber As String
        Private _OrderNumber As String
        Private _OrderLine As String
        Private _TransactionType As String
        Private _PackedQty As String
        Private _PackageNumber As String
        Private _PackageMaterial As String
        Private _OrderLineSuffix As String
        Private _ItemNumber As String
        Private _ItemLocation As String

        Public Property DeliveryNumber() As String
            Get
                Return _DeliveryNumber
            End Get
            Set(ByVal value As String)
                _DeliveryNumber = value
            End Set
        End Property

        Public Property OrderNumber() As String
            Get
                Return _OrderNumber
            End Get
            Set(ByVal value As String)
                _OrderNumber = value
            End Set
        End Property

        Public Property OrderLine() As String
            Get
                Return _OrderLine
            End Get
            Set(ByVal value As String)
                _OrderLine = value
            End Set
        End Property

        Public Property TransactionType() As String
            Get
                Return _TransactionType
            End Get
            Set(ByVal value As String)
                _TransactionType = value
            End Set
        End Property

        Public Property PackedQty() As String
            Get
                Return _PackedQty
            End Get
            Set(ByVal value As String)
                _PackedQty = value
            End Set
        End Property

        Public Property PackageNumber() As String
            Get
                Return _PackageNumber
            End Get
            Set(ByVal value As String)
                _PackageNumber = value
            End Set
        End Property

        Public Property PackageMaterial() As String
            Get
                Return _PackageMaterial
            End Get
            Set(ByVal value As String)
                _PackageMaterial = value
            End Set
        End Property

        Public Property OrderLineSuffix() As String
            Get
                Return _OrderLineSuffix
            End Get
            Set(ByVal value As String)
                _OrderLineSuffix = value
            End Set
        End Property

        Public Property ItemNumber() As String
            Get
                Return _ItemNumber
            End Get
            Set(ByVal value As String)
                _ItemNumber = value
            End Set
        End Property

        Public Property ItemLocation() As String
            Get
                Return _ItemLocation
            End Get
            Set(ByVal value As String)
                _ItemLocation = value
            End Set
        End Property

    End Class