Tag: #wcf

WCF HTTP和NamedPipe服务

我正在创建一个WCF服务,目前,它使用basicHttpBinding公开了许多合同。 但是,我现在想在同一台机器上本地使用该服务,并且netNamedPipeBinding在性能方面似乎更合适。 出于这个原因,我想使用命名管道和HTTP公开服务。 目前我正在使用以下配置执行此操作: 这看起来工作正常,但仔细观察后,端点仍然使用basicHttpBinding。 这有效,但我得到的印象是它产生了不必要的开销。 我是否需要为每个合约和每个绑定类型(即basicHttpBinding和netNamedPipeBinding)创建一个端点,或者我是否完全错误? (如果不清楚,我对WCF还不熟悉!)

我可以使用ASP.net Web Api和MVC 3默认使用Json.Net反序列化吗?

我有一个MVC 3 Web应用程序/ API我正在使用,我非常厌倦默认的Microsoft序列化。 MVC 4中新的ASP.net Web Api的一大承诺是它默认使用JSON.net反序列化。 好吧,我很乐意默认使用JSON反序列化,而不是弄乱WCF客户端。 我遇到的一个问题是由于各种原因我无法转换为MVC 4。 所以我的问题是我仍然可以使用默认情况下使用MVC 3进行Json.net反序列化吗? 我特别想做的是实现一个Json转换器来处理我要反序列化的对象的inheritance。 因此,如果我发送此Json,API将知道要返回的对象类型。 我按照这里的文章在MVC 3应用程序中创建了一个ASP.net web api。 http://wcf.codeplex.com/wikipage?title=Getting%20started:%20Building%20a%20simple%20web%20api 所以,如果我发送JSON … [{ “WokerId” : “456”, “Company” : “ACompany”, “DOB” : “asdasd” }, { “ContactId” : “123”, “Name” : “Johnny Funtime”, “DOB” : “asdasd” }] 对于此服务合同/ API,我将得到适当的回复。 [ServiceContract] public class ContactsApi { [WebInvoke(Method = “POST”, […]

ASP.NET MVC + WF + WCF + SERVICE LAYER如何在一个项目中使用它们?

我已经开发了我的最后一个项目,如下一个架构 查看 – >控制器 – >服务代码 – >带DDD的存储库(型号) 现在我想使用WF和WCF?它们在我的最后一个架构中在哪里?请告诉我给我一个例子。

SQL Server CLR:如何在Visual Studio 2013数据库项目中的CLR SQL存储过程中调用WCF服务

我有Visual Studio 2013。 我创建了一个数据库项目。 我为该项目添加了一个CLR存储过程,我想从中调用一个WCF服务。 谁能帮我? 我希望能够在不更改程序集的情况下更改服务地址,类似于我在web.config使用我的WCF客户端配置的endpoint部分可以执行的操作。

如何在WCF中使用没有属性“KnownType”的接口数据类型?

如果我正在使用包含“OperationContract”操作的“ServiceContract”。 操作返回或接收接口参数。 当我使用该服务时,我收到一条exception消息: “反序列化器不知道映射到此名称的任何类型。如果使用DataContractSerializer或将与'{%className%}’对应的类型添加到已知类型列表中,请考虑使用DataContractResolver”。 我可以将KnowTypes的属性添加到接口,但我的接口项目与实现项目分离,并且它们不能具有循环依赖性引用,因此无法声明KnowTypes。 什么是最好的解决方案?

使用WCF服务 – c#,VS2008和3.5 SP1

我正在尝试cnsume WCF服务。我获得了svc文件的URL。 1.创建Windows窗体应用程序2.添加了对svc文件的服务引用3.在窗体加载事件期间我的代码后面,我调用服务公开的方法 ServiceReference1.SearchServiceClient search = new WindowsFormsApplication1.ServiceReference1.SearchServiceClient(); var serviceResult = search.SearchByClientNumber(“1”); 我收到此错误由于内部错误,服务器无法处理请求。 有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为)以将exception信息发送回客户端,或者根据Microsoft .NET Framework 3.0 SDK文档启用跟踪并检查服务器跟踪日志。“ 我可以使用WCFTestClient调用该方法,但不能在我的应用程序中调用。 我需要在测试应用配置文件中执行一些更改吗? 有一节适合

