问题标签 [wcf-web-api]

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 投票
1 回答
570 浏览

wcf-web-api - 从 WCF Web API 返回 JSON

WCF Web API 根据请求标头中的 Accept 参数返回 XML 或 JSON 数据,而不考虑我们是否在 WebInvoke/WebGet 属性中设置了 ResponseFormat=WebMessageFormat.Json。这是 API 的正确行为还是错误?

0 投票
0 回答
533 浏览

wcf-web-api - WCF Web Api REST 服务中的 Https 错误

我有一台装有 IIS 5.1 的 windows xp 机器,并且我已经使用自创证书签署了默认网站。现在,我使用在默认网站下运行的 WCF Web API 构建了一个 REST 服务,当我尝试调用特定资源时,出现以下错误。

提供的 URI 方案“https”无效;预期的“http”。参数名称:context.ListenUriBaseAddress

这是我的配置,

这是资源类,

这是我的 Global.asax.cs,

注意:在 VS 开发服务器中运行时一切正常。

0 投票
1 回答
380 浏览

asp.net-mvc - ASP.NET MVC 和 WCF Web API 是否使用相同的路由模块?

ASP.NET MVC 和 WCF Web API 是否使用相同的路由模块将传入请求路由到特定的类方法?

0 投票
1 回答
249 浏览

wcf-web-api - 子对象未绑定到 wcf web api 中的模型

我正在使用 WCF Web API 创建一个安静的服务。我有一个带有以下签名的方法

Job 对象有一个子对象 RecurDay。表单中发布的值没有绑定到 RecurDay 属性,实际上 RecurDay 对象本身没有被创建。

注意:表单字段的名称与类属性相同。前任。Id、JobName、RecurDay.Id、RecurDay.Day 等。Id、JobName 已正确映射,但 Address.Id 和 RecurDay.Day 未映射。

0 投票
1 回答
2101 浏览

wcf - 在 MVC 3 应用程序中从 WCF Web API 返回 401 Unauthorized

我正在使用 WCF Web API(最新版本,我认为是 0.5,从 VS2010 Ultimate 集成包依赖 GUI 获得)。

我已经公开了一个简单的 API 类,并且在每个方法中我都在调用对用户执行授权。当用户未经授权时,我会使用 401/未经授权的代码抛出 HttpResponseException。

这有效,您可以看到在 Http 处理程序链中的某个点,401 被捕获。问题是 API 所在的站点包含 ASP.NET Forms 身份验证......所以当看到 401 时,它会尝试将我的客户端请求转发到登录页面。

如何为我的站点中的特定子目录禁用此行为?我试过设置“api”的位置总是允许用户......但我仍然抛出一个 401,它仍然会导致 ASP.NET 尝试将我重定向到登录页面。

