【发布时间】:2010-09-21 17:22:13
【问题描述】:
我在 VB.Net 中使用返回自定义类或对象的方法创建了一个 Web 服务。
<WebMethod()> _
Public Function CreatePerson(ByVal LastName As String, ByVal FirstName As String) As Person
Return New Person(LastName, FirstName)
End Function
Public Class Person
Public Sub New()
End Sub
Public Sub New(ByVal LastName As String, ByVal FirstName As String)
_LastName = LastName
_FirstName = FirstName
End Sub
Private _LastName As String
Public Property LastName() As String
Get
Return _LastName
End Get
Set(ByVal value As String)
_LastName = value
End Set
End Property
Private _FirstName As String
Public Property FirstName() As String
Get
Return _FirstName
End Get
Set(ByVal value As String)
_FirstName= value
End Set
End Property
End Class
我可以从另一个 ASP.NET 应用程序使用它,但问题是当我尝试通过 SOAP Client 3.0 从经典 ASP 使用它时
<%
Dim Result, oSoapClient
Set oSoapClient = Server.CreateObject("MSSOAP.SoapClient30")
oSoapClient.ClientProperty("ServerHTTPRequest") = True
Call oSoapClient.mssoapinit ("http://MyServer/MyWebService/MyWebService.asmx?WSDL")
Result = oSoapClient.CreatePerson("Sassaroli", "Rinaldo")
Response.Write(Result.LastName)
%>
我收到一个错误:
Microsoft VBScript 运行时错误“800a01a8”
需要对象
在“Response.Write(Result.LastName)”行。
我可以看到 Result 是一个没有元素的字符串数组
【问题讨论】:
-
只是一个疯狂的猜测,在
Person上猛击<Serializable>_属性。 -
嗨 Henk,我试过了,但得到了同样的错误。感谢您的回答。
标签: asp.net web-services soap asp-classic