草庐IT

c# - 大型 WCF Web 服务请求因 (400) HTTP Bad Request 而失败

我遇到了这个明显常见的问题,但一直无法解决。如果我在数组参数中使用相对较少的项目调用我的WCFWeb服务(我测试过最多50个),一切都很好。但是,如果我用500个项目调用Web服务,我会收到BadRequest错误。有趣的是,我运行了Wireshark在服务器上,看起来请求甚至没有到达服务器-在客户端生成400错误。异常(exception)情况是:System.ServiceModel.ProtocolException:Theremoteserverreturnedanunexpectedresponse:(400)BadRequest.--->System.Net.WebExce

c# - WCF反序列化如何在不调用构造函数的情况下实例化对象?

WCF反序列化有一些魔力。它如何在不调用其构造函数的情况下实例化数据协定类型的实例?例如,考虑这个数据契约:[DataContract]publicsealedclassCreateMe{[DataMember]privatereadonlystring_name;[DataMember]privatereadonlyint_age;privatereadonlybool_wasConstructorCalled;publicCreateMe(){_wasConstructorCalled=true;}//...othermembershere}当通过DataContractSeria

c# - 如何从 WCF REST 方法返回自定义 HTTP 状态代码?

如果WCFREST调用出现问题,例如未找到请求的资源,我如何在OperationContract方法中使用HTTP响应代码(例如将其设置为HTTP404之类的代码)? 最佳答案 有一个WebOperationContext你可以访问并且它有一个OutgoingResponse类型属性OutgoingWebResponseContext它有一个StatusCode可以设置的属性。WebOperationContextctx=WebOperationContext.Current;ctx.OutgoingResponse.StatusC

c# - WCF 在没有 "set "的属性上阻塞。任何解决方法?

我有一些类作为服务方法的结果传递,并且该类有一个只读属性:[DataContract]publicclassErrorBase{[DataMember]publicvirtualstringMessage{get{return"";}}}我在服务端遇到异常:System.Runtime.Serialization.InvalidDataContractException:Nosetmethodforproperty'Message'intype'MyNamespace.ErrorBase'.我必须将这个属性作为唯一的getter,我不能让用户给它赋值。我可以使用任何解决方法吗?还是我缺

c# - WCF 错误 - 找不到引用契约(Contract) 'UserService.UserService' 的默认终结点元素

有什么办法解决这个问题吗?UserService.UserServiceClientuserServiceClient=newUserServiceClient();userServiceClient.GetUsersCompleted+=newEventHandler(userServiceClient_GetUsersCompleted);userServiceClient.GetUsersAsync(searchString);.在ServiceModel客户端配置部分找不到引用契约(Contract)“UserService.UserService”的默认端点元素。这可能是因为

c# - 什么是 WCF RIA 服务?

我讨厌MSDN的WCFRIA服务站点。它没有说明它是什么,它只说明它做了什么。它说明了它可以实现什么,但没有说明我为什么需要它。例如:"Acommonproblemwhendevelopingann-tierRIAsolutioniscoordinatingapplicationlogicbetweenthemiddletierandthepresentationtier".嗯,这对我来说意义不大。"RIAServicessolvesthisproblembyprovidingframeworkcomponents,tools,andservicesthatmaketheapplica

c# - WCF ServiceHost 访问权限

我在学习WCF教程时遇到以下错误。HTTP无法注册URLhttp://+:8000/ServiceModelSamples/Service/.您的进程没有访问此命名空间的权限(有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=70353)。这是Windows7的限制造成的吗? 最佳答案 问题是URL被Windows阻止创建。修复步骤:以管理员身份运行命令提示符。将URL添加到ACLnetshhttpaddurlaclurl=http://+:8000/ServiceModelSampl

c# - Catch-22 阻止了 WIF 保护的流式 TCP WCF 服务;毁了我的圣诞节,心理健康

我需要使用WIF保护流式WCFnet.tcp服务端点。它应该根据我们的token服务器验证传入调用。该服务是流式传输的,因为它旨在传输大量数据和内容。这似乎是不可能的。如果我不能绕过这个陷阱,我的圣诞节就会毁了,我会把自己喝死在阴沟里,而快乐的购物者会慢慢地从我身边走过散热体。严肃点,你们。为什么这是不可能的?这是第22条军规。在客户端,我需要使用GenericXmlSecurityToken创建一个channel我从我们的token服务器获得。没问题。//peoplearoundherehatetheFrameworkDesignGuidelines.vartoken=Authent

c# - WCF 客户端 `using` block 问题的最佳解决方法是什么?

我喜欢在usingblock中实例化我的WCF服务客户端,因为它几乎是使用实现IDisposable的资源的标准方式:using(varclient=newSomeWCFServiceClient()){//Dosomethingwiththeclient}但是,如thisMSDNarticle中所述,将WCF客户端包装在usingblock中可以掩盖导致客户端处于故障状态(如超时或通信问题)的任何错误。长话短说,调用Dispose()时,客户端的Close()方法会触发,但会抛出错误,因为它处于故障状态。原始异常随后被第二个异常屏蔽。不好。MSDN文章中建议的解决方法是完全避免使用u

linux - 使用 Apache2 的 Linux 上的 WCF 服务

基于我能让WCF在Mono中的4.0框架上工作的希望,我已经完成了几个示例(如下所示)。InstallingaMono-ServerforWCFIndigoInfocard但是,http://www.mono-project.com/WCF上的链接似乎没有包含“指南”,可以说是“这里是如何在linux上使用mono设置wcf”。在旁注上。我想我已经检查了google的前两页以了解大多数wcf/mono关键字组合都无济于事。是否可以轻松地在Linux上启动和运行WCF服务?我认为apache2端可能有一些配置?(我正在使用Ubuntu11.10运行灯服务器)。我使用了库存的4.0WCF服