【问题标题】:WebServices giving errors when accessed directly from the browser直接从浏览器访问时出现错误的 WebServices
【发布时间】:2011-10-06 02:37:14
【问题描述】:

我有以下网络服务,只要从客户端脚本(javascript、jquery)访问它就可以完美运行

<%@ WebService Language="VB" Class="WebService" %>

Imports System.Web.Script.Services
Imports System.Web.Services

<ScriptService()> _
Public Class WebService
    Inherits System.Web.Services.WebService

    Public Class Person
        Public FirstName As String
        Public LastName As String

        Public Sub New(ByVal m_FirstName As String, ByVal m_LastName As String)
            FirstName = m_FirstName
            LastName = m_LastName
        End Sub
    End Class

    <WebMethod()> _
    Public Function GetPersons() As List(Of Person)
        Dim People As List(Of Person) = New List(Of Person)

        People.Add(New Person("firstname_1", "surname_1"))
        People.Add(New Person("firstname_2", "surname_2"))

        Return People
    End Function
End Class

但由于某种原因,如果我尝试直接在浏览器中访问它会出现错误

http://localhost/webservices/WebService.asmx
http://localhost/webservices/WebService.asmx/GetPersons

查看显示所有支持的操作的标准 Web 服务服务描述

我得到的错误是:

WebService.Person cannot be serialized because it does not have a parameterless constructor.

【问题讨论】:

  • 那为什么不添加无参数构造函数呢?
  • 如果我知道那是什么,我怀疑我会发布这个问题。

标签: .net asp.net vb.net .net-3.5 asmx


【解决方案1】:

为你的 Person 添加一个无参数的构造函数

  Public Class Person
        Public FirstName As String
        Public LastName As String

        Public Sub New()
          'just add this constructor  
        End Sub
    End Class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多