草庐IT

wcf-binding

全部标签

C# - 让 WCF 接受任何 Soap 消息前缀

情况是这样的,有一个现有的客户端,我需要构建一个客户端将要使用的服务器。我不拥有客户端,也无法更改它。客户端SOAP消息可以如下如何让我的服务接受两个带圆圈的前缀。目前它只接受“c2b”前缀,不处理任何带有“ns1”前缀的请求。 最佳答案 您正在将DTO(类对象)传递给服务,但您的wcf服务无法识别确切的类。因此,要使WCF接受任何前缀,只需添加具有适当对象位置的前缀。您只需要再添加一个xmlns属性为.例如。 关于C#-让WCF接受任何Soap消息前缀,我们在StackOverflow

c# - 在不更改接口(interface)返回类型的情况下更改 WCF 中函数的返回类型

我正在为新系统开发具有许多接口(interface)和服务的旧WCF服务。我想在不更改所有服务接口(interface)和实现的情况下更改函数的返回类型,如下所示:interfaceOperationResult{ErrorInfoError{get;set;}}interfaceOperationResult:OperationResult{TResultResult{get;set;}}//oldserviceinterfaceIService{intTestMethod1(TestMethod1Inputinput);voidTestMethod2(TestMethod2Inpu

c# - WCF,BasicHttpBinding : Stop new connections but allow existing connections to continue

.NET3.5、VS2008、使用BasicHttpBinding的WCF服务我在Windows服务中托管了一个WCF服务。当Windows服务关闭时,由于升级、定期维护等,我需要优雅地关闭我的WCF服务。WCF服务的方法最多可能需要几秒钟才能完成,典型的数量是每秒2-5次方法调用。我需要以允许任何先前调用方法完成的方式关闭WCF服务,同时拒绝任何新调用。通过这种方式,我可以在大约5-10秒内达到安静状态,然后完成Windows服务的关闭周期。调用ServiceHost.Close似乎是正确的方法,但它会立即关闭客户端连接,而无需等待任何正在进行的方法完成。我的WCF服务完成了它的方法

c# - 为什么我不能在同一个类上使用 WCF DataContract 和 ISerializable?

我有一个类需要能够序列化为SQLServersession变量并可通过WCF服务使用。我声明如下namespaceMyNM{[Serializable][DataContract(Name="Foo",Namespace="http://www.mydomain.co.uk")]publicclassFoo:IEntity,ISafeCopy{[DataMember(Order=0)]publicvirtualGuidId{get;set;}[DataMember(Order=1)]publicvirtualstringa{get;set;}DataMember(Order=2)]pu

c# - 在方法/数据成员中对 WCF 添加限制

我是WCF的新手,我尝试对数据成员添加限制。例如在这个方法中:[DataMember]publicstringStringValue{get{returnstringValue;}set{stringValue=value;}}我想设置最大和最小长度。我知道如何将限制添加到XML代码中但是有没有办法直接从代码中添加限制? 最佳答案 根据MSDN,maxLength,minLength和length等被忽略。没有声明的方式来强制执行你的要求,就像我希望的那样。这是.NET和XML世界之间出现裂痕的地方之一。我发现的唯一执行方法是构建一

c# - 配置 .NET WCF UTF-8 反序列化器以修改/丢弃非最短格式字符而不是抛出异常?

我们有一个通过WCF托管的SOAP网络服务。我们偶尔从其中接收数据的客户端之一使用非最短格式对UTF-8进行编码(有关这方面的一些信息,请参阅http://www.unicode.org/versions/corrigendum1.html)。修改客户端并不容易,因为我们的代码没有对这些非最短形式的字符进行编码。相反,我们希望编辑WCF服务以丢弃这些字符,将它们替换为其他占位符字符,甚至接受非最短形式的字符。对于我们的用例,这些中的任何一个都是可以接受的,尽管前一个选项是首选,因为它们减少了任何安全风险。查看堆栈跟踪:System.ServiceModel.Dispatcher.Net

c# - WCF 比运行相同代码的 WebAPI 慢得多

我目前有2个暴露的端点。第一个是WebAPI(.NET4.6)。第二个是WCF(.NET3.5)。它们都能够执行相同的计算,但是WCF平均要慢10倍。有问题的计算代码包含在一个dll中,我们称之为core.dll。此dll还公开WCF端点并由ASP.NET站点使用。webapidll,我们称它为api.dll引用core.dll并由SPA使用。计算可以由任一客户端触发。平均而言,使用我的测试数据,WCF服务执行计算大约需要4.5秒,而WebAPI大约需要450毫秒(或快大约10倍)。我应该注意,所有数据库调用都是在测量的时间范围之外完成的。所有数据都是事先检索的,所有更新都是在计算完成

c# - ASP.NET MVC 2 - 绑定(bind)到抽象模型

如果我有以下强类型View:"%>其中Location是一个抽象类。我有以下Controller,它通过POST:接受强类型模型[HttpPost]publicActionResultIndex(Locationmodel)我收到一个运行时错误,指出“无法创建抽象类这当然是有道理的。但是-我不确定最好的解决方案是什么。我有很多具体类型(大约8个),这是一个只能编辑抽象类属性的View。我尝试做的是为所有不同的具体类型创建重载,并以通用方法执行我的逻辑。[HttpPost]publicActionResultIndex(Citymodel){UpdateLocationModel(mod

c# - WCF 错误通信对象 System.ServiceModel.Channels.ServiceChanne 不能用于通信,因为它处于故障状态

我们得到“通信对象System.ServiceModel.Channels.ServiceChannel无法用于通信,因为它处于故障状态。”关闭应用程序时的消息。谁能告诉我如何解决它?我们知道这是试图关闭的通信channel,但由于服务不可用或处于故障状态而无法关闭。我只能说,当服务不可用时,垃圾收集器试图销毁对象,通信对象正在调用其服务关闭函数。我们得到异常。 最佳答案 当您询问有关异常的问题时,您应该发布整个异常,包括所有InnerException实例。你应该捕获异常,显示ex.ToString(),然后用“throw”重新抛

c# - WCF - 让客户端检查服务可用性

这个问题在这里已经有了答案:checktheavailabilityoftheWCFWebService(4个答案)关闭8年前。我有一个客户端-服务器系统,双方都是我写的,我想在服务器断开连接/死机时将客户端置于“离线”状态,然后在服务器断开连接/死机时自动将它们恢复为“在线”状态再次可用。对于第一部分,我监听channel故障事件并通过将客户端设置为离线来处理该事件。然后我开始在服务器上调用“ping”服务(每30秒一次),如果它处于事件状态,它只会返回一个bool值。一旦它还活着,客户端就会得到bool并切换回在线状态。一切正常,我遇到的问题是当客户端调用ping服务并且服务器关闭