Se você encontrar algum problema, abra um problema e forneça o máximo de informações possível para nos ajudar a identificar seu problema. Como alternativa, sinta-se à vontade para enviar um pull-request se achar que pode ajudar a resolver o problema. Se você precisar de uma orientação sobre como começar com pull-requests, dê uma olhada em nossas diretrizes de contribuição . Certifique-se de não perder as diretrizes de estilo , eu não vou :D
NOTA: Como o Nancy 2.0-clinteastwood é um pré-lançamento, você terá que instalar pacotes usando a alternância
-pre
, ou seja,install-package Nancy -pre
Por favor, use este problema para postar comentários que não estejam diretamente relacionados a nenhum bug específico relatado ou pull-request.
A seguir está uma lista de tarefas identificadas que precisam ser executadas após o lançamento do 2.0.0-clinteastwood
e devem ser concluídas antes do lançamento do 2.0.0-dangermouse
. Edite a lista TODO e adicione itens à medida que forem encontrados, adicione links para pull-requests que são enviados para fechá-los
AsyncUsageAnalyzers
esteja configurado para uma dependência de compilação em todos os project.json
e packages.config
Exemplo correto para espelhar aqui - (requisição de pull #2700 @jchannon*.nuspec
antigos em todos os projetos (incluindo Nancy) (pull-request #2658 @jchannon)Nancy.Hosting.Aspnet\project.json
para incluir web.config.transform
no pacote (requisição pull #2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
para incluir app/web.config.transform
no pacote (requisição pull #2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
para incluir Nancy.ViewEngines.Razor.BuildProvider
(incluindo destinos de compilação) no pacoteRequest.Cookies
e Request.Headers.Cookie
veja #2628 para discussõesAsyncUsageAnalyzers
como uma dependência. Isso deve ser seguro para ser removido e não será incluído em 2.0.0-dangermouse
, pois será marcado como uma dependência de compilação em todos os projetosNancy.Hosting.Aspnet
não aplicará *.config
transformações`, para conectar a hospedagem, você terá que aplicá-lo você mesmoNancy.ViewEngines.Razor
não aplicará *.config
transformações` para conectar as opções de configuração dos mecanismos de visualização, você terá que aplicá-lo você mesmoNancy.ViewEngines.Razor
estão ausentes do pacote NuGet, causando problemas com realce de sintaxe nas exibições do Nancy RazorIsso compila, mas lança um tempo de execução NullReferenceException
:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
// do stuff
// Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
return null;
});
Isso funciona:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
//do stuff
// Func<NancyContext, CancellationToken, Task<Response>>
return Task<Response>.FromResult((Response)null);
});
Demorou um pouco para bater minha cabeça contra a parede até que eu descobri o que não é nem super-duper nem feliz.
@danbarua obrigado. Abri https://github.com/NancyFx/Nancy/issues/2665 porque quero fazer uma revisão no pipeline assim que tivermos tempo de analisar o bootstrapper (o que acontecerá assim que Mudei-nos para o novo formato csproj e isso está acontecendo agora em #2720)
BARBA DE IAQUE! 😄
Este código lança uma exceção, isso é bug?
```C#
classe pública BaseModule : NancyModule
{
public BaseModule(string url): base(url)
{
//Lógica personalizada
}
}
classe pública A: BaseModule
{
public A() : base("urlA")
{
}
}
classe pública B: NancyModule
{
público B()
{
}
}
Ocorreu System.InvalidOperationException
HResult=0x80131509
Message=Algo deu errado ao tentar satisfazer uma das dependências durante a composição, certifique-se de ter registrado todas as novas dependências no contêiner e inspecione a exceção interna para obter mais detalhes.
Fonte=
StackTrace:
em Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance()
at Nancy.Bootstrapper.NancyBootstrapperBase
1.GetEngine()
em Nancy.Owin.NancyMiddleware.UseNancy(opções NancyOptions)
em Nancy.Owin.DelegateExtensions.UseNancy(Ação 1 builder, NancyOptions options)
at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action
1 x) em E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31
em Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin (construtor IApplicationBuilder, pipeline Action`1)
em PiggyBank.Site.Startup.Configure(aplicativo IApplicationBuilder, env IHostingEnvironment, ILoggerFactory loggerFactory) em E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31
Exceção interna 1:
TinyIoCResolutionException: não é possível resolver o tipo: Nancy.NancyEngine
Exceção Interna 2:
TinyIoCResolutionException: não é possível resolver o tipo: Nancy.Routing.DefaultRequestDispatcher
Exceção Interna 3:
TinyIoCResolutionException: Não é possível resolver o tipo: Nancy.Routing.DefaultRouteResolver
Exceção Interna 4:
TinyIoCResolutionException: Não é possível resolver o tipo: Nancy.Routing.RouteCache
Exceção Interna 5:
TinyIoCResolutionException: Não é possível resolver o tipo: BaseModule
Exceção Interna 6:
TinyIoCResolutionException: não é possível resolver o tipo: System.String
Exceção Interna 7:
TinyIoCResolutionException: não é possível resolver o tipo: System.Char[]
Exceção Interna 8:
ArgumentNullException: O valor não pode ser nulo.
```
É porque o módulo base não possui um construtor que o contêiner IoC possa satisfazer. Ele não sabe como lidar com string
. Se o BaseModule
não deve ser chamado sozinho, sugiro que você o faça abstract
...
Velho:
Get["post/{id}"] = Get["old/post/{id}"] = p =>{};
Novo(2.0):
?
Get("post/{id}", MeuMétodo);
Get("antigo/post/{id}", MeuMétodo);
Get("post/{id}", MeuMétodo);
Get("antigo/post/{id}", MeuMétodo);
Esse uso adiciona alguma indireção. Eu pessoalmente não gosto disso. Não é um problema embora.
Talvez seja possível ter algumas sobrecargas de método para expressão fluente? exemplo:
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });
Uma expressão alternativa
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });
Eu posso dar uma facada no PR se isso for desejável
Comentários muito úteis
É porque o módulo base não possui um construtor que o contêiner IoC possa satisfazer. Ele não sabe como lidar com
string
. Se oBaseModule
não deve ser chamado sozinho, sugiro que você o façaabstract
...