【问题标题】:Compilation Error - does not have the same signature as delegate编译错误 - 与委托的签名不同
【发布时间】:2016-05-31 19:17:23
【问题描述】:

不知道我做错了什么......

BC30408: 方法 'Protected Sub ValidateUser(sender As Object, e As System.EventArgs)' 与委托的签名不同 '委托子 AuthenticateEventHandler(sender As Object, e As System.Web.UI.WebControls.AuthenticateEventArgs)'。

出现错误

<asp:Login ID="Login1" runat="server" OnAuthenticate="ValidateUser">

有关错误的详细信息。

Microsoft (R) Visual Basic 编译器版本 8.0.50727.5420 用于 Microsoft (R) .NET Framework 版本 2.0.50727.5420 版权所有 (c) 微软公司。保留所有权利。

C:\inetpub\wwwroot\Login.aspx(43):错误 BC30408:方法“受保护” Sub ValidateUser(sender As Object, e As System.EventArgs)' 没有 与委托 'Delegate Sub 具有相同的签名 AuthenticateEventHandler(sender As Object, e As System.Web.UI.WebControls.AuthenticateEventArgs)'。

        AddHandler __ctrl.Authenticate, AddressOf Me.ValidateUser
                                                  ~~~~~~~~~~~~~~~ C:\inetpub\wwwroot\Login.aspx(43) : error BC30408: Method 'Protected

Sub ValidateUser(sender As Object, e As System.EventArgs)' 没有 与委托 'Delegate Sub 具有相同的签名 AuthenticateEventHandler(sender As Object, e As System.Web.UI.WebControls.AuthenticateEventArgs)'。

        RemoveHandler __ctrl.Authenticate, AddressOf Me.ValidateUser
                                                     ~~~~~~~~~~~~~~~

【问题讨论】:

  • 您的声明函数中的某些参数错误...
  • 当我在 VS 和虚拟主机站点中测试它时,它工作正常。但是当我尝试使用 localhost 机器打开它时遇到这个错误。

标签: asp.net visual-studio


【解决方案1】:

一条线索就在之前你的错误信息:

Microsoft (R) Visual Basic 编译器版本 8.0.50727.5420 用于 Microsoft (R) .NET Framework 版本 2.0.50727.5420 版权所有 (c) Microsoft Corporation。保留所有权利。

这是一个古老的(2005 年!)版本的 VB 编译器,可能无法处理委托变化。虽然您可以更改方法的签名,但最好让本地计算机使用更新版本的 VB 编译器。我的猜测是这是 IIS 为您进行编译,所以您基本上需要编辑 IIS 设置。 (我不是 ASP.NET 专家,所以我不能告诉你具体在哪里做,但希望这足以让你继续前进。)

我很惊讶这是您遇到的唯一问题,老实说 - 使用该版本的 VB,例如,您将没有 LINQ...

【讨论】:

  • 根据您的建议,我更改了 IIS 中的 .Net 版本,这可以解决问题。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多