0

Nancy.Hosting.Aspnet1 つの VS プロジェクトと、この Web サイトをホストする WCF サービス専用のプロジェクトに依存するNancy を利用した Web サイトが必要です。パフォーマンスをテストし、IIS または独自のサービスを使用するものを選択する機能を持つという背後にあるアイデア。

WCF プロジェクトの参照に、Web サイト プロジェクトを追加しました。ナンシーをそのようにホストすることがどのように可能になるのでしょうか?

現在の実行可能ファイルではなく、それに接続されている DLL でモジュールを検索するように Nancy に指示するにはどうすればよいですか? どのような条件を満たす必要がありますか? 今のところ最善の推測は、名前空間を一致させることですが、今のところうまくいきません。ここで役立つ場合は、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;
    }
}

この質問からのアプローチを使用しました(を呼び出すことによりAppDomainAssemblyTypeScanner.LoadAssemblies)が、残念ながら機能しませんでした。

4

1 に答える 1

0

理由がわかりました。Nancy を WCF として実行すると、IIS 仮想フォルダーで通常処理されるすべての外部リソースが使用できなくなります。これは、テンプレート、スタイル、JavaScript がないことを意味します。何もない。

したがって、この問題を解決するには、すべての追加リソースを出力フォルダーにコピーする必要があります (各ファイルの Visual Studio プロパティには、そのためのオプションがあります)。

于 2012-11-02T14:58:27.897 に答える