Tag: #wcf

没有证书存储的WCF证书

我的团队正在为第三方胖客户端应用程序开发一些WPF插件。 WPF插件使用WCF来使用由许多TIBCO服务发布的Web服务。 胖客户端应用程序维护一个单独的中央数据存储,并使用专有API来访问数据存储。 胖客户端和WPF插件将部署到10,000个工作站上。 我们的客户希望将胖客户端使用的证书保留在中央数据存储中,这样他们就不必担心重新颁发证书(当前重发周期大约需要3个月)并且还有机会授权使用证书。 所提出的架构在中央数据存储和TIBCO服务之间提供了一种forms的共享秘密/认证。 虽然我不一定同意所提议的架构,但我们的团队无法改变它并且必须使用所提供的内容。 基本上我们的客户希望我们在我们的WPF插件中构建一个机制,该机制从中央数据存储(基于该数据存储中的角色允许或拒绝)检索证书到内存然后使用证书创建SSL连接到TIBCO服务。 不允许使用本地计算机的证书存储,并且在每个会话结束时丢弃内存版本。 所以问题是,是否有人知道是否可以将内存中的证书传递给WCF(.NET 3.5)服务以进行SSL传输级加密? 注意:我曾经问了一个类似的问题( 这里 ),但后来删除了它并重新询问了更多信息。

如何在C#桌面应用程序和移动(android)设备之间通过本地网络进行通信?

我有一个C#(。net 3.5)桌面应用程序,它在屏幕上打印出一些数字。 现在我想将其扩展到移动设备。 (在我的情况下,Android设备。)它必须显示与计算机屏幕上相同的数字。 整个事情只是一个概念certificate,它不必看起来很好,它不必100%工作,有一个很好的GUI或简单的设置,它只需要显示一些数字。 我一直在研究MonoDroid,因为它有可能使用WCF服务。 (我知道移动设备和台式计算机将连接到同一个网络。)不幸的是,MonoDroid的试用版不支持真正的设备,我不想花几百美元来certificate一点。 我有Java的基本知识,我想我能够使用Android SDK快速开发一个示例应用程序,从网络上的网页获取数据,解释它(XML,JSON等)并在屏幕上显示。 所以我的问题变成:是否有可能从现有的应用程序中创建某种Web服务(无需设置整个IIS服务器),该服务包含一个带有一些XML数据的网页,我可以按给定的时间间隔刷新可以从同一网络上的计算机访问? 我应该怎么做,使用哪种技术? 或者有没有其他方法来实现这样的目标?

如何在代码而不是配置中创建WCF EndPointBehaviors?

我有以下Xml配置 我想用C#代码实现而不是使用配置。 我无法弄清楚使用webHttp将EndPoint作为REST服务公开的人。 ServiceHost serviceHost = new ServiceHost(singletonInstance, “http://localhost:1234/MyService/xml”); // Create Meta Behavior ServiceMetadataBehavior behavior = new ServiceMetadataBehavior(); behavior.HttpGetEnabled = true; serviceHost.Description.Behaviors.Add(behavior); Binding mexBinding = MetadataExchangeBindings.CreateMexHttpBinding(); serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding, “mex”); WSHttpBinding httpBinding = new WSHttpBinding(SecurityMode.None); serviceHost.AddServiceEndpoint(typeof(MyService.IMyService), httpBinding, “rest”);

来自asp.net 2.0的REST

