天道酬勤,学无止境

wcf-web-api

DELETE 方法 .NET WebAPI 不起作用(DELETE method .NET WebAPI does not work)

问题 我已经看过很多关于此的帖子,但是我的新 WebAPI 的 DELETE 方法根本不起作用并返回 404,使用 Windows 7 32 位,IIS 7.5。 我试过了 卸载 WebDAV 将 PUT、DELETE、OPTIONS 添加到 ExtensionlessUrlHandler-Integrated-4.0 处理程序(和 32 位/64 位处理程序)。 允许所有模块运行。 一切都无济于事,都返回 404。如果我将 DELETE 类型更改为 GET,则该服务可以完美地运行 GET 命令。 有人对此有任何其他想法吗? 这让我疯狂。 编辑: 我像这样调用 DELETE 方法(介体是 jQuery 调用的包装器): mediator.publish("AjaxCall", { url: "/api/files/" + $(a.currentTarget).data("fileid"), type: "DELETE", } }); 和 WebAPI: // DELETE api/<controller>/5 // [HttpDelete] - Tried this too public void Delete(int fileId) { Files.DeleteFile(fileId); } 和相关的 web.config: <handlers> <remove name=

2021-11-25 09:22:13    分类:技术分享    c#   .net   asp.net-web-api   wcf-web-api

DELETE method .NET WebAPI does not work