将asmx SOAP webservice转换为ASP.NET上的REST:WCF真的对此有用吗?

为什么不在配置中添加http get支持,这样做的好处是服务将兼具SOAP和REST? 什么是rest的嗡嗡声? WCF将为此带来什么? 我的意思是,如果我只是在我的web.config中为我的asmx webservice设置为能够接受类似rest的语法,那么从REST客户端应用程序的角度来看会有什么不同 和WCF REST实现http://geekswithblogs.net/.NETonMyMind/archive/2008/02/04/119291.aspx ? 似乎没有人能真正回答……是因为它很难或是我的问题是愚蠢的:) 客户端只看到url(封装原则)所以我为什么要打扰更多? 什么是更多仍然不清楚:) 其他问题:如果我们切换到WCF,我们是否需要更改url? 如果是,这意味着我们所有的合作伙伴客户都将被打破,我将不得不通知他们我们的变更?

使用SerializableDynamicObject进行动态排序

我需要根据运行时确定的标准对这些集合进行排序。 我使用本文中的代码来执行排序 – 最初我的代码使用了动态类。 然后我遇到了通过WCF进行序列化的问题,所以我切换到使用SerializableDynamicObject ,现在排序代码中断了: PropertyInfo pi = type.GetProperty(prop); 具有Seri​​alizableDynamicObject没有名为“Name”的属性的错误 – 其中“Name”是prop的值。 我想最简单的方法是找到一种序列化排序算法的动态类型的替代方法。 任何指向这个方向将不胜感激! 我看过这个例子,但是收到错误信息: The constructor with parameters (SerializationInfo, StreamingContext) is not found in ISerializable type

GZIP通过WCF将请求压缩到远程Web服务

我正在使用需要与远程Web服务进行通信的Visual Studio 2010编写应用程序。 由于提交的数据量可能很大(最多100MB),因此服务文档说必须使用GZIP HTTP压缩发送请求消息。 我的问题是如何做到这一点,因为我只是在Visual Studio生成的代理对象上调用一个方法,而不是自己实际执行POST? 换句话说,由于我的代码中没有任何“请求”到GZIP,我怎么能告诉WCF为我做这个? 我通过使用提供的WSDL向我的应用程序添加服务引用来连接到服务,然后在Visual Studio生成的代理上调用一个方法来提交请求。 将抛出exception,并显示消息“必须使用HTTP压缩发送请求消息”。 (当然,这并不意外。) web.config设置中是否有一个属性定义了WCF服务,该服务会在将请求发送到远程主机之前使WCF对GZIP请求进行GZIP? 注意:我花了很多时间在网上搜索这个,但问题是大多数post都认为这是需要压缩的Web服务的响应 。 然而,在我的情况下,这是从我的客户发送的请求 。

使用企业CA的WCF SSL证书

对于应用程序,我需要为WCF服务提供SSL证书, 所以我们安装了它。 如果我使用带有网络浏览器的互联网浏览器通过https,我没有问题,没有警告,没有,所以我认为这个证书被认为对Windows有效。 问题是,当我尝试连接到我的WCF服务器时,我收到此错误: The X.509 certificate CN=myHostName, OU=tom, O=myDomainName, L = MyLocation,S = SO,C = CH链构建失败。 使用的证书具有无法validation的信任链。 替换证书或更改certificateValidationMode。 撤销function无法检查吊销,因为吊销服务器处于脱机状态。 有什么不对? 我怎么知道链的哪个部分无效? 有没有办法知道缺少的部分是什么? 这是我的代码服务器: ServiceHost myHost = new ServiceHost(typeof(MyService)); WSHttpBinding binding = new WSHttpBinding { ReaderQuotas = { MaxStringContentLength = int.MaxValue, MaxArrayLength = int.MaxValue, MaxDepth = int.MaxValue, MaxBytesPerRead = int.MaxValue, MaxNameTableCharCount = int.MaxValue }, MaxReceivedMessageSize […]