我刚刚建立了一个asp.net 2.0网站。 现在我需要添加REST Web服务,以便我可以与另一个Web应用程序进行通信。 我以前使用过2个SOAP Web服务项目,但根本没有使用REST的经验。 我想只有几周才能正常工作。 谷歌搜索后,我发现它并不那么容易。 这是我发现的: 没有REST开箱即用的asp.net。 WCF REST入门套件Codeplex预览版2基于.net 3.5并仍处于测试阶段 restASP.NET示例 ASP.NET 2.0中的REST Web服务(C#) Exyus 使用摇篮曲处理POST和PUT方法 ADO.NET数据服务 … 现在我的问题, a).net 2.0的REST解决方案? 如果是,哪一个是最佳解决方案? b)如果必须,我的asp.net从2.0迁移到3.5有多难? 它只是编译简单,或者我必须更改很多代码? c)WCF REST入门套件是否足以在生产中使用? d)我是否必须首先学习WCF,然后是WCF REST入门套件? 哪里是最好的起点? 我感谢任何帮助。 谢谢Wes

WCF代理生成:svcutil.exe vs wsdl.exe

我有来自WebService的.wsdl和.xsd文件,需要通过它们生成代理。 Svcutil.exe和wsdl.exe生成非常不同的输出。 这两种代理生成工具有什么区别,哪种方式更可取?

WCF中的mex绑定错误

我正在使用VSTS 2008 + C#+ .NET 3.0。 我正在使用自托管的WCF服务。 执行以下语句时,会出现以下“未找到绑定”错误。 我已经发布了我的整个app.config文件,任何想法有什么问题? ServiceHost host = new ServiceHost(typeof(MyWCFService)); 错误信息: 无法通过绑定MetadataExchangeHttpBinding找到与端点的方案http匹配的基址。 注册的基地址方案是[https]。 完整的app.config:

WCF:MessageContract,DataContract ……困惑?

我正在编写我的第一个WCF服务。 我决定将服务作为一个DLL开始编写,然后将WCF的内容展开,这就是我现在所处的位置。 建筑师告诉我,我应该坚持使用特定的消息对象格式。 但是我在我的消息对象中使用了Interfaces,复杂类型和列表。 我要添加属性,我有点困惑。 这是我的代码的示例。 [ServiceContract] public interface MyServiceContract { [OperationContract] MyMethodResponseMessage MyMethod(MyMethodRequestMessage request); } public class MyService : MyServiceContract { public MyMethodResponseMessage MyMethod(MyMethodRequestMessage request) { //Do things } } //Messages [MessageContract] public class MyMethodResponseMessage { [MessageBodyMember] public MyMethodResponse Body { get; set; } } [DataContract] public class MyMethodResponse { [DataMember] public IMyComplexTypeItem { […]

无法通过WCF中的构造函数初始化成员

我有一个CibilResponse类,它具有类类型的属性(TUEF类)。 我试图使用: CibilEnquiryEnq.Tuef.Version = “12”;分配值CibilEnquiryEnq.Tuef.Version = “12”; 但它抛出空引用错误。 我已经解决了这个错误,但是通过创建一个像这样的对象: CibilEnquiryEnq.Tuef = new CibilWcfService.TUEF(); 而不是通过构造函数。 ICIBIL.cs [ServiceContract] public interface ICIBIL { [OperationContract] string InsertCibil(CibilResponse cibilResponse); [OperationContract] string TestInsert(string testObj); [OperationContract] string GenerateEnquiry(CibilEnquiry testObj); } [DataContract] public class CibilEnquiry { [DataMember] public TUEF Tuef { get; set; } public CibilEnquiry() { this.Tuef = new TUEF(); } } […]

WCF频道和ChannelFactory缓存

所以我决定在我的WCF应用程序中提高性能,并尝试缓存Channels和ChannelFactory。 关于所有这些我有两个问题需要在开始之前清理。 1)ChannelFactory应该实现为单例吗? 2)我不确定如何缓存/重用各个频道。 你有什么例子可以分享吗? 值得注意的是,我的WCF服务部署为独立应用程序,只有一个端点。 编辑: 感谢您的回复。 我还有几个问题…… 1)我想我对缓存应该发生的位置感到困惑。 我正在提供一个客户端API,它将此代码用于我们公司的另一个部门。 这个缓存是否发生在客户端? 2)客户端API将用作Silverlight应用程序的一部分,这会改变什么吗? 特别是,在这种情况下可以使用哪些缓存机制? 3)我还不清楚GetChannelFactory方法的设计。 如果我只有一个服务,是否只应创建和缓存一个ChannelFactory? 我还没有实现任何缓存function(因为我对它应该如何完成感到困惑!),但这是我到目前为止客户端代理所拥有的: namespace MyCompany.MyProject.Proxies { static readonly ChannelFactory channelFactory = new ChannelFactory(“IMyService”); public Response DoSomething(Request request) { var channel = channelFactory.CreateChannel(); try { Response response = channel.DoSomethingWithService(request); ((ICommunicationObject)channel).Close(); return response; } catch(Exception exception) { ((ICommenicationObject)channel).Abort(); } } }

设置属性时获取StackOverflowException

public List ListarEmpleados() { List returnList = new List(); var lista = from u in DB.tabEmpleado select new { u.idEmpleado, u.idUsuario, u.Nombre, u.Apellidos, u.Telefono1 }; foreach (var e in lista) { Empleado empleado = new Empleado(); empleado.idEmpleado = e.idEmpleado; empleado.idUsuario = e.idUsuario; empleado.nombre = e.Nombre; empleado.apellidos = e.Apellidos; empleado.telefono1 = e.Telefono1; returnList.Add(empleado); } return returnList; […]