草庐IT

c# - WCF 跟踪上未找到配置评估上下文警告

我有一组托管在.NET4应用程序上的WCF服务。我手动创建ServiceHost类并开始监听TCP端口。一切都按预期工作,但在服务器端的WCF跟踪中,我收到以下警告。未找到配置评估上下文。XML跟踪如下:524312304BAROLOhttp://msdn.microsoft.com/it-IT/library/System.ServiceModel.EvaluationContextNotFound.aspxConfigurationevaluationcontextnotfound.Server.Console.vshost.exe知道警​​告的原因吗?谢谢

c# - WCF 客户端 : Forcing Global Namespaces

我正在处理与SOAP服务的接口(interface),该服务似乎不处理默认namespace,但可以很好地处理在SOAP信封级别声明的全局namespace和namespace前缀。问题是WCF不会在根目录下创建这些全局命名空间,而是使用显式的无前缀默认命名空间,而服务显然会阻塞这些默认命名空间。现在我知道这并不是WCF的错——我相信WCF生成的消息是有效的XML,但服务仍然会阻塞它。使用WCF生成的输出如下所示:2016-03-26T01:44:37.0493801Z2RMG-API-G-01ozhckwej6sxgTTT001908905GB这是行不通的。使用以下SOAP信封(在S

c# - 向 WCF 主机进程发送消息

我有一个托管WCF服务的控制台应用程序。我希望能够从WCF服务中的方法触发事件并在WCF服务的托管进程中处理事件。这可能吗?我该怎么做?我可以从ServiceHost派生自定义类吗? 最佳答案 您不需要从ServiceHost继承。还有其他方法可以解决您的问题。您可以将服务类的实例而不是类型传递给ServiceHost。因此,您可以在启动ServiceHost之前创建实例,并将您自己的事件处理程序添加到它公开的任何事件。下面是一些示例代码:MyServicesvc=newMyService();svc.SomeEvent+=newM

c# - 如何限制对 WCF 中某些方法的访问?

开始使用简单的WCF服务时,我有点不知所措。我有两种方法,我想将一种方法公开给全世界,另一种方法我想限制某些用户使用。最终我希望能够使用客户端应用程序来使用受限方法。到目前为止,我可以匿名访问这两种方法:C#代码namespaceserviceSpace{[ServiceContract]interfaceILocationService{[OperationContract]stringGetLocation(stringid);[OperationContract]stringGetHiddenLocation(stringid);}[AspNetCompatibilityRequ

c# - 什么可能导致 WCF 中出现 "Cannot access a disposed object"错误?

我正在使用以下代码:privateWSHttpBindingws;privateEndpointAddressSrv_Login_EndPoint;privateChannelFactorySrv_LoginChannelFactory;privateSrv_Login.Srv_ILoginLoginService;Login是我的构造函数:publicLogin(){InitializeComponent();ws=newWSHttpBinding();Srv_Login_EndPoint=newEndpointAddress("http://localhost:2687/Srv_L

c# - 异步 CTP - 如何使用异步/等待调用 wcf 服务?

如果我调用WCF服务方法,我将执行如下操作:proxy.DoSomethingAsync();proxy.DoSomethingAsyncCompleted+=OnDoSomethingAsyncCompleted;我如何使用新的async做同样的事情?CTP?我想我需要类似proxy.DoSomethingTaskAsync的东西或proxy.DoSomethingAsync().ToTask()?Web服务调用需要返回Task能够使用await关键字,但如何?? 最佳答案 在CTP中,有一些工厂方法可以将常规APM函数(开始/结

c# - WCF NamedPipe CommunicationException - "The pipe has been ended. (109, 0x6d)."

我正在编写带有“状态工具”的Windows服务。该服务托管一个用于进程间通信的WCF命名管道端点。通过命名管道,状态工具可以定期查询服务的最新“状态”。在我的开发机器上,我有多个IP地址;其中之一是具有192.168.1.XX地址的“本地”网络。另一个是“企业”网络,地址为10.0.X.XX。Windows服务收集单个IP地址上的UDP多播流量。到目前为止,只要使用“192.168.1.XX”地址,Windows服务就可以正常工作。它始终如一地向客户端正确报告状态。当我切换到另一个“公司”IP地址(10.0.X.XX)并重新启动服务后,我在检索状态时收到连续的“Communicatio

c# - WCF 服务中的 HttpContext 为空?

这是我的代码行,它在HttpContext.Current上抛出错误stringpostData="username="+HttpContext.Current.Server.UrlEncode(USERNAME); 最佳答案 这很正常。WCFWeb服务中没有HTTP上下文。WCF服务甚至可能不托管在Web服务器内。您可以在控制台应用程序中托管。有一个技巧可以让你设置ASP.NETCompatibilityMode:但我不建议您这样做。我会这样做:varpostData="username="+HttpUtility.UrlEnco

c# - 如何检查 net.tcp WCF 服务的可用性

我的WCF服务器需要定期启动和关闭,客户端有时会使用服务器,但如果它关闭了,客户端就忽略它。所以每次我需要使用服务器服务时,我都会检查连接状态,如果它没有打开,我就打开它。问题是,如果我在服务器关闭时尝试打开,则会出现延迟,从而影响性能。我的问题是,是否有办法执行某种myClient.CanOpen()?所以我想知道是否有必要打开与服务器的连接。 最佳答案 有一个WS-Discovery的实现可以让您监听您的服务的上/下公告。这也是一种非常方便的服务地址解析形式,因为它利用UDP多播消息来查找服务,而不是在客户端配置一组地址。WS-

c# - 通过 WCF 发送元组对象?

System.Tuple类是否受WCF的数据契约序列化程序支持(即,我能否将Tuple对象传递给WCF调用和/或接收它们作为部分或全部结果)?我找到了thispage,但不是我所希望的明确、明确的“您可以使用WCF发送和接收元组”的答案。我猜你可以,只要Tuple本身的所有类型within都受DataContractSerializer支持——任何人都可以向我提供更明确的答案?谢谢。 最佳答案 Tuple类型标有SerializableAttribute,因此,如果您在其中存储的类型是可序列化的,那么它们也应该能够被WCF序列化。查