Usando ELMAH com ASP.NET MVC em VB: compilação: Elmah não tem um nome forte

votos
1

Eu li através dos posts e código para passar os erros ASP.NET MVC HandleError para ELMAH e convertido o código para 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

No entanto, notei que quando eu tento compilar o código, eu recebo o seguinte erro de VS2008:

Erro 3 Incapaz de emitir assembly: Referenciado assembly 'Elmah' não tem um nome forte Principal

Agora, HandleErrorAttribute.vb vive em [pasta com o arquivo SLN] \ Main \ HandleErrorAttribute.vb e as vistas, controladores, e assim por diante são todos sob a pasta principal.

Se você fosse capaz de obter o código original C # para trabalhar, como você contornar o erro em tempo de compilação? (E, se você tem que trabalhar em VB, que é ainda melhor)

Editar

Eu já tentei de assiná-lo com sn.exe:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC> sn -R C: \ Documents and Settings
\ Zchoy \ Meus Documentos \ Burrow \ Code \ Main \ lib \ Elmah.dll C: \ Documents and Settings \ z
choy \ meus documentos \ toca \ code \ assinatura de código key.pfx

Microsoft (R) .NET Framework nome forte Utility Versão 3.5.30729.1
Copyright (c) Microsoft Corporation. Todos os direitos reservados.

C: \ Documents and Settings \ zchoy \ Meus Documentos \ Burrow \ Code \ Main \ lib \ Elmah.dll faz
 não representam um conjunto fortemente nomeado

Claramente inútil.

Publicado 27/08/2009 em 01:08
fonte usuário
Em outras línguas...                            


2 respostas

votos
6

Quando eu tive esse problema, eu o download do código-fonte ELMAH e abri-lo no Visual Studio. Então eu usei a guia Assinatura nas propriedades do projeto para assinar o assembly, então compilado minha própria versão de Elmah.dll.

Então eu ligado esta versão assinada no meu projeto principal.

Respondeu 27/08/2009 em 07:45
fonte usuário

votos
0

Parece que você precisa para assinar o assembly Elmah para que ele tenha um nome forte.

Respondeu 27/08/2009 em 01:16
fonte usuário

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