2 Stimmen

Verwendung von Ninject.Extensions.Wcf für einen in ASP.NET MVC 2 gehosteten Webdienst

Ich verwende ninject in einem wcf-Webdienst, der in einem Projekt gehostet wird, das als "ASP.NET MVC 2 Empty Web Application" erstellt wurde.

Es verwendet die Referenzen für Ninject.dll v2 und Ninject.Extensions.Wcf.dll v1.

Das Markup für die Servicedatei lautet

<%@ ServiceHost 
Language="C#"
Debug="true"
Service="wcf_ninject.Service1"
CodeBehind="Service1.svc.cs"
Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>

Die Datei global.asax erbt von NinjectWcfApplication

public class Global : NinjectWcfApplication
{
    protected override IKernel CreateKernel()
    {
        return new StandardKernel(new WCFNinjectModule());
    }
}

mit

public class WCFNinjectModule : NinjectModule
{
    public override void Load()
    {
        Bind<IRepository>().To<EFRepository>();
        // rest of bindings
    }
}

und der einzige Konstruktor für den Dienst ist:

public Service1(IRepository repository)
{
    _repo = repository;
}

Die meiste Zeit funktioniert es gut, aber von Zeit zu Zeit erhalte ich die Fehlermeldung:

"Fehler beim Aktivieren von Dienst1 Es sind mehr als eine passende Bindung vorhanden"

Aber wie gesagt, ich bin nicht in der Lage, einen Reproduktionspfad zu finden.

1voto

Remo Gloor Punkte 32775

Ich nehme an, Sie verwenden eine ältere Version. Ich kann mich erinnern, dass es ein Multithreading-Problem mit impliziten Bindungen in 2.1 oder sogar 2.0 gab. Es sollte in 2.2 und 3.0 behoben sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X