问题标签 [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.
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 HttpRequestMessage
1。
为了让它工作,我需要声明这样的方法(VB.Net)
但后来我需要手动解析 JsonValue 。那么旧版本究竟是如何工作的呢?有什么办法可以让我恢复这种行为吗?
最好的问候杰斯珀
windows-phone-7 - 背景传输请求 WP7
我正在使用后台传输将照片上传到我的 Web 服务。由于照片上传会消耗大量时间和内存,我认为使用后台传输请求来完成此操作可能是一个好主意。照片上传后,我想获取上传照片的Id,然后用于后期处理。但是,事实证明我不能在后台传输请求中这样做。
据我了解,后台传输仅使用以下逻辑:
您必须获取要上传的文件,然后将其保存/复制到应用程序的独立存储文件夹下:shared/transfers。这是极其重要的。显然,在其他位置使用文件对我不起作用。也许它不是共享/传输,而是“相对”路径。但我会坚持同样的约定。
将文件保存在该位置后,可以基于该位置创建后台请求。除了文件内容之外,您似乎无法传递 POST CONTENT,因此文件名、mime 类型等任何其他参数都需要仅作为 QUERY String 参数传递。我可以理解这一点,但如果我可以将两者都作为 POST 内容传递,那就太好了。我不认为 HTTP 对其工作方式有限制。
下面是一些使用 Hammock 创建请求的代码:
就我而言,我实际上是使用查询字符串传递所有必要的参数。成功保存后,我的 Web 服务会返回我刚刚上传的照片的 ID。但是:没有办法(或至少我知道)获得和评估响应。后台传输请求事件处理程序不公开响应。这是我的事件处理程序:
所以现在我的问题是,在这种情况下,有人如何进行任何类型的 POST 处理?谁能告诉我设计这样一个不灵活的类背后的思路?任何关于我如何解决这个问题的想法都将不胜感激。
另外,有没有人有任何本土BackgroundTransfer的工作示例?
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。开发环境具有自签名证书,而生产环境将具有真实证书。
.net - 使用 WCF Web Api 大量返回动态类型/Expandos?
我想通过 WCF Web Api 使用 Massive 进行数据访问,并从我的 Web api 返回动态或 ExpandoObject / IEnumerable<ExpandoObject>。
我基本上使用 JsonNetMediaTypeFormatter 工作,它使用 Json.NET 的 ExpandoObject 序列化,但所有内容都作为 Json 中的键值对返回,例如:
但是,我想要的是:
好像我使用的是具体类型,例如:
当从 WCF Web Api 返回时,关于如何将动态/ExpandoObject 格式化为具体对象的任何想法?
c# - 降低服务类的复杂性
我正在使用 WCF Web Api preview 5 开发一个 web api。目前我有一个功能齐全的资源类,但我如何注意到我在这个资源中的方法变得越来越复杂。
例如:
正如您可能注意到的那样,此方法的任务是发布新的物理测试,但它实际上也在验证我的模型(我仍然缺少很多验证,属性验证),这不应该是此类关注的问题。是否有任何可行的方法来降低资源内方法的复杂性?
c# - 验证模型属性 WCF Web APi
我有一组使用 WCF Web Api 托管的服务,我需要做的是验证应用程序模型中的属性。
例如,在 MVC 3 中,我像这样装饰模型中的属性:
然后在控制器中我像这样继续验证模型是否满足验证参数:
有没有办法在 WCF Web Api 中做类似的事情?
asp.net-mvc-3 - 设置 ObjectContent Web API Preview 5 的最大大小
当我使用 ObjectContent 对象创建 HttpContent 以通过 HttpClient 向 Web API 服务发送请求时,我收到以下错误:
无法将比配置的最大缓冲区大小更多的字节写入缓冲区:65536
以下代码用于发送请求。Card 对象有大约 15 个属性。
如何将配置的大小更改为大于 65,536?
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 库的情况下做到这一点?
提前感谢您的帮助!
丹尼尔
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 版本中发布,以及何时发布。
我发现自己处于困境和困境之间,如果可能的话,我希望更广泛的社区为我提供一些指导。
asp.net-mvc-3 - 注册路由 wcf web api
我目前正在使用 WCF Web Api 开发的 Api 有问题,这就是问题:
我想将几个资源类注册为服务合同。所以我有一个 RootResource,我可以从中访问 ChildResource1、ChildResource2、ChildResourceN。
本质上,我想要做的是使用以下路由结构执行一系列 http 操作:
- GET / RootResource /{RootResouceId}/ ChildResourceN /{ChildResourceNId} (这将从RootResource中获取第N个ChildResource)
我当前的资源注册:
我的操作在资源中注释如下:
然而这种方法对我来说并不方便,因为我所有的路线都需要有相同的模式,我上面提到的那个。
如果我现在想注册另一个资源,别说 ChildResource2,那么:
请注意,基本路由是相同的,而 WCF Web Api 不允许这样做。