Používání ELMAH s ASP.NET MVC ve VB: Kompilace: Elmah nemá silný název

hlasů
1

Četl jsem přes sloupky a kód pro předávání chyby ASP.NET MVC HandleError na ELMAH a převeden na kód 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

Nicméně, jsem si všiml, že když se snažím kompilovat kód, dostanu následující chybu z VS2008:

Chyba 3 Nelze vydávat sestavy: odkazované sestavení ‚Elmah‘ nemá silný název Hlavní

Právě teď, HandleErrorAttribute.vb žije v [složce s SLN souboru] \ Main \ HandleErrorAttribute.vb a názory, kontroléry, a tak dále, jsou všichni pod hlavní složky.

Pokud jste byli schopni se dostat původní kód C # k práci, jak jste se dostal po chybě kompilace-time? (A pokud to mám do práce ve VB, že je ještě lepší)

Upravit

Už jsem se snažil, že ji podepíše s sn.exe:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC> sn R „C: \ Documents and Settings
\ Zchoy \ My Documents \ Burrow \ Code \ Main \ lib \ Elmah.dll“„C: \ Documents and Settings \ z
Choy \ My Documents \ doupě \ code \ code podpisu key.pfx“

Microsoft (R) .NET Framework Strong Name Utility Version 3.5.30729.1
Copyright (c) Microsoft Corporation. Všechna práva vyhrazena.

C: \ Documents and Settings \ zchoy \ My Documents \ Burrow \ Code \ Main \ lib \ Elmah.dll dělá
 Nemohou být považovány za silně pojmenované sestavení

Jasně neužitečné.

Položena 27/08/2009 v 01:08
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
6

Když jsem měl tento problém, mám stažený ELMAH zdrojový kód a otevřel ji ve Visual Studiu. Pak jsem použil kartu podpisem na vlastnostech projektu podepsat sestavu, pak sestavují svou vlastní verzi Elmah.dll.

Pak jsem spojen tuto podepsanou verzi do mého hlavního projektu.

Odpovězeno 27/08/2009 v 07:45
zdroj uživatelem

hlasů
0

Vypadá to, že budete muset podepsat sestavení Elmah tak, že má silný název.

Odpovězeno 27/08/2009 v 01:16
zdroj uživatelem

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