问题标签 [nancy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
razor - Nancy:Razor View Engine:是否支持 _ViewStart 文件?
你能告诉我Nancy 是否支持特殊的 Razor 文件_ViewStart.cshtml吗?我知道它被安排包含(在这里)。你能告诉我它现在是否可用吗?它目前不适合我。
谢谢
forms-authentication - 南希:FormsAuthentication - 入门
我正在尝试遵循Nancy.Demo.Authentication.Forms示例,但我遇到了问题,因为示例代码现在看起来已经过时了。如果这个问题很长,我很抱歉,但我不想错过我的错误。所以这是我到目前为止所做的:
我通过包管理器控制台(VS11 beta)成功安装了认证包
我编写了 IUserMapper 的实现,它依赖于我的 RavenDB 会话提供程序并使用它来查找和验证用户
我已经在我的 User 类中添加了一个属性来满足使 cookie 更安全所需的 Guid 标识符字段(我已经阅读了 grumpydev 的帖子并理解为什么需要这个 Guid,但是将它作为一个属性字段在用户等级?)
最后,我通过直接从演示中窃取代码(上面的链接)为我的引导程序添加了更多设置。这是我遇到问题的地方。代码似乎已更改。
编辑 1
事实证明我的错误是愚蠢的(一个不正确的using
陈述 - 见下面的评论)。上面的所有代码现在都可以正常工作,所以我将保留这个问题。
ravendb - RavenDB:如何在我的单元测试中使用 RavenProfiler?
我正在使用 NancyFX + RavenDB。我目前正在尝试实施 Ayende 推荐的非规范化引用技术,以从 AggregateRoot 构建域引用。如果您阅读该链接,您会发现诀窍是加载父实例,然后使用 RavenDB 的“包含”语句预取引用的实例。
我已经完成了所有这一切,它似乎可以工作,但我正在努力通过单元测试来确定引用的实例是否真的是预取的。这是我的单元测试中的一个片段来说明:
上面的单元测试检查我是否可以从我的假数据库(它是 RavenDB 的内存中嵌入式实例)加载我的实例,但它不检查它们是否是预取的。
我想也许我可以使用 RavenProfiler。也许这会计算我可以断言的数据库请求的数量(例如,如果请求> 1,上面的单元测试将失败)。
为了完成这项工作,我必须将 MVCIntegration 包安装到我的单元测试项目中(哎哟)
我还必须添加对 System.Web 的引用,这让我不寒而栗。我认为这行不通。
然后我将适当的初始化添加到我的 Fake db 提供程序中,如下所示:
最后,我尝试在单元测试结束时从 RavenProfiler 检索某种值:
这没有用!它在 RavenProfiler 中失败了,因为 HttpContext 为空——这就是我对 System.Web 的预感。那好吧。
那么,如何计算对我的 RavenDB 实例发出的请求数?这是否可以在不需要 MVC 或 System.Web 的情况下完成,因此可以轻松地将其固定到单元测试中?
谢谢
c# - Nancy Framework 的 Hello world 应用程序无法编译
我正在尝试让 Nancy 运行一个 hello world web 应用程序。它不会编译并突出显示Get["/"] = parameters => "Hello World";
并且无法识别此符号。
我一定遗漏了一些简单的东西,但在网上找不到关于这个问题的任何东西。
脚步:
- 创建了一个新的 ASP.NET Web 应用程序
- 使用 NuGet 获得并安装了 Nancy.Hosting.Aspnet
- 检查 web.config 是否由 NuGet 配置并且看起来正确
添加了一个具有以下代码的新类:
结果:
Get["/"] = parameters => "Hello World";
无法编译
c# - Nancy 测试项目找不到视图
尝试从测试项目中测试 Nancy 模块时遇到了一些障碍。我的测试代码看起来很标准:
当我的模块尝试渲染视图时,我得到一个无法找到视图异常。如果我正常运行项目,模块会找到视图。只有在从测试项目中调用时,模块才能找到它。
json - NancyFX:如何通过 BrowserResponse.Body.DeserializeJson 反序列化动态类型(单元测试)
我有以下 NancyFX 单元测试。我使用Shouldly断言库来提供一组扩展方法.Should---
此测试调用AssessmentService
定义为的 uri,它返回一个简单的 JSON 对象定义,该对象定义具有类型 (enum)/assessment/state/" + user.Id
的单个属性,要么,要么。State
AssessmentState
Passed
Failed
NotStarted
这是服务处理程序,因此您可以看到没有任何技巧。
这是此服务调用返回的 JSON 示例:
一切正常,直到我尝试反序列化假 Nancy 浏览器返回的 JSON。BrowserResponse.Body
首先,我尝试使用 Nancy对象提供的内置方法:
这将反序列化为一个空对象。这不好。但是,如果我们使用 Newtonsoft 等价物,那么一切都很好(几乎)。
JSON 反序列化现在可以工作,因此以下应该断言通过了出色的结果:
但是,由于我怀疑与匿名类型有关的原因,以下行在运行时失败(它编译得很好)。
这是相当多的信息。让我把它提炼成两个问题:
鉴于 Newtonsoft 版本可以,为什么 Nancy 内置的 JSON 反序列化器不起作用?
如何使用 JSON 反序列化生成的动态类型,以便应该扩展方法不会导致运行时异常?
谢谢
.net - 两个 .net 应用程序之间的日期序列化
我有一个使用以下序列化代码的 Nancy JSON REST 服务...
FormatterExtensions.AsJson(this.Response, insightManager.CaseSummary(x.caseId));
然后由...脱毒
并且insightManager.CaseSummary(x.caseId) 代码返回一个包含可为空的日期时间的类的实例。
问题是在序列化/反序列化过程中,日期会损失一个小时,我认为这是某种 UTC 偏移量。这有点烦人,因为无论如何我只想要日期部分,所以看起来所有日期都是前一天。
我已经看到很多关于在 javascript 中修复 tis 的帖子,但是当我的代码的两个部分都使用“标准”序列激光器时,我不确定如何应用它们。
unit-testing - NancyFX:我可以强制我的单元测试浏览器默认进行身份验证吗?
这是一个单元测试,显示我正在验证我的 Nancy 浏览器(其他代码已被剪掉)。我想知道是否有更聪明、更干燥的方法来做到这一点?
dynamic-language-runtime - NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?
Nancy 通过一个dynamic
变量将我的查询字符串和表单值传递给我的处理程序。下面的示例显示了通过 Nancy 请求传递给 POST 处理程序的表单值,例如Request.Form.xxx
。
处理程序
您可以看到我将userid
转换为字符串,然后使用字符串扩展方法检查值是 null 还是空字符串(相当于string.IsNullOrEmpty()
)。
我更喜欢在动态类型上使用扩展方法,这样我就可以在做任何其他事情之前执行我的健全性检查。我想要这样的代码:
但是,您不能拥有dynamic
类型的扩展方法。此外,您无法通过反射检查属性是否存在。欢迎来到 DLR。
问题
执行预检查以确保已将预期的查询/表单值传递给我的 Nancy 处理程序的最简单、最安全的方法是什么?
谢谢
mysql - AppHarbor:NancyFx 应用程序出现内部服务器错误
我最近使用以下 NuGet 包部署到http://domainshop.apphb.com/一个简单的 ASP.NET 应用程序:
该应用程序使用 MySQL。我已经激活了插件并使用在我的Web.config中编写的相同名称标记了实例。(我也将我的数据库部署到该实例)。
NancyFx 配置在system.webServer/handler
而不是在system.web/httpHandlers
.
我也设置system.web/customErrors
为Off
.
我缺少什么 get 500 - Internal Server Error
?
有趣的是静态文件被正确提供(http://domainshop.apphb.com/assets/style.css)。
问候,贾科莫