草庐IT

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

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

c# - 客户端不会捕获通用 FaultException< T >,只会捕获 FaultException

我已经阅读了关于此的所有内容,但也许我遗漏了一些东西(好吧,我肯定遗漏了一些东西,否则它已经可以工作了)我在我的服务器业务层中抛出了一些异常错误:publicclassRfcException:Exception{publicRfcException(string_m,Exception_inner):base(_m,_inner){}publicDictionaryExtendedProperties{get{returnextendedProperties;}protectedset{extendedProperties=value;}}privateDictionaryexten

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

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

c# - (错误)使用 C# 迭代器实现协程的陷阱

我正在编写重构Silverlight程序以使用WCF服务中的部分现有业务逻辑。这样做时,我遇到了Silverlight3中的限制,它只允许对WCF服务进行异步调用,以避免长时间运行或无响应的服务调用阻塞UI线程的情况(SL有一个有趣的队列模型来调用WCF服务在UI线程上)。因此,编写曾经简单明了的内容正变得越来越复杂(请参阅问题末尾的代码示例)。理想情况下,我会使用coroutines为了简化实现,但遗憾的是,C#目前不支持协程作为本地语言工具。但是,C#确实有使用yieldreturn的生成器(迭代器)的概念。句法。我的想法是重新调整yield关键字的用途,以允许我为相同的逻辑构建一

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# - 系统.ServiceModel.CommunicationException : The underlying connection was closed

我正在从一个wcf网络服务中检索数据,当数据超过20万条记录时,我得到一个异常,如下所示:System.ServiceModel.CommunicationException:Theunderlyingconnectionwasclosed:Aconnectionthatwasexpectedtobekeptalivewasclosedbytheserver.--->System.Net.WebException:Theunderlyingconnectionwasclosed:Aconnectionthatwasexpectedtobekeptalivewasclosedbythes

c# - 无法处理消息,因为内容类型 'application/json; charset=utf-8' 不是预期的类型 'text/xml; charset=utf-8'

我在通过ajaxjson调用WCF服务时收到上述响应。我的调用代码是:$(document).ready(function(){$.ajax({type:"POST",contentType:"application/json;charset=utf-8",url:"http://localhost:90/WebServices/UserService.svc/Calculate",data:"{}",timeout:10000,dataType:"json",success:function(response){alert(response)},error:function(xhr,

c# - System.Net.Http.HttpClient 缓存行为

我正在使用NuGet的HttpClient0.6.0。我有以下C#代码:varclient=newHttpClient(newWebRequestHandler(){CachePolicy=newHttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable)});client.GetAsync("http://myservice/asdf");服务(这次是CouchDB)返回一个ETag值和状态代码200OK。返回了一个Cache-Controlheader,其值为must-revalidate更新,这是来自couchdb的

c# - 如何从客户端请求中获取 X509Certificate

我有一个使用证书保护的网络服务。现在,我想通过查看证书指纹来识别客户端。这意味着我在某处的服务上有一个指纹列表,这些指纹链接到某个用户。实际上,我的第一个问题(有点题外话)是:这是一个好方法还是我还应该引入一些用户名密码构造?第二个问题是:我怎样才能获得客户端用来连接到网络服务的证书,以便我可以在服务端读取指纹。我确实阅读了很多相关内容(例如这篇文章:HowdoIgettheX509Certificatesentfromtheclientinwebservice?)但找不到答案。我没有HTTPContext,所以这不是一个选项。在上面提到的帖子中谈到了Context.Request.C

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

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