Tag: wcf

使用ConfigurationManager加载System.ServiceModelconfiguration部分

使用C#.NET 3.5和WCF,我试图写出客户端应用程序(客户端连接到的服务器的名称)的一些WCFconfiguration。 显而易见的方法是使用ConfigurationManager加载configuration部分并写出我需要的数据。 var serviceModelSection = ConfigurationManager.GetSection("system.serviceModel"); 似乎总是返回null。 var serviceModelSection = ConfigurationManager.GetSection("appSettings"); 完美的作品。 configuration部分存在于App.config中,但由于某种原因ConfigurationManager拒绝加载system.ServiceModel部分。 我想避免手动加载xxx.exe.config文件和使用XPath,但如果我不得不诉诸我会。 只是看起来有点黑客。 有什么build议么?

如何获取WCF Web服务请求的XML SOAP请求?

我在代码中调用这个Web服务,我想看看XML,但是我找不到一个暴露它的属性。

X509Store证书出现问题。查找FindByThumbprint

我在使用方法X509Store.Certificates.Find时遇到问题 public static X509Certificate2 FromStore(StoreName storeName, StoreLocation storeLocation, X509FindType findType, string findValue) { X509Store store = new X509Store(storeName, storeLocation); store.Open(OpenFlags.ReadOnly); try { //findValue = "7a6fa503ab57b81d6318a51ca265e739a51ce660" var results = store.Certificates.Find(findType, findValue, true); return results[0]; } finally { store.Close(); } } 在这种情况下查找方法返回0结果( results.Count == 0 ),但如果我把findValue作为常量的方法查找证书。 public static X509Certificate2 FromStore(StoreName storeName, StoreLocation storeLocation, X509FindType findType, string findValue) […]

WCF ExceptionShielding错误ID不匹配与handlingInstanceId传递给处理程序

我有以下服务装饰 <ExceptionShielding("MyExceptionPolicyName")> 当一个错误exception被抛出时,我的策略会检测到错误并且很好地login。 它采用handlingInstance Id并将其与错误一起logging以供参考。 我注意到的是,在错误中返回的Guid“Error ID:”与传入处理instanceId的错误不同。 我也试图装饰这样的操作 <FaultContract(GetType(ValidationFault))> 但是这会产生相同的结果。 我想要做的是如何捕捉到“错误ID:”传回给消费者,所以我可以logging它与例外。 *补充信息:exception策略处理程序是一个自定义exception,它将各种属性和数据logging到特定的exception日志数据库模式中。 任何人都知道如何做到这一点? 更新:每@ Jay Patel的评论,我把这个添加到我的configuration启用跟踪 <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> <listeners> <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "c:\Temp\Traces.svclog" /> </listeners> </source> </sources> </system.diagnostics> 然后,我执行了一个请求来获得由exception屏蔽屏蔽的故障响应。 错误响应string格式如下:“使用此服务时发生错误,请与您的pipe理员联系以获取更多信息。错误ID:{GUID}” 然后我查看了跟踪日志,发现没有任何证据的GUID或这个string。 在使用ExceptionShielding时,任何关心查看其示例的人都可以通过tracelog链接到这个tracelog。 UPDATE2: 再次,根据@Jay Patel的评论,补充说。 我为maxMessageLog尝试了-1和max int值,以确保获得该日志中的最大数据量。 <diagnostics> <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="2147483647" /> </diagnostics> 日志没有帮助。 它甚至不包括任何关于回答我的问题的事情。 为了澄清的情况下,不清楚上面…我希望能够在消息中的“错误ID:”后面捕获的GUID回到客户端,所以我可以loggingexception处理程序logging的exception。 […]

一个asp.net web方法和一个wcf服务有什么区别?

我是.Net新手,不了解其中的差别。 有人能指出我正确的方向吗?

访问IIS中的.svc文件时的HTTP 404

我最近创build了一个WCF服务,当从Visual Studio 2008testing时工作正常,但是当我将项目部署到IIS,并尝试从IIS访问.svc文件时,出现此错误: "Server Error in '/' Application.The resource cannot be found. " 过去4天我一直有这个问题。 在IISpipe理器的处理程序映射中,我可以看到.svc的两个条目: svc-Integrated and svc-ISAPI-2.0

我应该使用netsh.exe什么appid?

netsh命令需要一个appid( 参见这里 ): netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 我还没有能够了解我应该怎么知道netsh希望我提供的GUID。 任何提示?

什么是w3wp.exe?

我有本地系统上的服务用户下运行的WCF服务。 每次我尝试debugging它给我一个消息Attach Security warning 。 在Visual Studio中,默认情况下(即使没有附加),我得到这个错误: 附加到此过程可能会损害您的计算机。 如果以下信息看起来可疑或者您不确定,请不要重视此过程 名称:C:\ Windows \ System32 \ inetsrv \ w3wp.exe 什么是w3wp.exe ? 根据Google的search,我认为它与IIS有关。 但它是做什么的? 什么设置应该改变,以便这不会每次我尝试在我的本地系统上debugging时给这个消息?

内容typestext / xml; charset = utf-8不被服务支持

我有一个WCF服务的问题。 我有一个控制台应用程序,我需要使用该服务,而不使用app.config,所以我不得不通过代码设置端点等。 我有一个服务引用的svc,但我不能使用app.config。 这是我的代码: BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://localhost:8731/WcfServicio/MiServicio"); MiServicioClient svc = new MiServicioClient(binding, address); object ob = svc.PaisesObtener(); 在最后一行,当我做svc.PaisesObtener()我得到的错误: Content Type text/xml; charset=utf-8 was not supported by service http://localhost:8731/WcfServicio/MiServicio. The client and service bindings may be mismatched.

使用ELMAHloggingWCF服务exception

我们正在使用优秀的ELMAH来处理ASP.NET 3.5 Web应用程序中未处理的exception。 除了使用RESTfunction消耗的WCF服务之外,这对于所有网站都非常有效。 当在应用程序代码不处理的操作方法中发生exception时,WCF将根据服务合同和configuration设置以各种方式处理它。 这意味着这个exception不会引发ELMAH使用的ASP.NET HttpApplication.Error事件。 我知道处理这两个解决scheme是: 将所有的方法调用封装在一个try {} catch(Exception ex){Elmah.ErrorSignal.FromCurrentContext()。Raise(ex); 扔; }在catch块中显式调用Elmah。 使用IErrorHandler将在Will Hughes的博客文章中描述使WCF和ELMAH一起玩起来将ELMAH调用分解为一个单独的ErrorHandler。 第一个选项非常简单,但不完全干燥 。 第二个选项只需要在实现属性和ErrorHandler后用装饰属性装饰每个服务。 我已经完成了基于威尔的工作,但我想validation这是发布代码之前正确的方法 。 有没有更好的办法,我错过了? IErrorHandler的MSDN文档说, HandleError方法是做logging的地方,但是ELMAH访问HttpContext.Current。 ApplicationInstance ,即使HttpContext.Current可用,此方法内为null。 在ProvideFault方法中调用Elmah是一种解决方法,因为ApplicationInstance已设置,但与API文档中描述的意图不符。 我在这里错过了什么? 该文档确实说明,您不应该依赖在操作线程上调用的HandleError方法,这可能是为什么ApplicationInstance在此范围内为null。