Я пытаюсь настроить nancy для обработки запросов к / api url в моем приложении mvc 3.
Я установил 2 маршрута nancy в моем ApiModule
Get ["/"] = _ =>" Привет ";// возвращает "Hello", как и ожидалось
Get ["/ newsletter / signup"] = _ => "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>