Nancy网站和Nancy wcf主持不同的项目

时间:2012-11-01 18:03:57

标签: .net wcf nancy

我希望Nancy在一个VS项目中拥有Nancy.Hosting.Aspnet依赖关系的网站以及托管此网站的WCF服务的专用项目。测试性能背后的想法,并有能力选择使用IIS或我自己的服务。

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

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

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),但遗憾的是没有用。

1 个答案:

答案 0 :(得分:0)

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

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