Tag: wcf client

自主WCF服务无法通过WCFTestClient进行测试

我正在尝试使用WCFTestClient测试我自己托管的wcf服务。 我得到一个错误: 错误:无法从http:// localhost:2303 / MyService获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布。 有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档.WS- Metadata Exchange错误URI: http:// localhost:2303 / MyService元数据包含参考无法解决:’http:// localhost:2303 / MyService’。 内容类型application / soap + xml; 服务http:// localhost:2303 / MyService不支持charset = utf-8。 客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)无法处理消息,因为内容类型为’application / soap + xml; charset = utf-8’不是预期的类型’text / xml; charset = utf-8′.. HTTP GET错误URI: http:// localhost:2303 / MyService下载’http:// localhost:2303 / MyService’时出错。 请求失败,HTTP状态为400:错误请求。 我的项目结构如下 作为主机的控制台应用程序 服务合约 […]

请求已中止:无法创建SSL / TLS安全通道 – Decrypt已返回SEC_I_RENEGOTIATE

我们的应用程序使用C#(.Net framework 3.5)中的Web服务。 大多数时候从服务器获得正确的响应,但它间歇性地抛出错误: The request was aborted: Could not create SSL/TLS secure channel. 启用它显示的跟踪: System.Net Error: 0 : [3688] Decrypt returned SEC_I_RENEGOTIATE. 以前有人遇到过这个问题吗? 这个问题的解决方法是什么? 请告诉我。 任何帮助将受到高度赞赏。 提前致谢! -Jemo

WCF客户端不遵循UriTemplates合同

我在我的WCF服务的ServiceContract中定义了一个函数,如下所示: [WebInvoke(Method = “GET”, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = “/test”)] CommandResponse Test(); 另一方面,在客户端应用程序中,我通过visual studio中的“添加服务引用”添加了WCF服务。 使用以下方法调用服务测试函数时: var test = m_ServiceClient.Test(); 我收到一个错误说: Operation ‘GetUser’ of contract… specifies multiple request body parameters to be serialized … GetUser()是我在服务契约中的另一个函数(也是一个GET函数,但在UriTemplate中有参数)。 我的猜测是客户端正在使用它的参数调用函数,但请求是错误的UriTemplate(或者根本没有模板,它只是跳转到某种默认值)。 我必须遵循任何特殊说明让客户了解UriTemplates的function吗? 我一直在搜索,找不到帮助解决这个问题的单页…

具有WS-Security的WCF客户端

