- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在配置 SoapExtension 时遇到问题(而不是在实现方面)。首先,我已经阅读了所有这些帖子(以及其他帖子),它们在某种程度上与 SoapExtensions 相关:
场景如下:
我正在使用来自库 (dll) 项目的第 3 方 WS(SOAP):connectors.dll
在这个项目中,我有一个对第 3 方 WS(SOAP) 的网络引用。我用 VS 生成了代理(添加网络引用,并指向 wsdl)。
另一方面,我有一个 Web 应用程序(实际上是一个 REST 服务),引用了 connectors.dll 的一个类(我们可以称之为 Connector-A)
(直到这里,我通过我的 REST-Service webapp 调用了一个 rest 服务,调用了连接器-A,这最后一次调用了 3rdParty 的代理服务。我收到了一个响应,但是它有一个无效的字符(位置 1 处的 0x1F),这就是我尝试使用 SoapExtension -> 在反序列化发生之前删除它的原因)
最后一步,配置:* 在我的 REST-Service (webapp) 中添加对 Backend.SoapExtnsions.dll 的引用(VS->Add Reference)
`
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxUrlLength="4000" />
<authentication mode="None" />
<webServices>
<soapExtensionTypes>
<add type="Backend.SoapExtensions.XmlCleanupSoapExtension, Backend.SoapExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=66269ab3fc862c8f" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
<globalization uiCulture="auto:es" culture="auto:es-ES" enableClientBasedCulture="true" />
</system.web>
`
当我调用一个 rest-service 时,它最后调用了 WS-Soap 我现在得到一个运行时异常,这让我抓狂:
The value of the property 'type' cannot be parsed. The error is: Could not load type 'Offidesk.Backend.SoapExtensions.XmlCleanupSoapExtension' from assembly 'Offidesk.Backend.SoapExtensions'.
我想我已经为这一行尝试了所有可能的组合:
<add type="Backend.SoapExtensions.XmlCleanupSoapExtension, Backend.SoapExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=66269ab3fc862c8f" priority="1" group="0" />
实际上,我对这个运行时异常感到非常沮丧。我虽然可能 block 内部的位置可能会影响,但我所有的尝试都得到了相同的异常......
有什么想法吗??
提前致谢。
注意:我还尝试了其他技术来清除覆盖 SoapHttpClientProtocol(在扩展类中)方法的服务器响应:GetReaderForMessage但也不适合我(不知道为什么)。
编辑
最后,无效字符 0x1F 的问题不是这样的。我没有意识到响应是用 gzip 压缩的,代理客户端试图将压缩响应解析为 XML,这显然在运行时引发了异常。
但是,我非常想知道为什么我的带有 soap 扩展的 web.config 不起作用(迟早我们会需要这个配置......所以最好避免)。
最佳答案
对于像我这样来到这里的 Google 员工来说,如果你的 soap 扩展是一个不同于使用它的项目,那么你的 app/web.config 中“type”的预期格式是“namespace.class, project”。
根据您做错了什么,错误消息会略有不同。
如果错误是“Could not load type 'MyType' from assembly 'System.Web.Webservices...”你没有逗号后的第二部分——项目 SOAP 扩展。它希望在 System.Web.Webservices 中找到您的类作为默认类,这当然不是您拥有它的地方。
如果错误只是“Could not load file or assembly 'MyProject' or one of its dependencies...”这意味着逗号后的第二部分是错误的而不是丢失。
关于c# - SoapExtension System.Configuration.ConfigurationErrorsException in web.config 无法解析属性 'type'的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587907/
我正在尝试编写 soap 扩展。但是框架没有加载它。 我已经添加到 web.config 即使我将类型更改为一些废话它也不会抛出异常。 最佳答案 我一直遇到类
背景:我正在尝试编写一个简单的 SoapExtension 类来记录来自 asmx Web 服务的入站/出站 Soap 消息。正在关注this article on msdn ,我已经能够使事情正常进
我有一个派生自 SoapExtension 的类。要进行单元测试,例如 ProcessMessage(SoapMessage) 方法,我需要输入一个 SoapMessage,它是一个抽象类。当我尝试这
我有一些 Web 方法,用于调用一些外部服务(例如 Google Calendar API),显然这些方法可能非常脆弱。 不幸的是,我现在意识到,在这些方法上引发的任何错误都不会导致异常冒泡到 Glo
我创建了一个 SoapExtension 类来捕获来自特定 Web 服务调用的 soap 请求和响应。为了使这个 SoapExtension 生效,我必须向生成的代理客户端中的方法添加一个属性。 例如
我需要使用一个SoapExtension 子类(我已经创建),但似乎只能通过一个web.config 文件来初始化这个类。我已经读到它应该可以通过 app.config 文件实现,但我不知道该怎么做。
我在配置 SoapExtension 时遇到问题(而不是在实现方面)。首先,我已经阅读了所有这些帖子(以及其他帖子),它们在某种程度上与 SoapExtensions 相关: Intercept SO
我是一名优秀的程序员,十分优秀!