我试图了解IIS 7.5如何处理POST和PUT请求.
我正在使用OpenRasta框架编写RESTful服务.POST操作没有任何问题,但相同URL的PUT操作不会.它返回如下错误
Detailed Error Information
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Run Code Online (Sandbox Code Playgroud)
网址如下"http://localhost/MyService/Resource.Something.manifest"
相同的设置在Visual Studio开发IIS中工作正常.
解
基本上默认的ExtensionlessUrlHandler不接受PUT和DELETE动词.只需要添加它们.
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
Run Code Online (Sandbox Code Playgroud) 我想实现我的资源的部分更新,因为我有大量资源,并希望从它更新部分信息.我已经通过以下链接,但无法
弄清楚是否使用HTTP POST或PATCH方法.
http://jacobian.org/writing/rest-worst-practices/
https://github.com/archiloque/rest-client/issues/79
http://tools.ietf.org/html/draft-dusseault-http-patch-16
http://greenbytes.de/tech/webdav/draft-dusseault-http-patch-06.html
http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch
http://bitworking.org/news/296/How-To-Do-RESTful-Partial-Updates
https://github.com/dharmafly/jsonpatch.js
请为此建议任何有效的解决方案.
我正在尝试将OpenRasta用于简单的RESTful服务.需要使用http基本身份验证或(最好)摘要来保护此服务.
环顾净,有几十网页的编写OpenRasta是多么美妙,它甚至支持摘要式身份验证,但我一直没能找到如何启用或者那些为我服务的一个例子.
在我的方法或处理程序上放置RequiresAuthentication似乎没有做任何事情.
有没有人真的这么做过?或者它只是一个梦想软件?
UPDATE:我放弃了自己动手,用OpenRasta的斯科特Littlewoods叉去了.他改变了身份验证的工作方式,并使用他的实现,我设法做了基本和摘要.
我在这个问题中看到WCF Web API仍在预览中,我刚刚开始关注OpenRasta.
虽然OpenRasta看起来比WCF Web API更成熟,但我仍然有点困惑.或者请建议是否有任何其他更好的框架用于在.NET堆栈上构建REST API.
此外,我观察到,在aspx view
包含HTML的OpenRasta 中,除了其他JSON/XML表示外,还可以呈现为响应(以ASP.NET MVC方式).那么,是不是说我甚至可以(或建议我应该)构建Web应用程序也将作为一个服务层到3 次使用它方客户端开发人员?或者它只是用作服务层?
我在ASP.NET 4 Web应用程序中使用OpenRasta 2.0.3214.437.我正在使用以下内容在内部容器中注册自定义依赖项:
ResourceSpace.Uses.CustomDependency<IRepository, Repository>(DependencyLifetime.PerRequest);
Run Code Online (Sandbox Code Playgroud)
这适用于第一个请求; 记录消息后,第二个请求抛出OpenRasta.DI.DependencyResolutionException:
忽略构造函数,以下依赖项没有注册:IRepository
DependencyLifetime.Singleton和DependencyLifetime.Transient工作正常,只是PerRequest似乎有问题.我在卡西尼跑.难道我做错了什么?
虽然Mono支持对我们来说不是什么大不了的事,但我认为OpenRasta支持它,因为它有一些关于它的提交消息.
好吧,我尝试在Mono上构建它并获得了Ambiguous类型引用(在手动创建10个obj
目录之后.)所以我尝试使用我手头上的预构建程序集,这给了我一个Object Reference Not Set To Instance of an Object
(我用单声道的常见错误.. )at OpenRasta.Diagnostics.DebuggerLoggingTraceListener.WriteAll
(使用xsp2)
是否有官方支持Mono或我错过了一些额外的部署步骤?
我有一个网站被轮询相当难以从多个客户端(浏览器,其他应用程序,unix shell脚本,python脚本等)的相同资源的JSON表示.
我想添加一些缓存,以便将一些资源缓存在服务器中一段可配置的时间,以避免CPU处理请求并将资源序列化为JSON.我当然可以在处理程序中自己缓存它们,但是然后会对每个请求进行序列化命中,并且还必须修改处理程序的负载.
我看过openrasta-caching模块,但认为这只是用于控制浏览器缓存?
因此,在编解码器生成后,有关如何让openrasta缓存资源的呈现表示的任何建议?
谢谢
有没有人使用OpenRasta框架的Spark或Razor视图引擎?或者除了WebForms构建之外的任何关于视图引擎的建议?
有人能够给我一个快速指针,告诉我如何获得一个返回字节数组的OpenRasta处理程序.要在ResourceSpace中公开,而不是JSON或XML对象.即我不希望它转码,我只是希望能够将媒体类型设置为"图像/ PNG"或类似.
使用ASP.Net MVC我可以通过返回使用FileContentResult来完成它
File(myByteArray, "image/PNG");
Run Code Online (Sandbox Code Playgroud)
我只需要知道OpenRasta的等价物.
谢谢