我需要实现一个满足以下SOAP消息示例的WCF客户端: 444561ee-277f-77b2-c664-7a9923jfgh1b f68e6ff9-74f7-4022-8618-ec2cf0ee4b6a 4523394 johndoe 2012-06-26T16:18:15.185Z 2012-06-26T16:18:45.185Z 72214255 MIICMzCCAZygAwIBAgIET1e+dDANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQGEwJDQTEQMA4GA1UECBMHT250YXJpbzENMAsGA1UEChMET0hJUDEVMBMGA1UECxMMUmVnaXN0cmF0aW9uMRcwFQYDVQQDEw4xNDIuMTQ1LjcwLjE3NzAeFw0xMjAzMDcyMDAwNTJaFw0xMzAzMDcyMDAwNTJaMF4xCzAJBgNVBAYTAkNBMRAwDgYDVQQIEwdPbnRhcmlvMQ0wCwYDVQQKEwRPSElQMRUwEwYDVQQLEwxSZWdpc3RyYXRpb24xFzAVBgNVBAMTDjE0Mi4xNDUuNzAuMTc3MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCs/JIP6CE5IkfTnD/c56K+QAYqETdLvW1xXJ6ipkVhjjC2ASKuuH4fvhbyxo2B4VugsL9r4E5jHEKoi+GDKOLlLZRfSy0cB8IcpXonAuGqMzhCoEQ1CdxNb9etMyvQGRKEBgniKKxTvpTyZdpYDi92up5E+FYL3jEejhp+1iDFJQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAHn8VZS169BJMa4E6SNLnY7u80zSh90mbrTUWjM1dEicv3jQMMsrWHfoCt+nRSqfNLUTLc8U0LqiB3jnnNJgJt1T7Sp8eUZPdH0gY3i83ZXA8HDFKMZF3qL8I8ncu8FPcZGYBNhYrGjXXsuqXimiTIjxgm06ErRa/51szOFFxWrB FkhA37COGmsKeEH50LAGhKntvRpD0+xOGsGzXAV210k= RA1O1voUNDV9+hi6IzNNxkTHfEdu2pu6fppiwN23JGI= 3vVj2VEbLKEvGy4yt7k8i2BeWUOaCygnFMduT7EyP3A= yFOmFgMDHMBooWIEsB3azib2EX7fR+Ich03J19kFMVE= zoxMcAQ2WLBIir333NJk52r4axwznflX+KxMQTPFvfQ= HmOiZS4gZbxv07+sLjyi7Vfg3Rfpvr3IVnaHfRp4aKvg5yBFlLocPIYwhUhmCCs1LXrJxR0hsbe0K2sz3ML5hH+PDEGetlPKSN9R1x9K95w7V1JQcTUULiVgNGLCfxgFV2HNy1iNvlTc7COS+7w4xSgsY4KlVgrBw0T1srhHpUA= 00123 CL 我得到的最相似的是使用以下绑定配置和自定义绑定更改来包含UserNameSecurityTokenParameter: 这是我用来添加UsnerNameSupportingToken的代码: public static Binding AddUserNameSupportingTokenToBinding( Binding binding ) { var elements = binding.CreateBindingElements( ); var security = elements.Find( ); if ( security != null ) { var tokenParameters = new UserNameSecurityTokenParameters( ); tokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient; tokenParameters.RequireDerivedKeys = […]

如何将对象列表发送到WCF服务?

我正在构建WCF服务,我想接受List作为我的方法之一的参数。 这是我的代码: [ServiceContract] public interface IProductService { [OperationContract] int InsertProducts(List products); } [DataContract] [KnownType(typeof(List))] public class Product { [DataMember] public int ProductId{ get; set; } [DataMember] public string ProductName{ get; set; } [DataMember] public List Products { get; set; } } 当我运行服务时,它给了我一个错误。 WCF不支持此操作,因为它使用NameSpace.Product[]

将WSDL导入.NET项目只会创建一个空命名空间

我第一次尝试使用WCF。 这是我做的: 在VS 2010中创建了一个控制台.NET 4项目 添加了WSDL文件作为服务引用。 但是,我似乎无法使用该服务,因为没有创建类。 服务引用只是一个空命名空间。 我错过了什么? 这是WSDL: main schema e-service developers Nicholas Knowles, KIZOOM LTD., London EC4A 1LT Europe >Drafted for version 1.0, by Cen TC278 WG3 SG7 Christophe Duquesne DRYADE SA mailto:schemer@siri.org.uk 2005-03-01 2005-05-11 2007-01-30 2007-04-17 2008-02-12 2007-04-17 SIRI is a European CEN standard for the exchange of real time information. […]

在另一个进程中处理WCF事件

我有一个不可序列化的对象,我想从一个单独的进程访问。 我环顾四周,似乎唯一可行的选择是使用WCF,但我不知道如何做到这一点,因为我是WCF的新手。 如果我创建一个WCF服务,如何将WinForm挂钩到WCF服务中的各种事件? 例如,用户直接与WCF服务通信,我希望WinForm客户端得到通知。 我怎么能知道用户何时使用WCF服务做了什么并让WinForm客户端接受了这个?

从WCF客户端消耗非wcf SOAP错误(定义了soap fault)

我有一个非Wcf服务器,我从WCF客户端调用,我需要访问已注册的soap故障,如果服务器抛出它(它包含我需要用户的反馈)。 我使用了如何从WCF客户端访问SOAP 1.1故障详细信息中的示例(没有错误契约),但是给出了一个痛苦,我确实在wsdl中定义了错误契约,至少每个SOAP规范,并且错误包含错误代码和错误字符串。 … … … … 服务导入可以正确识别所有这些并生成正确的代码构造: [System.Runtime.Serialization.DataContractAttribute(Name=”BtsSoapException”, Namespace=”http://www.cisco.com/BTS10200/i01″)] [System.SerializableAttribute()] public partial class BtsSoapException : object … …. [System.ServiceModel.ServiceContractAttribute(Namespace=”http://www.cisco.com/BTS10200/i01″, ConfigurationName=”CiscoBTSService.Bts10200Operations”)] public interface Bts10200Operations { [System.ServiceModel.OperationContractAttribute(Action=””, ReplyAction=”*”)] [System.ServiceModel.FaultContractAttribute(typeof(TestCiscoBTS.CiscoBTSService.BtsSoapException), Action=””, Name=”fault”)] TestCiscoBTS.CiscoBTSService.loginResponse login(TestCiscoBTS.CiscoBTSService.loginRequest request); … 当我使用无效帐户调用login() ,我会根据wsdl获得正确的响应: soapenv:Server.generalException 401 java.lang.Exception: No user profile defined in the database for fakeuser com.sswitch.oam.soap.intf.BtsSoapException at com.sswitch.oam.soap.impl.UserAuth.validateUser(UserAuth.java:63) … FaultExcpetion会触发,但是它的空白( Message =“”)并且我没有看到任何暴露BtsSoapException实例的属性。 […]

我是否需要在WCF DataContract中公开构造函数,以使其在客户端上的对象实例化期间工作?

我在WCF服务中有一个类,我们称之为A。 A是数据协定,其中包含另一个自定义对象B的集合作为其DataMembers之一。 为了避免客户端的Null引用问题,我在构造函数中实例化BList ,如下所示: [DataContract] public class A { [DataMember] public String name { get; set; } [DataMember] public List BList {get; set; } public A() { BList = new List(); } } 我的问题是在客户端上,在客户端上创建A的对象后,此实例化不会发生并且BList显示为null。 我猜测构造函数没有出现在客户端上。 那么,我是否需要使构造函数成为一个明确的操作契约? 如果是这样会使客户看到他们不应该看到的内部事物,对吧? 如何确保此实例化在客户端上发生? 谢谢,对不起,如果这看起来像一个愚蠢的问题。

Windows服务托管TCP WCF服务

我试图在Windows 2008 R2服务器上托管WCF服务作为Windows服务。 我按照msdn( 在这里找到 )提供的指示。 只要一切都是视觉工作室中同一解决方案的一部分,一切都很好。 但是,我尝试在不同的解决方案(在同一台机器上)创建客户端,但无法找到该服务。 我收到如下所示的“添加服务引用错误”。 我的目标是能够远程访问wcf服务,但我似乎甚至无法在本地访问它,除非客户端是在同一客户端内创建的。 是否有任何指南,教程或有用的提示,任何人都可以让我让这个工作? 更新:似乎即使Windows服务正在运行,WCF服务似乎没有监听任何端口。 这表明它没有运行。 这也解释了为什么每个人都认为我没有运行该服务。 我曾经假设,因为Windows服务正在运行并且同一个解决方案客户端工作,所以WCF服务也正常运行。 事实certificate,只要我运行相同的解决方案客户端,Visual Studio就会启动WCF服务。 那么,为什么Windows服务不启动WCF服务呢? 有任何想法吗?