Tag: #wcf

已超出传入邮件的最大邮件大小限额(65536)

我的WCF服务有一个OperationContract,它接受一个对象数组作为参数。 这可能非常大。 在寻找Bad Request:400的修复程序后,我找到了真正的原因:最大邮件大小。 我知道之前在很多地方已经提出过这个问题。 我尝试过每个人都说:“增加客户端和服务器配置文件的大小。” 我有。 它仍然无法正常工作。 我的服务的web.config: 我的客户端的app.config: 我可能会错过或做错什么? 就好像服务忽略了我在maxReceivedBufferSize中输入的内容。 谢谢你,凯尔 UPDATE 以下是其他两个StackOverflow问题,他们从未收到过答案: https://stackoverflow.com/questions/2880623/maxreceivedmessagesize-adjusted-but-still-getting-the-quotaexceedexception-with WCF MaxReceivedMessageSize属性不占用

WCF ConcurrencyMode Single和InstanceContextMode PerCall

我的wcf服务配置有问题。 我希望每次调用我的服务都会创建一个新的服务实例。 对于并发性,我希望一次调用在另一次启动之前完成。 因此,如果我有这样的服务: [ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single, InstanceContextMode=InstanceContextMode.PerCall)] public class MyService: IMyService { public bool MyServiceOp() { Debug.WriteLine(“thread “+ Thread.CurrentThread.ManagedThreadId.ToString()); Debug.WriteLine(“start operation “); Do_work() Debug.WriteLine(“end operation”); return true; } } 当我在循环中调用多个调用时,跟踪给出: thread 1 thread 2 start operation start operation end operation end operation 虽然我想这样: thread 1 start operation end operation thread 2 start operation end operation 这可能吗? […]

WCF Windows服务 – 长时间操作/回调到调用模块

我有一个Windows服务,它取一堆文件的名称并对它们进行操作(zip / unzip,更新db等)。 操作可能需要一些时间,具体取决于发送到服务的文件的大小和数量。 (1)向此服务发送请求的模块将等待处理文件。 我想知道是否有一种方法可以在服务中提供一个回调,它将在完成处理文件时通知调用模块。 请注意,多个模块可以一次调用服务来处理文件,因此服务需要提供某种TaskId我猜。 (2)如果调用了一个服务方法并且正在运行另一个对同一服务的调用,那么该调用将如何处理(我认为只有一个与该服务相关联的线程)。 我已经看到,当服务在处理方法时花费时间时,与服务相关联的线程开始增加。

所有操作的WCF WSDL Soap Header

通过定义实现IContactBehavior和IWsdlExportExtension的属性并在服务合同上设置该属性,您可以轻松地向您的wsdl添加Soap Headers (有关详细信息,请参阅http://wcfextras.codeplex.com/ ) 但现在我需要在所有Operationcontracts的wsdl中设置Soap Header合约,这次我无法设置属性。 以下代码(从IWsdlExportExtension.ExportEndPoint调用)不起作用,但在从SoapHeaderAttributes调用时执行(执行IWsdlExportExtension.ExportContract) foreach (OperationDescription operationDescription in context.ContractConversionContext.Contract.Operations) { AddSoapHeader(operationDescription, “SomeHeaderObject”, typeof(SomeHeaderObject), SoapHeaderDirection.InOut); } internal static void AddSoapHeader(OperationDescription operationDescription, string name, Type type, SoapHeaderDirection direction) { MessageHeaderDescription header = GetMessageHeader(name, type); bool input = ((direction & SoapHeaderDirection.In) == SoapHeaderDirection.In); bool output = ((direction & SoapHeaderDirection.Out) == SoapHeaderDirection.Out); foreach (MessageDescription msgDescription in […]

WCF服务代理未设置“FieldSpecified”属性

我有一个WCF DataContract ,如下所示: namespace MyCompanyName.Services.Wcf { [DataContract(Namespace = “http://mycompanyname/services/wcf”)] [Serializable] public class DataContractBase { [DataMember] public DateTime EditDate { get; set; } // code omitted for brevity… } } 当我在Visual Studio中添加对此服务的引用时,将生成此代理代码: /// [System.CodeDom.Compiler.GeneratedCodeAttribute(“System.Xml”, “2.0.50727.3082”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(Namespace=”http://mycompanyname/services/wcf”)] public partial class DataContractBase : object, System.ComponentModel.INotifyPropertyChanged { private System.DateTime editDateField; private bool editDateFieldSpecified; /// [System.Xml.Serialization.XmlElementAttribute(Order=0)] public […]

WCF DataContract DataMember订单?

是否按字母顺序创建了从DataContract创建的xml。 我有一个DataContract类定义为: [DataContract(Name = “User”, Namespace = “”)] public class User { [DataMember] public string FirstName { get; set; } [DataMember] public string LastName { get; set; } [DataMember] public string Email { get; set; } [DataMember] public string Password { get; set; } } 当我做了以下POST时: abc 123 email@email.com pass 当我在发布后进行GET并将结果作为JSON返回时,电子邮件为空,但如果我将我的xml发布为: email@email.com abc 123 pass […]

简单的自动化示例

我很难理解如何映射某些对象。 请回答一些关于这个简单示例的问题。 示例代码 class User { private int id; private string name; } class Group { private int id; private string name; private List users; } [DataContract] public class UserDto { [DataMember] public int id { get; set; } [DataMember] public string name{ get; set; } } [DataContract] public class GroupDto { [DataMember] public int […]

什么是外行交易?

我们将基于SOA构建WCF服务。 在最近的一次会议中,客户解释了新的系统环境。 他使用了“出境交易”这个词。 由于时间限制,我无法澄清。 然后我在网上搜索了一下。 然而,它引导我到不同的主题。 所以,我的问题是 – “ 服务导向 ”背景下的“外向交易”是什么? 你能给我举个例子吗? 读: 什么是SOA“用简单的英语”? 什么是简单英语的“网络服务”? WCF,DataPower集成 – 必要的安全绑定?

了解服务之外的数据:SOA

注意:服务之外的数据表示服务返回并由客户端使用的消息。 我有一个名为LastBuyer Service的服务。 当我将bookID输入服务时,这将返回书籍的最后买家名称。 当我为相同的图书ID呼叫服务时,它将返回不同的结果(如果新买家购买了一本书)。 所以我无法在客户端缓存服务的结果(对于特定的BookID)。 在阅读文章“内部数据与外部数据”时,它说“Ok to Cache” – “由于消息的ID返回相同的数据,因此可以缓存消息”。 参考: http : //msdn.microsoft.com/en-us/library/ms954587.aspx 我的理解中缺少什么? 上面的例子中的消息是不可变的吗? 以上示例中依赖于版本和版本的标识符是什么? 如何在这里完成消息的版本控制? 哪本WCF书籍通过示例清楚地解释了SOA概念和模式? 读 服务设计原则:服务模式和反模式 http://msdn.microsoft.com/en-us/library/ms954638.aspx

何时更改“生成序列化assembly”值?

我有一个客户端winform应用程序连接到WCF的本地网络服务器。 客户端存在性能问题,我搜索了解决方案,发现了这篇文章。 它说那里: 这听起来像是在运行时创建的序列化程序集。 尝试更改项目属性窗口的“构建”窗格底部的“序列化程序集”下拉列表的设置。 我的问题是何时更改生成序列化程序集值以及我应该将其更改为什么值以提高客户端应用程序的性能? 我的代码在C#,框架4中,在VS2010Pro中构建。