问题标签 [operationcontract]

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 投票
0 回答
81 浏览

wcf - 通用合约 WCF Web 服务,OperationContract

OperationContract在接口中已经这样定义了。

Program.cs上,当我打电话时

获取错误 ProcessMessage,当前上下文中不存在。请告诉我,是不是语法错误?或者我误解了

从客户端调用时。

0 投票
1 回答
970 浏览

wsdl - OperationContractAttribute.Action 值是如何设置的?

我在 Visual Studio 中使用“添加服务引用”选项,以便使用第三方提供给我的 WSDL 文件创建代理类。我得到了 WSDL 的 2 个版本——我们称它们为“OLD”和“NEW”。

即使 WSDL 文件假设是相同的(新的有更新的方法版本),在创建代理类时,我在 OperationContractAttribute.Action 中得到不同的值。

在 OLD wsdl 中,它看起来像这样:

在新的 wsdl 中,它看起来像这样:

我无法弄清楚“Action”值的来源。

在旧的 WSDL 中,该值是有效的,但在新的 WSDL 中是完全错误的,并且在尝试使用 WS 中的服务时出现异常

当我查看 OLD wsdl 文件时,我可以看到具有相同值的“soapAction”;这似乎是它的来源。然而,在 NEW wsdl 中有一个与 OLD wsdl 完全相同的值

任何人都可以指导我到正确的地方吗?

更新

在阅读了有关“操作”元素的更多内容后,我意识到我在 NEW wsdl 中看到的值是默认值(请参阅https://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute。动作(v=vs.110).aspx

现在我需要了解为什么在 OLD wsdl 文件中我们得到的 Action 值是正确的(我从正确操作下的 wsdl 文件中定义的soapAction猜测)并且在 NEW wsdl 中没有匹配项和一个填充默认值?

0 投票
2 回答
257 浏览

c# - WCF 服务仅接收 65536 String.Length 大小,不超过

我创建了一个 WCF 服务,它接收字符串(Text/Json)作为请求,但问题是它只能接收长度为 65536(String.Length)的字符串。我通过谷歌搜索在下面尝试过(绑定 maxReceivedMessageSize="2147483647"),但没有任何变化,它只能接收 65536 的 String.Length 大小,仅此而已。我是 dotNet 和 WCF 词的新手,有人可以帮我向该服务发送大数据(我想向我的 WCF 服务发送大约 10MB 的数据)。

0 投票
1 回答
1669 浏览

c# - 如何通过 WCF 服务发送 PDF 文件?

我目前正在使用 Visual Studio 2015 并且正在构建一个网站。我曾尝试使用具有 3 层架构的 OperationContracts 和 ServiceContracts,但是,我只能做基本的事情(使用普通字符串/int 创建、检索、更新、删除)。

我想问一下,对于Web Service WCF,是否可以从另一个数据库中检索PDF 文件?

这是我正在努力的场景:

  1. 公司 A 使用 Web 服务 (WCF) 从供应商 A 处检索发票数据(全部在不同的属性中,例如 InvoiceNum、PaymentAmt 等)。
  2. A公司使用外部API将所有字段填写到模板中并下载为PDF文件。
  3. 公司 A 使用 Web 服务 (WCF)发票 PDF 插入供应商 A 的数据库并存储为 PDF 文件。
  4. 公司 A 将 PDF 作为类型 BLOB 存储在他们自己的数据库 (SQL LocalDB) 中。

上述情况可能吗?如果可能,是否有任何指南/已知链接我可以参考/尝试来实现该场景?

0 投票
1 回答
110 浏览

wcf - WCF - 从另一个服务调用 WebGet 请求

我正在集成一个 Web 服务。服务在完成它的事情后要求重定向的 url 参数。

我创建了一个 WebGet 请求,例如: myserviceUrl/redirect/someVal/someOtherVal 并将请求的 url 作为参数提供。

现在,当我将 url 输入浏览器(从 VS 作为 localhost 运行)时,我可以确认它按预期工作。但是,当从 Web 服务调用我作为参数提供的地址时,浏览器会显示一个页面,上面写着

服务 - 不允许的方法。

如果我单击地址栏并按 Enter 键(使用似乎正确的 url),它就可以工作。

这个问题的根源是什么,是域还是身份验证?我该如何解决这个问题。是否有web.config我可以更改的设置或我应该修改的某些请求属性?

我在网上搜索了很多,但似乎找不到有效的解决方案。

编辑:基于 oshvartz 的评论)

