编译错误 - 与委托没有相同的签名

Six*_*nse 3 asp.net visual-studio

不确定我做错了什么......

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

发生错误

<asp:Login ID="Login1" runat="server" OnAuthenticate="ValidateUser">
Run Code Online (Sandbox Code Playgroud)

有关错误的详细信息.

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

C:\ inetpub\wwwroot\Login.aspx(43):错误BC30408:方法'Protected 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
Run Code Online (Sandbox Code Playgroud)

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
                                                     ~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

您的错误消息之前有一条线索:

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

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

我很惊讶这是你遇到的唯一问题,说实话 - 使用那个版本的VB,你没有LINQ例如......