L'utilisation ELMAH avec ASP.NET MVC en VB: Compiler: Elmah ne dispose pas d'un nom fort

voix
1

Je l'ai lu code des postes et pour passer des erreurs ASP.NET MVC HandleError à ELMAH et converti le code VB:

Imports System
Imports System.Web
Imports System.Web.Mvc
Imports Elmah

Public Class HandleErrorAttribute
    Inherits System.Web.Mvc.HandleErrorAttribute
    Public Overrides Sub OnException(ByVal context As ExceptionContext)

        MyBase.OnException(context)

        Dim e As Exception = context.Exception
        If Not context.ExceptionHandled OrElse RaiseErrorSignal(e) OrElse IsFiltered(context) Then
            ' if unhandled, will be logged anyhow
            'prefer signaling, if possible
            'filtered?
        Else
            LogException(e)
        End If
    End Sub

    Private Function RaiseErrorSignal(ByVal e As Exception) As Boolean
        Dim context = HttpContext.Current
        If context Is Nothing Then Return False

        Dim signal = ErrorSignal.FromContext(context)
        If signal Is Nothing Then Return False

        signal.Raise(e, context)
        Return True
    End Function

    Private Function IsFiltered(ByVal context As ExceptionContext) As Boolean
        Dim config As ErrorFilterConfiguration = context.HttpContext.GetSection(elmah/errorFilter)

        If config Is Nothing Then Return False

        Dim testContext = New ErrorFilterModule.AssertionHelperContext(context.Exception, HttpContext.Current)

        Return config.Assertion.Test(testContext)
    End Function

    Private Sub LogException(ByVal e As Exception)

        Dim context = HttpContext.Current
        ErrorLog.GetDefault(context).Log(New Elmah.Error(e, context))
    End Sub

End Class

Cependant, je remarque que lorsque je tente de compiler le code, je reçois l'erreur suivante de VS2008:

Erreur 3 Impossible d'émettre l'assemblage: assemblage Referenced « Elmah » ne dispose pas d'un nom fort principal

En ce moment, vit HandleErrorAttribute.vb dans [dossier avec le fichier SLN] \ Main \ HandleErrorAttribute.vb et les vues, contrôleurs, etc. sont tous dans le dossier principal.

Si vous étiez en mesure d'obtenir le code d'origine C # pour travailler, comment avez-vous autour de l'erreur de compilation? (Et, si vous avez obtenu de travailler en VB, qui est encore mieux)

modifier

Je l'ai déjà essayé de le signer avec sn.exe:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC> sn R « C: \ Documents and Settings
\ Zchoy \ Mes documents \ Burrow \ code \ Main \ lib \ Elmah.dll » « C: \ Documents and Settings \ z
choy \ mes documents \ tanière \ code de \ signature key.pfx »

Microsoft (R) .NET Framework Strong Name Utility version 3.5.30729.1
Copyright (c) Microsoft Corporation. Tous les droits sont réservés.

C: \ Documents and Settings \ zchoy \ Mes documents \ Burrow \ code \ Main \ lib \ Elmah.dll ne
 ne représentent pas une assemblée fortement nommé

De toute évidence inutile.

Créé 27/08/2009 à 01:08
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

On dirait que vous avez besoin de signer l'assemblée Elmah de sorte qu'il a un nom fort.

Créé 27/08/2009 à 01:16
source utilisateur

voix
6

Quand j'ai eu ce problème, je téléchargé le code source ELMAH et l'a ouvert dans Visual Studio. Ensuite , je l'onglet Prime à la signature des propriétés du projet pour signer l'assembly, puis compilé ma propre version de Elmah.dll.

Ensuite, je lié cette version signée dans mon projet principal.

Créé 27/08/2009 à 07:45
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more