2016-05-30 31 views
3

不知道我做錯了......編譯錯誤 - 不具有相同簽名的委託

BC30408:法「保護小組的ValidateUser(發送者爲對象,E作爲 System.EventArgs)」與委託 'Delegate Sub AuthenticateEventHandler(sender As Object,e As System.Web.UI.WebControls.AuthenticateEventArgs)'沒有相同的簽名。發生在這個

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

有關錯誤的詳細信息

錯誤。

微軟(R)Visual Basic編譯器版本8.0.50727.5420爲 微軟(R).NET Framework版本2.0.50727.5420版權所有(C) 微軟公司。版權所有。

C:\的Inetpub \ wwwroot的\的Login.aspx(43):錯誤BC30408:方法 '受保護的 子的ValidateUser(發送者爲對象,例如作爲System.EventArgs)' 不 具有相同簽名的委託「代表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 

子的ValidateUser(發送者爲對象,例如作爲System.EventArgs)「不 具有相同簽名的委託」代表子 AuthenticateEventHandler(發送者爲對象,例如作爲 System.Web.UI.WebControls .AuthenticateEventArgs)」。

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

你的declare函數的一些參數是錯誤的... – Aristos

+0

它工作正常,當我在VS和webHosting測試它現場。但是當我嘗試使用localhost機器打開它時遇到此錯誤。 – Sixthsense

回答

7

一個線索來自之前你的錯誤消息:

微軟(R)Visual Basic編譯器版本8.0.50727.5420用於Microsoft(R).NET Framework版本2.0.50727.5420版權所有( c)微軟公司。版權所有。

這是一個古老的(2005!)版本的VB編譯器,可能不處理委託方差。雖然你可能改變你的方法的簽名,你最好讓本地機器使用更新版本的VB編譯器。我的猜測是,這是IIS爲你編譯的,所以你基本上需要編輯IIS設置。 (我不是一個ASP.NET專家,所以我不能告訴你究竟該在哪裏做,但希望這足以讓你去。)

我很驚訝這是你遇到的唯一問題,說實話 - 使用該版本的VB,你不會有LINQ例如...

+0

根據你的建議,我改變了IIS中的.Net版本,這就實現了訣竅。謝謝 :) – Sixthsense

相關問題