Windows Communication Foundation是.NET Framework的一部分,它为快速构建面向服务的应用程序提供了统一的编程模型。
我有一些通过 WCF 服务进行通信的客户端和服务器。我需要在它们之间创建“代理”来过滤响应。我已经成功创建了小型 .NET 8.0 应用程序,它接受...
我有一些托管在 Windows 服务中的 WCF 服务。昨天我查看任务管理器,发现我的 Windows 服务进程的 CPU 时间超过 5 小时,而大多数......
.NET 8 / WCF - 此参数的值必须为正数。 (参数“尺寸”)
从 .NET 6/7 更新到 .NET 8 后,我们在尝试使用 nettcp 绑定调用 WCF 终结点时遇到此异常。 该参数的值必须为正。 (参数“尺寸”) 一个...
dotnet 8/WCF - 此参数的值必须为正数。 (参数“尺寸”)
从 dotnet 6/7 更新到 dotnet 8 后,我们在尝试使用 nettcp 绑定调用 WCF 端点时看到了此异常。 该参数的值必须为正。 (参数“尺寸”)
亲爱的, 我正在尝试构建 WCF Web 服务 我有一个带有参数列表的网络方法 如下面的代码: [ServiceContract(命名空间 = "http://com.mwafaqat.update.ws")] 公共接口
我有一个客户端和 WCF 服务正在运行.. 当客户端尝试与 WCF 通信(即从 WCF 获取结果)时,它会抛出以下异常。 套接字连接被中止。这可能是因为...
WCF:每次调用和每次会话服务...需要说服每次调用是值得的
我们目前正在审查 WCF 服务设计,困扰我的一件事是 Per-Call 和 Per-Session 服务之间的决定。我相信我理解 bo 背后的概念...
C# 核心 WCF SOAP1.2 与媒体类型 application/xml 绑定
我有一个任务要 POST 到 HTTP 服务端点,该端点接受 SOAP 信封形式的 Content-Type: application/xml 标头和正文。响应 Content-Type 也始终是 application/xml ...
如何更改 WCf 服务的 wsdl 文件中的默认 schemalocation?
以下是我的服务的wsdl文件: 以下是我的服务的wsdl文件: <wsdl:types> <xsd:schema targetNamespace="http://tempuri.org/Imports"> <xsd:import schemaLocation="http://localhost:3789/VideoUpload.svc?xsd=xsd0" namespace="http://tempuri.org/" /> <xsd:import schemaLocation="http://localhost:3789/VideoUpload.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> <xsd:import schemaLocation="http://localhost:3789/VideoUpload.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/UploadVideoProtocol" /> </xsd:schema> </wsdl:types> ----- <wsdl:definitions> <wsdl:service name="VideoUpload"> <wsdl:port name="BasicHttpBinding_IVideoUpload" binding="tns:BasicHttpBinding_IVideoUpload"> <soap:address location="http://localhost:3789/VideoUpload.svc" /> </wsdl:port> </wsdl:service> </wsdl:definitions> 在上面,我可以通过在服务契约和行为中的代码内指定自定义命名空间来更改命名空间。 但是我需要更改架构位置中指定的端点地址, schemaLocation =“http://localhost:3789/VideoUpload.svc?xsd=xsd0” 我自己定义的端点地址为: schemaLocation =“http://myservice.com:8080/VideoUpload.svc?xsd=xsd0” 实现这一目标的程序是什么?代码中必须提及什么才能更改生成的默认端点?有人可以帮我解决这个问题吗? 您可以通过添加实现“IWsdlExportExtension”的新行为来动态更新 WSDL 元数据中的 WCF 端点地址 public class HostNameAddressBehavior : Attribute, IWsdlExportExtension, IEndpointBehavior, IServiceBehavior { public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters) { } public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime) { } public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) { } public void Validate(ServiceEndpoint endpoint) { } public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters) { } public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { } public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { } public void ExportContract(WsdlExporter exporter, WsdlContractConversionContext context) { } /// <summary> /// Overwrite service meta data /// </summary> /// <param name="exporter"></param> /// <param name="context"></param> public void ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context) { var address = "YOUR_ENDPOINT"; context.Endpoint.Address = new System.ServiceModel.EndpointAddress(address); XmlSchemaSet schemaSet = exporter.GeneratedXmlSchemas; foreach (System.Web.Services.Description.ServiceDescription wsdl in exporter.GeneratedWsdlDocuments) { foreach (XmlSchema schema in wsdl.Types.Schemas) { ChangeSchemaLocation(schemaSet, schema, address); } } } /// <summary> /// Update XSD location /// </summary> /// <param name="xmlSchemaSet"></param> /// <param name="xsdDoc"></param> /// <param name="address"></param> private void ChangeSchemaLocation(XmlSchemaSet xmlSchemaSet, XmlSchema xsdDoc, string address) { foreach (XmlSchemaExternal external in xsdDoc.Includes) { if ((external != null) && string.IsNullOrEmpty(external.SchemaLocation)) { string str = (external is XmlSchemaImport) ? ((XmlSchemaImport)external).Namespace : xsdDoc.TargetNamespace; foreach (XmlSchema schema in xmlSchemaSet.Schemas(str ?? string.Empty)) { if (schema != xsdDoc) { external.SchemaLocation = address + "/?xsd=xsd0"; // set the location; break; } } continue; } } } } 通过代码或配置文件添加新行为。 通过代码: var endpoint = listener.ServiceHost.Description.Endpoints.First(); endpoint.Behaviors.Add(new HostNameAddressBehavior()); 或 按配置: 创建扩展: public class HostNameAddressBehaviorExtension : BehaviorExtensionElement { public override Type BehaviorType { get { return typeof(HostNameAddressBehavior); } } protected override object CreateBehavior() { return new HostNameAddressBehavior(); } } 然后添加: <extensions> <behaviorExtensions> <add name="hostNameAddress" type="YourService.HostNameAddressBehaviorExtension, YourService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> </behaviorExtensions> </extensions>
我发布此内容是因为我无法在 Stack Overflow 上找到任何位置通过连接服务添加服务引用来解决使用 WCF 的 .Net-Core 项目的此问题...
我目前有一个应用程序正在调用服务器上的 Web 服务进行搜索。我们预计会返回大量数据,因此搜索时间超过一分钟是很常见的。 ...
我有一个包含 ASMX Web 服务的项目和一个使用客户端代理连接到它的桌面客户端(使用来自 ASM Web 服务的 WSDL)。 使用 svc 实用程序升级代理以生成 WCF 服务...
我想在现有的 WebAPI 服务中实现“即发即忘”任务。下面的代码只是发送一个日志事件(可能是客户端已连接到服务以执行某些任务......
WCF 更新客户端证书后,我们收到身份验证错误:证书链已正确处理,但其中一个 CA 证书不可信
客户端证书(来自商业 CA)由于过期而被更改,并且与一项服务的通信停止运行 - 我们在服务器跟踪上收到以下错误 System.IdentityModel.Tokens.
使用 WCF 和 HTTP 将 C# 字典序列化为 JSON 对象
我是使用 HTTP 路由的 WCF 服务的新手,但我的新项目使用 WCF。服务返回标有 [DataContract] 和 [DataMember] 属性的对象,作为标记为 w...的服务的一部分返回...
如何从 WCF REST 方法将自定义类型值的字典作为常规 JSON 对象返回?
假设我有一个如下所示的自定义类型: [数据合同] 公共类复合类型 { [数据成员] public bool 已支付 { 得到; 放; } [数据成员] ...
为 http 和 https 端点配置 WCF 4 的路由 (global.asax)
我仍然是 wcf 的新手,总体上对 .net 不太了解。我有一个 WCF 4 Web 服务,它使用 global.asax 路由方法,并使用标准 en...
我有一个复杂的应用程序并遇到了错误。我用以下代码简化了我的实际问题。 我有一个 WCF 服务,其方法可以对我的一个表执行选择: 公共圣...
调用 SOAP 时,“底层连接已关闭:预期保持活动状态的连接已被服务器关闭”
在调用另一个 WSDL 服务时,有时会出现错误“底层连接已关闭:预期保持活动状态的连接已被服务器关闭”。 我使用.Net 4.5 WCF 服务...
WCF 实现 IErrorHandler 遇到注册扩展“enforceGreetingFaults”无法加载
我有一个旧的WCF项目,它接收xml类型的调用后。 最近,呼叫者称他们在拨打我们的端点时遇到 500。 但当我们检查日志时,并没有与...相关的记录