Tag: soaphttpclientprotocol

使用GetWebRequest修改SOAP请求

我试图动态修改SOAP请求中的XML数据到ASMX服务。 我在SoapHttpClientProtocol类中重写了GetWebRequest()方法,以便读取和修改RequestStream包含的XML数据。 问题是,请求似乎是空的,没有任何数据。 这是因为SOAP数据尚未生成和序列化,还是我做错了什么?

System.Web.Services.Protocols.SoapHttpClientProtocol使用什么版本的SSL / TLS?

现在已经发现SSL 3容易受到POODLE攻击: System.Web.Services.Protocols.SoapHttpClientProtocol在连接到任何https Uri时使用的是什么版本的SSL / TLS? 我使用SoapHttpClientProtocol连接到几个第三方SOAP API。 其中一个已经表示他们将阻止任何使用SSL 3的请求。但SoapHttpClientProtocol是.Net核心框架的一部分(使用4.5),因此它使用的SSL版本或如何覆盖版本并不明显。 请注意,此问题与System.Net.WebRequest支持哪些版本的SSL / TLS不重复? 。 我使用了几个API,一些是REST(另一个问题是那些),一些是SOAP(这个问题适用于那些)

慢SoapHttpClientProtocol构造函数

我正在使用Microsoft Dynamics CRM进行一些实验。 您通过Web服务与它进行交互,并且我已将Web引用添加到我的项目中。 Web服务接口非常丰富,生成的“Reference.cs”大约是90k loc。 我在控制台应用程序中使用Web引用。 我经常改变一些东西,重新编译并运行。 编译很快,但是CrmService service = new CrmService(); Web服务引用非常慢,花费大约15-20秒: CrmService service = new CrmService(); 分析显示所有时间都花在SoapHttpClientProtocol构造函数中。 罪魁祸首显然是XML序列化代码(不包括在上面提到的90k loc中)是在运行时生成的,然后才进行JIT。 这在构造函数调用期间发生。 在玩耍和尝试时,等待是相当令人沮丧的。 我尝试了sgen.exe,ngen和XGenPlus的各种组合(需要几个小时并生成500MB的额外代码),但无济于事。 我已经考虑过实现一个几乎没有CrmService实例的Windows服务,可以在需要的时候发布,但这似乎太过分了。 有任何想法吗?