如果您发现任何问题,请打开一个问题并提供尽可能多的信息,以帮助我们确定您的问题。 或者,如果您认为可以帮助解决问题,请随时提交拉取请求。 如果您需要指导,了解如何开始使用拉取请求,请查看我们的贡献指南。 确保您不会错过样式指南,我不会:D
注意:因为 Nancy 2.0-clinteastwood 是一个预发布版本,您必须使用
-pre
切换来安装软件包,即install-package Nancy -pre
请使用此问题发布与任何特定报告的错误或拉取请求不直接相关的评论。
以下是在2.0.0-clinteastwood
发布之后需要执行的已识别任务列表,并且应该在2.0.0-dangermouse
发布之前完成。 编辑 TODO 列表并在找到项目时添加项目,添加指向发送以关闭它们的拉取请求的链接
AsyncUsageAnalyzers
它在所有project.json
和packages.config
中设置为构建依赖项 正确的示例在此处镜像 - (拉取请求 #2700 @jchannon*.nuspec
文件(pull-request #2658 @jchannon)Nancy.Hosting.Aspnet\project.json
以在包中包含web.config.transform
(pull-request #2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
以在包中包含app/web.config.transform
(pull-request #2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
以在包中包含Nancy.ViewEngines.Razor.BuildProvider
(包括构建目标)Request.Cookies
和Request.Headers.Cookie
之一,参见 #2628 进行讨论AsyncUsageAnalyzers
作为依赖项。 这应该可以安全删除,并且不会包含在2.0.0-dangermouse
中,因为它将在所有项目中标记为构建依赖项Nancy.Hosting.Aspnet
包不会应用*.config
转换`,要连接主机,您必须自己应用它Nancy.ViewEngines.Razor
包不会应用*.config
转换来连接视图引擎配置选项,您必须自己应用它Nancy.ViewEngines.Razor
的构建提供程序,导致 Nancy Razor 视图中的语法突出显示问题这会编译,但会引发运行时NullReferenceException
:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
// do stuff
// Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
return null;
});
这有效:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
//do stuff
// Func<NancyContext, CancellationToken, Task<Response>>
return Task<Response>.FromResult((Response)null);
});
我花了一点时间把头撞在墙上,直到我弄清楚这既不是超级骗子也不是快乐。
@danbarua谢谢。 我已经打开了https://github.com/NancyFx/Nancy/issues/2665因为我想在我们有时间查看引导程序后立即对管道进行大修(这将在我已将我们移至新的 csproj 格式,这正在 #2720 中发生)
牦牛剃须! 😄
此代码抛出异常,这是错误吗?
```C#
公共类 BaseModule : NancyModule
{
公共 BaseModule(字符串 url):base(url)
{
//自定义逻辑
}
}
公共类 A:BaseModule
{
公共A():基地(“urlA”)
{
}
}
公共类 B:NancyModule
{
公共 B()
{
}
}
System.InvalidOperationException 发生
H结果=0x80131509
Message=在组合过程中尝试满足其中一个依赖项时出现问题,请确保您已在容器中注册了所有新依赖项并检查内部异常以获取更多详细信息。
来源=
堆栈跟踪:
在 Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance()
at Nancy.Bootstrapper.NancyBootstrapperBase
1.GetEngine()
在 Nancy.Owin.NancyMiddleware.UseNancy(NancyOptions 选项)
在 E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31 中的 Nancy.Owin.DelegateExtensions.UseNancy(Action 1 builder, NancyOptions options)
at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action
1 x)
在 Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin(IApplicationBuilder 生成器,Action`1 管道)
在 PiggyBank.Site.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 在 E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31
内部异常1:
TinyIoCResolutionException:无法解析类型:Nancy.NancyEngine
内部异常 2:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRequestDispatcher
内部异常 3:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRouteResolver
内部异常 4:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.RouteCache
内部异常 5:
TinyIoCResolutionException:无法解析类型:BaseModule
内部异常 6:
TinyIoCResolutionException:无法解析类型:System.String
内部异常 7:
TinyIoCResolutionException:无法解析类型:System.Char []
内部异常 8:
ArgumentNullException:值不能为空。
```
这是因为基础模块没有 IoC 容器可以满足的构造函数。 它不知道如何处理string
。 如果BaseModule
不应该被自己调用,我建议你让它abstract
...
老的:
Get["post/{id}"] = Get["old/post/{id}"] = p =>{};
新(2.0):
?
Get("post/{id}", MyMethod);
Get("old/post/{id}", MyMethod);
Get("post/{id}", MyMethod);
Get("old/post/{id}", MyMethod);
这种用法增加了一些间接性。 我个人不喜欢这样。 不过不是问题。
也许有可能有一些方法重载来流利的表达? 例子:
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });
另一种表达方式
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });
如果需要,我可以尝试公关
最有用的评论
这是因为基础模块没有 IoC 容器可以满足的构造函数。 它不知道如何处理
string
。 如果BaseModule
不应该被自己调用,我建议你让它abstract
...