2012-11-01 3 views
0

Je veux avoir un site web alimenté par Nancy avec Nancy.Hosting.Aspnet dépendance dans un projet VS et projet dédié pour le service WCF hébergeant ce site web. L'idée derrière pour tester les performances et avoir la possibilité de choisir quoi utiliser IIS ou mon propre service.Nancy site web et Nancy wcf hôte dans différents projets

Aux références du projet WCF, j'ai ajouté un projet de site web. Comment cela pourrait-il devenir possible d'accueillir Nancy de cette façon? Comment dire à Nancy de rechercher des modules qui ne sont pas dans l'exécutable actuel, mais dans une DLL qui y est attachée? Quelles conditions devraient être remplies? La meilleure estimation pour l'instant est de faire concorder les espaces de noms, mais pas de chance pour l'instant. Si elle aide voici le code que je utilise pour exécuter Nancy à partir de l'exécutable WCF (il est standard):

class Program 
{ 
    private static readonly Uri BaseUri = new Uri("http://localhost:1234/"); 

    static void Main(string[] args) 
    { 
     AppDomainAssemblyTypeScanner.LoadAssemblies("Basta.dll"); 

     using (CreateAndOpenWebServiceHost()) 
     { 
      Console.WriteLine("Service is now running on: {0}", BaseUri); 
      Console.ReadLine(); 
     } 
    } 

    private static WebServiceHost CreateAndOpenWebServiceHost() 
    { 
     var host = new WebServiceHost(
      new NancyWcfGenericService(new Basta.Bootstrapper()), 
      BaseUri); 

     host.AddServiceEndpoint(typeof(NancyWcfGenericService), new WebHttpBinding(), ""); 
     host.Open(); 

     return host; 
    } 
} 

Je suis approche utilisée de this question (en appelant AppDomainAssemblyTypeScanner.LoadAssemblies), mais n'a pas travaillé, malheureusement.

Répondre

0

J'ai trouvé la raison. Lors de l'exécution de Nancy en tant que WCF, toutes les ressources externes normalement traitées dans les dossiers virtuels IIS deviennent indisponibles. Cela signifie pas de modèles, pas de styles, pas de javascript. Rien. Pour résoudre ce problème, toutes les ressources supplémentaires doivent être copiées dans le dossier de sortie (dans les propriétés de Visual Studio pour chaque fichier, il existe une option pour cela).

Questions connexes