问题标签 [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.

0 投票
2 回答
1043 浏览

c# - 从网页调用 DELETE restful 方法的最佳实践是什么?

我正在构建一个小型 Nancy webapp,它将在表上执行 CRUD 操作。它使用 GET、POST 和 DELETE 动词。我想在网页中有一个链接来调用删除方法。默认情况下,使用“锚”标签将使用 GET 方法。我不喜欢将 web 服务更改为使用 GET 动词来执行删除操作,因为它会破坏 RESTful 概念。在这种情况下,最佳做法是什么?

0 投票
2 回答
7745 浏览

nancy - 如何在 NancyFX 中将表单绑定到模型

我是 NancyFX 的新手,并试图简单地将发布的表单绑定到我的模型。

在模块中尝试访问发布的值时,我运行以下语句:

结果是:“Nancy.DynamicDictionaryValue”而不是发布的值

谁能告诉我我在做什么新手错误:

表格如下所示:

模块构造器中的路由:

0 投票
1 回答
810 浏览

ravendb - 为什么在 RavenDB 中存储 Nancy.DynamicDictionary 只保存属性名称而不保存属性值?

我正在尝试保存(RavenDB build 960)通过其内置传递到 Nancy 模块的表单数据项的名称和值Request.Form

如果我保存一个简单的dynamic对象实例(带有测试属性和值),那么一切正常,并且属性名称和值都被保存。但是,如果我使用 Nancy 的Request.Form,则只保存动态属性名称。

我知道在检索动态数据(RavenJObjects 等)时,我将不得不处理与恢复正确类型有关的进一步问题,但现在,我想首先解决保存动态名称/值的问题。

这是整个测试请求和代码:

提琴手请求 (PUT) 在此处输入图像描述

南希模块

服务

测试动态类

Request.Form 在运行时的动态内容 在此处输入图像描述

生成的 RavenDB 文档

注意: Request.Form 的类型是Nancy.DynamicDictionary。我认为这可能是问题所在,因为它继承自IEnumerable<string>而不是预期的IEnumerable<string, object>. 我认为 RavenDB 正在枚举DynamicDictionary并且只取回动态成员名称而不是成员名称/值对。

谁能告诉我如何或是否可以将 Request.Form 视为一个dynamic对象,以将其保存到 RavenDB?如果可能的话,我想避免任何手工枚举DynamicDictionary来构建dynamic实例,以便 RavenDB 可以正确序列化。

谢谢你

编辑 1 @Ayende

DynamicDictionary 似乎实现了该GetDynamicMemberNames()方法:

南希动态词典

查看 GitHub 上的代码可以发现以下实现:

这是您希望在这里看到的吗?

编辑 2 @TheCodeJunkie

感谢代码更新。为了测试这一点,我有:

  1. 从 GitHub 创建了 NancyFx/Nancy 主分支的本地克隆
  2. 将 Nancy.csproj 添加到我的解决方案中并引用了该项目
  3. 运行与上面相同的测试

来自新 DynamicDictionary 的 RavenDB 文档

您可以看到生成的文档是一个改进。DynamicDictionaryRavenDB 现在可以正确获取类型信息,并且虽然动态属性名称已正确序列化,但不幸的是动态属性值没有。

下图显示了新的外观DynamicDictionary。对我来说一切都很好,新的字典界面清晰可见。我唯一注意到的是调试器中的动态“结果视图”(与“动态视图”相反)只显示属性名称而不是它们的值。“动态视图”和以前一样显示(见上图)。

DynamicDictionary 在运行时的内容 在此处输入图像描述

0 投票
1 回答
431 浏览

azure - 为什么 WAIISHost 会锁定某些文件

我正在将 Web 应用程序部署到 azure。该应用程序是使用 Nancy 构建的,并且没有定义 RoleEntryPoint(请注意这不是问题,网站本身运行良好)。当我部署到 azure 时,我启用了 Web 部署选项。

当我尝试运行 webdeployment 时,出现以下错误:

错误 7 Web 部署任务失败。((2012 年 6 月 26 日下午 12:28:45)在远程计算机上处​​理请求时出错。)

(6/26/2012 12:28:45 PM) 在远程计算机上处​​理请求时出错。处理“Castle.Windsor.dll”上的“创建文件”操作时遇到错误。错误代码为 0x80070020。该进程无法访问“E:\approot\bin\Castle.Windsor.dll”,因为它正被另一个进程使用。

我已经 RDP'd 进入角色实例并使用流程资源管理器我看到 WAIISHost 锁定了我的项目引用的许多程序集。

我无法确定是什么导致这些文件被锁定。

谢谢,杰森

0 投票
2 回答
2542 浏览

c# - NHibernate 会话应该如何在 Nancy 中处理每个请求的会话?

真的,我的问题就在标题中...... NHibernate 会话应该如何在 Nancy 中处理,以便按请求进行会话?如果您对此本身有一个很好的答案,那就去做吧……如果您需要更多背景知识,那就是:


我习惯于在 ASP.NET MVC 中使用 actionFilter 在 Web 请求的开始和结束时在 NHibernate 上下文中打开和关闭会话。这样,请求上下文中的每个数据库操作都使用相同的会话。

我以为我在使用 Nancy 的新项目中设置了相同类型的东西,但每次需要会话时,都会生成一个新会话。这是我在引导程序中处理会话打开和关闭的方式(继承自 StructureMapBootstrapper):

ISessionContainer的基于类似于此站点的内容。我的实现ISessionContainer使用 NHibernate 的会话上下文来获取“当前会话”。

现在,当我在我的 Nancy 项目中尝试这个时,每次ISessionContainer.Session请求属性时都会返回一个新会话。我认为这是因为 Nancy 默认情况下未启用基于 cookie 的会话,所以我将其添加到我的引导程序中:

没有骰子。每次要求一个新的会话时,我仍然会得到一个新的会话。

但是,真的,我不想诊断我的问题。我宁愿听听在 Nancy 中处理 NHibernate 会话管理的标准方法是什么。

0 投票
3 回答
2158 浏览

asp.net - ASP.NET 网络表单的 Nancy 路由

我一直在尝试在我的 webforms 项目中实现 Nancy。我已阅读本指南: https ://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-asp.net

我已将此添加到我的配置中:

我创建了一个“/nancy”文件夹,其中包含一个 web.config 文件:

我有以下 C# 代码:

这在访问 '/nancy/ok' 时有效但是当我将我的 'Get["/ok"]' 更改为 'Get["/ok/ok"]' 并访问 '/nancy/ok/ok' 我得到 404未找到(小巨魔图像和所有)

编辑* 如果我把它留在 'Get["/ok"]' 并访问 /ok/ok/ok 我会得到 "Ok" 回来......

任何想法为什么我不能制定更具体的路线?

问候疯子

0 投票
2 回答
29675 浏览

c# - 使用 NancyFx 的好处?

还有另一个用于进行 HTTP 调用的框架,称为 NancyFx。我的问题是使用它有什么好处。我快速浏览了文档:

https://github.com/NancyFx/Nancy/wiki/Documentation

并且看起来没有我想使用它的出色功能。通过 WebHttp 使用它有什么好处?

PS:我一直在读一些奇怪的短语,一遍又一遍地重复“super-duper-happy-path”。除了这个“超级快乐的路径”之外还有什么?实现了哪些真正的功能?

0 投票
2 回答
472 浏览

asp.net - 禁用站点部分的表单身份验证

我有一个在 IIS7 下运行并启用了表单身份验证的 ASP.net MVC3 应用程序。在应用程序的一个文件夹下还有一个共同托管的 Nancy 服务。

问题是,只要 Nancy 服务返回 401(未授权)状态,请求就会自动重定向到登录页面。

有没有办法告诉 ASP.net 忽略从该文件夹返回的 401 错误,只返回原始的 json 响应?

0 投票
3 回答
2494 浏览

asp.net - 无法访问 Nancy 模块中的 ASP.NET 会话对象

我正在尝试将 MVC3 应用程序与一些 Nancy 模块结合起来。在我的应用程序中,我试图在 MVC3 控制器中设置一个会话变量,然后在 Nancy 模块中读取该变量。当我尝试读取 Nancy 控制器中的变量时,Session 对象为空。

这是我的 MVC3 控制器、Nancy 模块和根 web.config 的要点。

https://gist.github.com/3105219

在应用程序的 MVC3 部分中进行比较时,看起来挂在当前 httpcontext 上的所有(大多数)其他对象都不为空,并且看起来“正常”。

编辑:进一步的测试表明我无法在原始 Nancy 应用程序中访问 ASP.NET 会话。我使用本页底部“创建您的第一个 Nancy 应用程序”部分中的步骤创建了该应用程序。

https://github.com/NancyFx/Nancy/wiki/Introduction

这是简单的 Nancy 应用程序的 web.config。

https://gist.github.com/3105583

0 投票
3 回答
6856 浏览

nancy - 如何在 NancyFX 中编写流式输出?

我正在使用 Nancy 编写一个简单的 Web 应用程序。至少一个请求会导致未知长度的流,所以我无法提供Content-Length. 我想使用Transfer-Encoding: chunked, 或(在这种情况下同样可以接受,Connection: close)。

我对 Nancy 源代码进行了快速破解,并且添加Response.BufferOutput了 , 和代码以设置HttpContext.Response.BufferOutputfalse. 你可以在这里看到:

它似乎没有任何效果。5 秒后立即出现响应。我已经测试了这个基于简单WebRequest的客户端。

如何让分块输出在 Nancy 中工作?我正在使用 ASP.NET 托管,但我会对其他托管选项的答案感兴趣。

如果我使用 编写一个简单的服务器HttpListener,我可以设置SendChunkedtrue,它会发送分块输出,我的简单客户端会正确接收分块输出。