我已经创建了一个网服务,它可以的方法来设定的凭证用户使用 Microsoft.Web.Services3.WebServicesClientProtocol.样本代码是:

<WebMethod()> _
    Public Sub ClientCredential1(Of TSecurityToken As SecurityToken)_
         (ByVal UserCred As Microsoft.Web.Services3.Security.Tokens.UsernameToken)

        Dim cProxy As New Microsoft.Web.Services3.WebServicesClientProtocol()
        cProxy.SetClientCredential(UserCred)
    End Sub

当我运行的网服务,它给这个错误:

"微软。网。3.安全。标记。UsernameToken不能化,因为它并不具有无参构造。"

没有任何一个知道问题出在哪里?

有帮助吗?

解决方案

根的这里的问题是,类 Microsoft.Web.Services3.Security.Tokens.UsernameToken 没有一个参数的构造。它有3个,但它们都需要参数。 UsernameToken构造上MSDN.

  • UsernameToken (XmlElement)
  • UsernameToken (String, String)
  • UsernameToken (String, String, PasswordOption)

问题是,在反,序列化程序的电话无参构造创建的一个实例。它不能deserialize的类型并不具有无参构造。

我得到的感觉没有多少你可以做的工作围绕这个问题。我只能建议创建一个分类,并执行零param构造自己。

'ensure namespacing is correct.
Public Partial Class UsernameToken
    Public Sub New()
    End Sub    
End Class
scroll top