2017-08-02 3 views
0

Je crée un service Web sur Sharepoint avec IoC. Voici mon code principal:Impossible de charger le fichier ou l'assemblage 'Autofac, Version = 2.6.1.841 avec webservice

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1), WebService(Namespace = "http://tempuri.org/")] 
class WebService : System.Web.Services.WebService 
{ 
    private static IContainer Container { get; set; } 
    private DataTable Articles=new DataTable(); 
    private string display; 
    [WebMethod(EnableSession = true, Description = "Web method for using search service")] 
    public string DisplayArticles() 
    { 
     var builder = new ContainerBuilder(); 
     builder.RegisterType<WebServiceRepo>().As<IArticlesRepository>(); 
     Container = builder.Build(); 
     Search(); 
     return display; 
    } 

    public void Search() 
    { 
     using (var scope = Container.BeginLifetimeScope()) 
     { 
      var repo = scope.Resolve<IArticlesRepository>(); 
      Articles.Load(repo.GetArticles(),LoadOption.OverwriteChanges); 
      display = repo.ReturnArticles(Articles); 
     } 
    } 
} 

Le problème est une erreur que je reçois en essayant d'invoquer la méthode qui utilise Autofac:

System.IO.FileNotFoundException: Could not load file or assembly 'Autofac, Version=2.6.1.841, Culture=neutral, PublicKeyToken=17863af14b0044da' or one of its dependencies. The system cannot find the file specified. 
    at SOAP_WebService.WebService.DisplayArticles() 

Il dit à propos de fichier pas trouvé, mais un Autofac. dll avec la version 2.6.1.841 existe dans le dossier bin/debug. J'utilise cette version d'autofac car en travaillant sur sharepoint 2010, je peux seulement choisir .net framework v3.5 et c'est l'une des versions les plus récentes qui fonctionne sur cette version de .net framework.

Les réponses fournies dans des questions simmiliar ne m'a pas aidé.

Répondre

0

D'une certaine façon je réussi à travailler dehors ... Si quelqu'un aura un problème simmiliar:

L'assemblée Autofac j'ai ajouté aux références dans mon projet était en quelque sorte impossible de trouver par le studio visuel, en dépit du fait ce fichier existait dans mon projet (je serai reconnaissant si quelqu'un m'explique pourquoi est-ce arrivé). La solution consistait à ajouter cet assembly au GAC via Developer Command Prompt à l'aide de cette commande:

gacutil /i <path to the assembly> /f