I've seen tons of posts about this, but the DELETE method of my new WebAPI simply does not work and returns a 404, using Windows 7 32-bit, IIS 7.5. I've tried Uninstalling WebDAV Adding PUT, DELETE, OPTIONS to the ExtensionlessUrlHandler-Integrated-4.0 handler (and 32bit/64bit handlers). Allowing all modules to run. All to no avail and all return 404. If I change the DELETE type to a GET, then the service runs the GET command perfectly fine. Anyone with any other ideas about this? It's driving me crazy. EDIT: I'm calling the DELETE method like this (mediator is a wrapper around the jQuery call

2021-11-24 06:33:16    分类:问答    c#   .net   asp.net-web-api   wcf-web-api

Hosting a WCF Web API app on AppHarbor?

I've implemented a sample app like the one here. It is a really basic app just to get things started. Everything works fine in IIS on my local machine, I've got it running on my IIS Express as well, but now come the tricky part. I do want to host this on AppHarbor, but I get 404 error. I've started a discussion on the support forum of AppHarbor, and they have taken a screen shot of the error when they run it. It seems like it is something wrong with the routing since the StaticFile handler is used, but I'm just guessing. Does anyone have any suggestions?

2021-11-22 08:09:54    分类:问答    iis   iis-7   appharbor   wcf-web-api

C# WCF Web API + JSONP

Is there an easy way to get JSONP working for the new WCF Web API rest services? I've tried this with no luck <standardEndpoints> <webHttpEndpoint> <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" defaultOutgoingResponseFormat ="Json" crossDomainScriptAccessEnabled="true"/> </webHttpEndpoint> </standardEndpoints>

2021-11-15 09:18:00    分类:问答    c#   c#-4.0   wcf-web-api

按 DateTimeOffset 的 Wcf Web API 过滤器(Wcf Web API filter by DateTimeOffset)

问题 我目前正在使用 WCF Web API Preview 5 并尝试过滤 LastModifiedDate 大于或等于提供的 datetimeoffset 的用户列表: http://api.myapp.com/users?$filter=LastModifiedDate ge datetimeoffset'2011-06-01T14:03:00+00:00Z' 然而,我得到的只是一个错误说: Microsoft.ApplicationServer.Query.ParseException: '.' or '(' expected (at index 34) 过滤似乎工作正常,因为此过滤器返回请求的用户 http://api.myapp.com/users?$filter=UserId eq 1 -- XML Response <?xml version="1.0" encoding="utf-8"?> <ArrayOfUser xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <User> <ExtensionData /> <CreateDate /> <CreatedById>1</CreatedById>

2021-10-31 10:57:29    分类:技术分享    odata   wcf-web-api

在哪里可以找到有关 WCF Web API 的最新文档?(Where can I find up-to-date documentation about the WCF Web API?)

问题 我一直在努力使用 WCF 来按照我希望的方式运行 REST。 显然还有很多其他的。 我听说过 WCF Web Api 项目,但没有仔细研究它就错误地驳回了它。 可悲的是,现在我正在查看它,我发现文档已经过时了。 就像,这篇博文有一些不错的信息,但是类变了,参数变了,简而言之,设计变了。 所以我一直在使用一个关于如何插入 Json.NET (newtonsoft) 作为我的序列化程序的旧示例,只是意识到在我让它工作后,它对我的​​ IErrorHandler 不起作用。 此外,我在如何将字符串从 uri 模板反序列化为操作类型参数时遇到了问题。 然而,似乎我应该能够通过使用媒体格式化程序扩展点以及过时文档中所谓的Processor<..>来解决这两个问题(大概还有很多我还没有遇到过的问题),其中现在是HttpOperationHandler<..> s,除非我误解了。 我的问题很基本,我不知道如何正确配置我的 IIS 托管应用程序以使用我的操作处理程序,假设我已经正确实现了它。 由于在这样一个基本的事情上寻求说明感觉很愚蠢,我宁愿问我在哪里可以找到关于如何做这种事情的一些文档? (当然欢迎解释。) 我不是在看到哪些类存在,或者它们的方法用什么参数命名。 我可以在对象浏览器中看到所有这些。 我需要整体设计的文档,和/或隐含描述以下内容的示例: API 中的不同类如何组合在一起?

2021-10-31 10:26:52    分类:技术分享    wcf   rest   wcf-web-api

如何获取标题值(How to Get Header Values)

问题 如何从 WCF Web API 中的 Web 方法访问标头值? 回答1 你可以尝试这样的事情: (使用 System.Web;) HttpUtility.UrlDecode(HttpContext.Current.Request.Headers["myValue"]);

2021-10-31 10:23:47    分类:技术分享    .net   wcf   http   wcf-web-api   asp.net-web-api

WCF WebApi 的自托管不接受 PUT 动词(WCF WebApi's Self-Hosting not accepting PUT verbs)

问题 我使用使用 PUT 动词的 WCF WebAPI 组合了一个 HTTP 驱动的 API。 当托管在 IIS Express 上托管的 MVC3 项目中时,一切都按设计工作。 然而,当我进行单元测试时,我偶尔想要测试传输方面,而不仅仅是针对我自己的资源。 我的单元测试失败并显示 405 - MethodNotAllowed。 同样,在 IIS 中托管的服务完全相同(我在配置文件中启用了 PUT 和 DELETE 动词)。 我怎样才能让我的测试中使用的“自托管”服务也接受这些动词? 几乎相同的“get”测试有效,所以我不希望以下概念有问题......希望...... [Test] public void PutNewMachine() { // Create new record to add var machine = new Machine { ID = 1, Name = "One", Description = "Machine #1", Location = 1 }; using (var client = new HttpClient()) { using (var request = new HttpRequestMessage( HttpMethod.Put, HOST + "/1")) { request.Content = new ObjectContent

2021-10-30 13:21:12    分类:技术分享    wcf   wcf-web-api

使用 Web Api 作为 HttpPost(Consuming Web Api's as HttpPost)

问题 有人可以帮助我如何将 long 类型的数组发布到 WebApi。 我想我必须从 HttpClient 使用 PostAsync,但我不确定如何将数组放入 HttpContent。 这是我的控制器。 [HttpPost] [Authorize] public void UpdateBatchesToReadyToShip(long[] batchIds) { // process request } 这就是我尝试使用 API 的方式 var buffer = Encoding.ASCII.GetBytes("username:password"); var authHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(buffer)); client.DefaultRequestHeaders.Authorization = authHeader; var arr = new long[3]; arr[0] = 10; arr[1] = 12; arr[2] = 13; HttpContent content = new StringContent(string.Join(",", from i in arr select i.ToString())); var task = client

2021-10-29 09:22:37    分类:技术分享    asp.net-mvc-3   asp.net-mvc-4   asp.net-web-api   asp.net-mvc-areas   wcf-web-api

Consuming Web Api's as HttpPost

Can somebody help me how to post an array of type long to a WebApi. I think I have to use PostAsync from HttpClient, but I am not sure how to put array to HttpContent. This is my controller. [HttpPost] [Authorize] public void UpdateBatchesToReadyToShip(long[] batchIds) { // process request } And this is how I am trying to consume API var buffer = Encoding.ASCII.GetBytes("username:password"); var authHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(buffer)); client.DefaultRequestHeaders.Authorization = authHeader; var arr = new long[3]; arr[0] = 10; arr[1] = 12; arr[2] =

2021-10-26 11:39:02    分类:问答    asp.net-mvc-3   asp.net-mvc-4   asp.net-web-api   asp.net-mvc-areas   wcf-web-api