这是我出于测试目的从服务初始化中调用的 DLL。

IService1.cs:

服务1.svc:

0 投票
1 回答
85 浏览

xml - 将前缀更改为继承自 OperationContract 命名空间的 DataContract

请我需要从此 XML 更改 FORMULARIO 的前缀 (Tem: TO Men1:):

问题是我无法将命名空间设置为 OperationContract 以覆盖命名空间基础。在这个追逐中,OperationContract 是 Xml 的 DataContract 的父级。

我的代码是:

0 投票
1 回答
82 浏览

c# - Wcf 方法接口作为参数在客户端被视为对象

我在 OperationContract 中使用接口作为输入参数。但是当我在客户端生成代理类时,客户端方法被视为:GetDat(object value) 而不是 GetData(IMyObj value)

  1. 服务接口
  1. 服务等级
  1. 界面
  1. 数据合约

注意:stackoverflow 上有很多关于接口参数和 wcf 的类似问题。但他们都告诉使用 ServiceKnownType 属性和 KnownTypeAttribute(我这样做了)。但它仍然给客户端的调用方法一个对象作为参数类型,而不是我的接口类型。

0 投票
1 回答
41 浏览

c# - 重载操作 wcfservice

也许我混淆了一些东西,但我找不到任何关于接收 SOAP 消息的 wcf 服务的重载操作的问题或文档。

目标:我有 3 条 SOAP 消息进入我的 wcf 服务,在同一端点上具有相同的操作名。这是固定的,我无法更改。

我希望以下 wcf 接口可以工作:

问题:如果我只有一个这样的操作合同,我的服务可以工作,但是如果我有多个操作合同,则会弹出以下错误:`

500System.ServiceModel.ServiceActivationException

我相信它不能有多个具有相同操作名称的操作合同。我也相信这应该是可能的,因为我正在替换一个可以处理具有相同操作名的所有 3 条消息的肥皂服务。(wcf和soap不应该那么远吗?)

我添加了操作名称以解决问题,但没有运气。

任何帮助都将不胜感激。谢谢!

0 投票
0 回答
116 浏览

c# - 在 SOAP 响应中返回多个元素

我在用着:

  • .NET Core 3.0 (C#)
  • 用于序列化的 SOAPCore
  • SQL 服务器

我有一个来自遗留系统的预构建 SOAP 服务,该服务提供由两 (2) 个元素(RequestHeader 和 SearchPolicyDetails)构成的请求:

如果我在我的 SOAP 端点上使用单个端点(即 RequestHeader 返回我想要的数据或 SearchPolicyDetails 返回我想要的数据。但是我想让它们连续运行,以便我可以从每个端点返回数据,我可以让两者都运行)变成一个单一的回应:

这是否可能,因为我不知道是否有可能让构建遗留系统的团队更新请求对象。目前,如果我在同一个请求中运行它们,则有效负载仅返回第一个元素的数据。

0 投票
0 回答
98 浏览

c# - 带有参数的 C# SOAP OperationContract 不会出现在 WSDL 中

我已经使用 .netCore 5 WebApi 编写了一个 SOAP 服务器。在这我已经实现了一个名为 TestMethodTestMethodAsync(TestRequest request)但在我的 WSDL 文件中的参数不是为此方法命名的

我的代码:

和 WSDL 文件:

但问题是,当我生成客户端时,TestMethodAsync 没有输入参数。