mvc 3 アプリで /api URL へのリクエストを処理するように nancy をセットアップしようとしています。
ApiModule に 2 つのナンシー ルートを設定しました
Get["/"] = _ => "こんにちは"; // 期待どおり "Hello" を返します
Get["/ニュースレター/サインアップ"] = _ => "ddddd"; // asp.net 404 を返します。想定外です。
/newsletter/signup/test は nancy 404 を返します。
設定を確認して何度もアプリを再起動しましたが、正しく動作しません。
編集:関連するコードと構成は次のとおりです
public class ApiModule : NancyModule
{
private readonly INewsletterSubscriberRepository _newsletterSubscriberRepository;
public ApiModule(INewsletterSubscriberRepository newsletterSubscriberRepository) : base("/api")
{
_newsletterSubscriberRepository = newsletterSubscriberRepository;
Get["/newsletter/signup"] = _ => "ddddd";
Get["/"] = _ => "Hello";
}
}
base.web.config
<httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="api/*" />
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
<handlers>
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="api/*" />
<add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
APIフォルダーを作成し、このweb.configをそこに配置しました
<configuration>
<system.web>
<httpHandlers>
<clear/>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</httpHandlers>
</system.web>
</configuration>