我确定我只是缺少一个简单的配置设置,它告诉表单身份验证忽略对 /api/* 目录的请求,但我找不到任何信息。

0 投票
1 回答
769 浏览

json - DataContractJsonSerializer 在字符串中留下引号

我在 Windows Phone 7.1 (Mango RC) 上使用 DataContractJsonSerializer 从 Web 服务中提取数据。我的网络服务中的数据如下所示:

如果您想知道,此数据位于 CouchDB map/reduce 查询的下游,其输出如下所示:

在我的 WP7.1 客户端中发生的情况是,当我从 JSON 的第一个 blob 中反序列化对象数组时,我实际上是在字符串中获取引号,我不得不逐个属性地手动将它们剥离。

我的 WP7.1 客户端访问的 Web 服务是 v0.5 WCF Web API RESTful 服务,我将该数据公开为 JSON。

我在这个管道的某个地方做错了什么导致引号被逐字处理......或者我可以用 DataContractJsonSerializer 做些什么来使它实际上不给我引号?

0 投票
3 回答
1204 浏览

ninject - Ninject 使用 WCF Web API Preview 5

谁能指出我正确的方向来让 Ninject 使用 WCF Web API Preview 5?我在我的 ASP.NET MVC 3 项目以及另一个使用 Ninject.Extensions.Wcf 库的内部 WCF 服务中成功启动并运行了它。但是,在创建新的 MVC 3 项目并从 NuGet 获取 WebApi.All 库时,我无法让它工作。

我已经查看了这篇 stackoverflow 帖子Setting up Ninject with the new WCF Web API但无法使其正常工作,我认为这可能与最新版本中的一些更改有关。

我也不确定除了主要的 Ninject 库之外还可以引用哪些 Ninject 库。我是否使用 Ninject.MVC3、Ninject.Extensions.Wcf。

对此的任何帮助将不胜感激。

****更新**

我正在使用的代码来自上述问题的答案。我在它自己的类文件中有这个。

这是我在 global.asax 中的:

我遇到的问题是 IResourceFactory 接口无法识别并且 HttpConfiguration.Create() 不再存在,所以我需要设置 SetResourceFactory 其他方式,我尝试使用 HttpConfiguration().CreateInstance 方法但没有喜悦。

0 投票
1 回答
866 浏览

wcf - WCF/WebAPI:当我将多个参数传递给 WebGet 方法时出现 HTTP 500 错误

我有一个非常愚蠢的问题,但由于某种原因,我无法在网上找到任何治疗方法或有关它的信息。

摘要:我不能将多个参数传递给 WebGet 方法。如果我这样做了,服务器会返回 HTTP 500 错误并且该方法不会执行。我的代码和请求如下。

Global.ASAX.CS: routes.SetDefaultHttpConfiguration(new WebApiConfiguration() { EnableHelpPage = true, EnableTestClient = true }); RouteTable.Routes.MapServiceRoute("api/");

此请求执行良好: http://localhost:9000/api/Webmail/?messagetype=1

这个返回 500 错误:

http://localhost:9000/api/Webmail/?messagetype=1&unreadonly=0&skip=0&take=100

信息:VS2010 SP1 + ASP.NET 4 + Entity Framework 2001 年 6 月 CTP + 最新的 WebAPI

提前感谢您的帮助!

PS我试图在查询字符串中对“&”进行HTML编码——没有效果。

0 投票
2 回答
334 浏览

visual-studio - 为什么我在 Visual Studio 2010 中没有获得 WCF Web API 对象

我已经使用 NuGet Visual Studio 扩展 (WebApi.All) 安装了 WCF Web API Preview 5。我正在尝试在互联网上实现一些简单的示例,但似乎它们与我安装的程序集有不同的程序集。例如,我无法获取 HttpHostConfiguration、DelegatingChannel、HttpMessageChannel 等。

我已确保我的目标框架设置为“.NET Framework 4”。我是否遗漏了什么,或者是否有其他人遇到过类似的问题。顺便说一句,我的项目是一个 MVC3 项目。

谢谢你的帮助。

0 投票
2 回答
497 浏览

windows-phone-7 - WCF Web API、吊床和 WP7 问题

当我在 Hammock 和 WP7 中使用 WCF Web API 时遇到一个有趣的问题。如您所知,WCF Web API 允许您根据您在 Accept 标头中指定的内容更改响应类型。例如,如果您发送 Accept:application/json,则响应为 JSON,如果您指定 application/xml,您将获得 XML 等等。

所以我创建了我的 Web API,它在 Web 浏览器上运行得非常好。正如预期的那样,我得到了我想要的类型。但是,当我从 WP7 使用它时,Accept 标头是什么并不重要,看起来 WP7 将其替换为/并且我只返回 XML。

我知道问题不是 Hammock,因为我尝试使用 Facebook Graph API。如果我将 Accept 更改为:application/hello,则会收到错误的请求错误。但是,当我在 C# 代码中使用 WP7 执行此操作时,我绝对没有错误,并且无论我发送什么,返回类型都是 XML。

为了避免这个问题,我在我的 WCF Web API 中创建了一个 JSON.Net Serializer。一切都很好,直到我开始在我的方法中使用 HttpResponseMessage 作为返回类型。现在,即使我有一个 JSON 序列化程序,我也会为使用 HttpResponseMessage 的所有方法获取 XML。

如你所见,我现在在拉拉地。

任何人都可以提供任何反馈吗?

非常感谢任何帮助。