问题标签 [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 回答
2049 浏览

wcf - 将多个参数传递到 WCF Web API 服务

我想知道创建 WCF-Web 服务时发生的幕后魔术。

在一个旧项目中,我得到了可以从 JavaScript 调用的方法,如下所示

这在我从 JavaScript 发送 { "x": "something", "y": 1, "z": 1.5 } 时有效。

在创建该 Web 服务几个月后,我找到了 WCF Web API 并尝试制作类似的东西。

不同之处在于我使用 HttpServiceHostFactory() 在 Global.asax 中创建了路由

现在,当我尝试调用该方法时,我得到了这样的异常

异常详细信息:System.InvalidOperationException:HttpOperationHandlerFactory 无法确定应与服务操作“Invoke_LoginRequest”的请求消息内容相关联的输入参数。如果操作不期望请求消息中的内容,请使用 HTTP GET 方法进行操作。否则,请确保一个输入参数的 IsContentParameter 属性设置为“True”,或者是可分配给以下之一的类型:HttpContent、ObjectContent 1, HttpRequestMessage or HttpRequestMessage1。

为了让它工作,我需要声明这样的方法(VB.Net)

但后来我需要手动解析 JsonValue 。那么旧版本究竟是如何工作的呢?有什么办法可以让我恢复这种行为吗?

最好的问候杰斯珀

0 投票
1 回答
1599 浏览

windows-phone-7 - 背景传输请求 WP7

我正在使用后台传输将照片上传到我的 Web 服务。由于照片上传会消耗大量时间和内存,我认为使用后台传输请求来完成此操作可能是一个好主意。照片上传后,我想获取上传照片的Id,然后用于后期处理。但是,事实证明我不能在后台传输请求中这样做。

据我了解,后台传输仅使用以下逻辑:

  1. 您必须获取要上传的文件,然后将其保存/复制到应用程序的独立存储文件夹下:shared/transfers。这是极其重要的。显然,在其他位置使用文件对我不起作用。也许它不是共享/传输,而是“相对”路径。但我会坚持同样的约定。

  2. 将文件保存在该位置后,可以基于该位置创建后台请求。除了文件内容之外,您似乎无法传递 POST CONTENT,因此文件名、mime 类型等任何其他参数都需要仅作为 QUERY String 参数传递。我可以理解这一点,但如果我可以将两者都作为 POST 内容传递,那就太好了。我不认为 HTTP 对其工作方式有限制。

下面是一些使用 Hammock 创建请求的代码:

就我而言,我实际上是使用查询字符串传递所有必要的参数。成功保存后,我的 Web 服务会返回我刚刚上传的照片的 ID。但是:没有办法(或至少我知道)获得和评估响应。后台传输请求事件处理程序不公开响应。这是我的事件处理程序:

所以现在我的问题是,在这种情况下,有人如何进行任何类型的 POST 处理?谁能告诉我设计这样一个不灵活的类背后的思路?任何关于我如何解决这个问题的想法都将不胜感激。

另外,有没有人有任何本土BackgroundTransfer的工作示例?

0 投票
2 回答
688 浏览

wcf - 带有 HTTPS 的 WCF Web API

只是为了提供一些背景。ASP.NET MVC2 Web API 5 IIS 7

我正在尝试使用 WCF Web API,一旦启用 HTTPS,它就会停止工作。

我注意到的事情:我的 API 调用是通过 jquery 进行的,我有类似这样的 url: http ://www.domain.com/api/serviceApi/SetForeignToken?token=ASDAS-ASDAS-ASDASD-ASDASDAS&foreignToken=AS123ASD

当我使用 API 测试 UI 时,我通过: https ://www.domain.com/api/serviceApi/Test 我看到测试 url: https://devserver.ad.domain.com/api/serviceapi/SetForeignToken? token=ASDAS-ASDAS-ASDASD-ASDASDAS&foreignToken=AS123ASD 看起来很奇怪,它将 DNS 解析为机器名称,而不是像以前没有 HTTPS 那样保持正常的 DNS。

有谁知道如何配置 API 以使其在 HTTPS 下工作,或者甚至有可能吗?

谢谢,

PS。开发环境具有自签名证书,而生产环境将具有真实证书。

0 投票
2 回答
1170 浏览

.net - 使用 WCF Web Api 大量返回动态类型/Expandos?

我想通过 WCF Web Api 使用 Massive 进行数据访问,并从我的 Web api 返回动态或 ExpandoObject / IEnumerable<ExpandoObject>。

我基本上使用 JsonNetMediaTypeFormatter 工作,它使用 Json.NET 的 ExpandoObject 序列化,但所有内容都作为 Json 中的键值对返回,例如:

但是,我想要的是:

好像我使用的是具体类型,例如:

当从 WCF Web Api 返回时,关于如何将动态/ExpandoObject 格式化为具体对象的任何想法?

0 投票
1 回答
200 浏览

c# - 降低服务类的复杂性

我正在使用 WCF Web Api preview 5 开发一个 web api。目前我有一个功能齐全的资源类,但我如何注意到我在这个资源中的方法变得越来越复杂。

例如:

正如您可能注意到的那样,此方法的任务是发布新的物理测试,但它实际上也在验证我的模型(我仍然缺少很多验证,属性验证),这不应该是此类关注的问题。是否有任何可行的方法来降低资源内方法的复杂性?

0 投票
4 回答
3516 浏览

c# - 验证模型属性 WCF Web APi

我有一组使用 WCF Web Api 托管的服务,我需要做的是验证应用程序模型中的属性。

例如,在 MVC 3 中,我像这样装饰模型中的属性:

然后在控制器中我像这样继续验证模型是否满足验证参数:

有没有办法在 WCF Web Api 中做类似的事情?

0 投票
3 回答
1876 浏览

asp.net-mvc-3 - 设置 ObjectContent Web API Preview 5 的最大大小

当我使用 ObjectContent 对象创建 HttpContent 以通过 HttpClient 向 Web API 服务发送请求时,我收到以下错误:

无法将比配置的最大缓冲区大小更多的字节写入缓冲区:65536

以下代码用于发送请求。Card 对象有大约 15 个属性。

如何将配置的大小更改为大于 65,536?

0 投票
2 回答
820 浏览

xml - 如何在使用 Web Api 的 WCF Web 服务中将 JsonValue 对象序列化/反序列化与 XML 之间的序列化/反序列化?

因此,我一直在使用最新的 Web API 程序集开发 WCF Web 服务,并且我喜欢 JsonValue 对象。

我想要做的是接受绑定到 JsonValue 对象的 JSON,然后将该 JsonValue 对象转换为等效的 XML 表示形式,该表示形式可以传递到存储过程中进行处理。这消除了创建对象以将 JsonValue 绑定到的需要,这使事情保持流畅。

然后我希望能够以 XML 格式从数据库中选择数据,然后将其转换为 JsonValue 以返回给客户端。

我已经能够通过这种扩展方法将 JsonValue 转换为 XML 的字符串表示形式:

有一个更好的方法吗?这种方法很好,但我只是想知道。

我还能够使用 Json.NET 库将 XML 字符串值转换回 JsonValue 以将 XML 字符串转换为 JSON 字符串,然后将字符串加载到 JsonValue 对象中,如下所示:

这种方法很好,但我不想依赖 Json.NET 库,因为我仅将它包含在这个方法中。有没有办法在不使用 Json.NET 库的情况下做到这一点?

提前感谢您的帮助!

丹尼尔

0 投票
4 回答
423 浏览

wcf - 我应该选择什么框架来构建 WCF Restful API

我想使用 WCF 构建一个 Restful API,但是我正在努力决定如何实现这一点。

WCF Rest Starter Kit 是为 .Net 3.5 开发的,并且没有超过 Preview 2。虽然它可以在当前的 .NET Framework 和 Visual Studio 2010 中使用,但从我的研究来看,它似乎已经死在水中并被当前处于预览版 5 中的新 WCF Web API。

另一方面,WCF Web API 仅处于预览阶段,不应真正用于生产应用程序,因为在其发布之前可能会发生许多变化。也没有迹象表明它是否即将完成,是否将在下一个 .NET Framework 版本中发布,以及何时发布。

我发现自己处于困境和困境之间,如果可能的话,我希望更广泛的社区为我提供一些指导。

0 投票
1 回答
364 浏览

asp.net-mvc-3 - 注册路由 wcf web api

我目前正在使用 WCF Web Api 开发的 Api 有问题,这就是问题:

我想将几个资源类注册为服务合同。所以我有一个 RootResource,我可以从中访问 ChildResource1、ChildResource2、ChildResourceN。

本质上,我想要做的是使用以下路由结构执行一系列 http 操作:

  1. GET / RootResource /{RootResouceId}/ ChildResourceN /{ChildResourceNId} (这将从RootResource中获取第N个ChildResource)

我当前的资源注册:

我的操作在资源中注释如下:

然而这种方法对我来说并不方便,因为我所有的路线都需要有相同的模式,我上面提到的那个。

如果我现在想注册另一个资源,别说 ChildResource2,那么:

请注意,基本路由是相同的,而 WCF Web Api 不允许这样做。