Tag: #wcf

ServiceBehavior属性是否由其他类inheritance?

我有几个WCF服务,这些服务共享一些常用方法。 所以,我用这些方法创建了一个基类(不是WCF服务),并使所有WCF服务都从这个类inheritance。 像这样的东西: [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)] public abstract class BaseService 并且其中一个WCF服务: public class ExampleService : BaseService, IExampleService { 我正在使用ServiceBehavior属性来设置ConcurrencyMode和InstanceContextMode值,我的问题是:使用ServiceBehavior属性标记基类是正确的,并期望所有服务inheritanceServiceBehavior属性的值,或者我应该标记所有WCF服务一个接一个?

动态可交换数据访问层

我正在编写一个数据驱动的WPF客户端。 客户端通常从WCF服务中提取数据,该服务查询SQL数据库,但我希望选择直接从SQL或其他任意数据源提取数据。 我想出了这个设计,并希望听听你对它是否是最好的设计的看法。 首先,我们要从SQL中提取一些数据对象。 // The Data Object with a single property public class Customer { private string m_Name = string.Empty; public string Name { get { return m_Name; } set { m_Name = value;} } } 然后我计划使用所有数据访问层应该实现的接口。 假设一个人也可以使用抽象类。 思考? // The interface with a single method interface ICustomerFacade { List GetAll(); } 可以创建SQL实现。 // […]

WCF PrincipalPermission属性exception登录

我有一个WCF服务,其中包含具有PrincipalPermission属性的方法。 当没有适当权限的用户尝试访问这些方法时,该属性会抛出SecurityException,但由于该属性中抛出exception,因此无法在调用周围放置try..chatch。 我已尝试使用Enterprise Library中的ExceptionShielding属性和日志记录处理程序,但它不会写任何日志。 我甚至尝试编写WCF行为扩展来尝试捕获exception,但扩展无法正确调用exception处理块。 有谁知道如何实现这一目标。

AddressAlreadyInUseException。 端口未发布

在C#中使用WCF我不止一次经历过程序结束时没有释放端口。 当我使用tcpview时,我看到端口处于“监听”状态,并且进程“不存在”。 当进程不再运行时,怎么会发生这种情况? 我甚至无法通过tcpview关闭它。 我如何关闭连接?

WCF通用字典和了解WCF

好的,我在解决特定问题时遇到了很多困难。 通过服务传输对象。 从概念上讲,它是有道理的……我想? 根据我的阅读,除非已明确定义,否则无法序列化Generic。 所以我想提供我的榜样; 我根本无法上class。 意思是; 我确信还有其他人也遇到了一些困难。 当你提供帮助时,如果你能提供代码; 这将起作用并解释它。 这样我就可以完全理解这个问题。 这对我很有帮助,了解Windows Communication Foundation。 目标是一个客户端应用程序,它只有五个字段; 在其中“发布”到服务器。 名字 姓 电子邮件地址 电话号码 网站地址 这不是太复杂。 这就是我所做的,在我学习WCF的过程中,我尽可能地将其包含在基于SOA的应用程序中。 这样它就可以提供代码的可重用性。 型号/数据合同: #region Using Reference… using System.Runtime.Serialization; using System.Collections.Generic; using System.Threading.Tasks; using System.Text; using System.Linq; using System; #endregion namespace _2Do.Model.Customer { [DataContract(IsReference = true)] public class Person { #region Declared Variable. string […]

使用多个参数WITHOUT DataContract来使用WCF REST服务

我需要使用POST方法使用多个参数调用我的WCF REST服务,但是我无法创建包含我的参数的DataContract,因为我需要简单的类型:我的webservice将由目标C应用程序使用。 我在MSDN网站上找到了这种语法: [OperationContract] [WebInvoke(Method = “POST”, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = “savejson?id={id}&fichier={fichier}”)] bool SaveJSONData(string id, string fichier); 为了快速解释上下文,我必须调用此方法来保存带有在数据库上传递的Id的JSON文件。 我的问题是:是否真的可以将几个参数传递给POST方法,如前所示? 其次:如何使用多个参数来使用我的服务(暂时使用C#,只是为了测试它)? 我已经使用DataContract进行了测试,我就是这样做的: string url = “http://localhost:62240/iECVService.svc/savejson”; WebClient webClient = new WebClient(); webClient.Headers[“Content-type”] = “application/json; charset=utf-8”; RequestData reqData = new RequestData { IdFichier = “15”, Fichier = System.IO.File.ReadAllText(@”C:\Dev\iECV\iECVMvcApplication\Content\fichier.json”) }; MemoryStream […]

带有方法的WCF DataContract类

这更像是一种哲学/最佳实践问题,而不是技术问题。 是否有任何强有力的论据反对使用仅在服务器端使用的方法编写DataContract类? 或者没有使用DataMember属性修饰的其他属性呢? 例如: [DataContract] public class LogEntry { [DataMember] public string Message { get; set; } [DataMember] public string Severity { get; set; } public string SomeOtherProperty { get; set; } … public void WriteToDatabase() { … } } 虽然使用扩展方法可以使它更容易,但是不这样做似乎是我想要避免的大量额外工作。 但是,作为一名优秀的开发人员,我想知道这样做是不好的做法。

为什么wcf生成的代理派生自object

“更新服务引用”生成从对象派生的部分类 public partial class Auftrag : object, System.Runtime.Serialization.IExtensibleDataObject 我如何摆脱对象inheritance(以便我可以从部分类中的其他类派生)我不想更改自动生成的代码。 public partial class Auftrag : System.Runtime.Serialization.IExtensibleDataObject 我想使用生成的代理类作为WPF-ViewModels中的数据对象,因此我想inheritance自定义基类(也实现IDataErrorInfo)。 我不想复制和粘贴每个分部类的实现。

WCF MessageContract包装和列表

我收到了客户关于他们的网络服务客户端如何工作的规范。 规范是从服务发送和接收的实际SOAP XML消息以及相应的XSD。 客户希望我实施符合客户要求的Web服务。 客户端使用axis2 ws-stack编写,我想要做的是在WCF中创建一个Web服务,它将接受客户端发出的请求并返回符合他们期望的XML的响应。 在这个问题中,我将只发布与请求相关的XML和XSD,因为如果我可以使用它,响应将以类似的方式进行。 我收到的XML如下: POST /axis2/services/SampleService HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: “sendCommand” User-Agent: Axis2 Host: 127.0.0.1:7777 Content-Length: 347 5 这是相应的XSD的样子: 我已经开始用WCF / MessageContract格式编写类型了,但是我在列表等方面遇到了困难,因为它们是双重包装的。 我的MessageContracts看起来像这样: [MessageContract(WrapperName = “SendCommandRequest”, WrapperNamespace = “http://something.org/”)] public class SendCommandRequest { [MessageBodyMember(Name=”CMD”)] public CMD cmd = new CMD(); } [MessageContract(IsWrapped=false)] public class CMD { [MessageBodyMember(Name=”Station”)] public List stations […]

XML和JSON的WCF WebHttp服务根据端点地址选择序列化程序

我正在尝试创建一个WCF RESTful Web服务,它将返回XML和JSON 。 问题是它正在工作,但对于XML序列化,它忽略了XML属性。 正如您在端点配置中看到的,我有两个地址,如xml和json 。 所以我访问的url如下 – 对于XML – http://localhost:59310/TestService.svc/xml/GetResponse 对于JSON – http://localhost:59310/TestService.svc/json/GetResponse 现在我想在访问JSON url时使用DataContractFormat并使用XmlSerializerFormat for XML url。 我怎样才能做到这一点。 请帮忙。 这是具有XML属性的响应类。 namespace WCFMultiFormatTest { [XmlRoot(ElementName = “RESPONSE”)] public class Response { [XmlAttribute(AttributeName = “MESSAGE”)] public string Message { get; set; } } [XmlRoot(ElementName = “TEST”)] public class Root { [XmlElement(ElementName = “RESPONSE”)] public […]