2012-11-01 43 views
0

我想南希支持网站与Nancy.Hosting.Aspnet依赖项在一个VS项目和WCF服务托管此网站的专用项目。测试性能并有能力选择使用IIS或我自己的服务的背后的想法。南希网站和南希wcf主机在不同的项目

对于WCF项目的引用,我添加了网站项目。如何以这种方式主办南希?

如何告诉Nancy搜索不在当前可执行文件中的模块,而是在附加的DLL中?应该满足什么条件?现在最好的猜测是让命名空间同意,但现在没有运气。如果它帮助这里是我使用的是从WCF可执行文件运行南希代码(它是标准的):

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; 
    } 
} 

我使用的方法从this question(通过调用AppDomainAssemblyTypeScanner.LoadAssemblies),但没有工作,很遗憾。

回答

0

我找到了原因。将Nancy作为WCF运行时,通常在IIS虚拟文件夹中处理的所有外部资源都不可用。这意味着没有模板,没有样式,没有JavaScript。没有。

因此,要解决此问题,需要将所有其他资源复制到输出文件夹(在每个文件的Visual Studio属性中都有一个选项)。