问题标签 [soap-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .Net Web 服务日志记录
我登录 Web 服务的理想情况是记录所有方法调用(身份验证和数据访问)以及传递给它们的参数以及可能发生的错误,并将它们与关联的单个 ID 链接他们用同一个电话。此外,理想情况下,我希望能够控制是否记录所有参数,或者是否只记录方法调用。我希望能够控制是记录所有登录还是仅记录失败的登录。同样,在单个请求中检索到的所有信息都将通过 id(guid 或其他)链接在一起。
这是我理想的日志记录情况。如果有人知道如何实施所有这些并愿意搬到新罕布什尔州曼彻斯特地区... ;)
但说真的,有谁知道我将如何将收到的 Web 服务请求与错误或方法调用联系起来?我最初的尝试涉及在 Soap 扩展中搞乱,尝试添加标头(soap 或 html)以及不将任意值从扩展传递到服务本身的内容。我所有的尝试都没有成功。
我们当前的日志记录情况是将身份验证记录到一个表,将方法/业务调用记录到另一个表,将异常记录到另一个表,它们之间没有互连。有时,时间戳很有帮助,但不够可靠,无法有效调试。我们目前正在使用 .Net 2.0,有可能在年底前使用 3.5,因此如果保留对 2.0 功能的回复会更有帮助。
有人有什么想法吗?
.net - .NET SOAP 扩展在 MethodInfo 中抛出 NullReferenceException?
注意:使用 .NET 2.0 和 VS2005 作为 IDE
大家好,
我正在将 web 服务调用记录到我们的数据库中,最后使用从另一个项目移植过来的非常精简的实现来配置和运行 SoapExtension。我已经在配置文件中设置了它,因此它将适用于所有方法。当我调用我的 web 服务,soap 扩展触发时,当 SoapServerMessage 尝试调用其 MethodInfo 属性时会抛出 NullPointerException:
在 ProcessMessage(SoapMessage) 的 BeforeDeserialize 阶段调用 LogInput 方法:
当尝试访问它尝试记录的消息对象的 MethodInfo 属性时,LogInput 方法失败。这是调用该属性的代码块:
当 message.MethodInfo 被调用时,它会冒泡到 SoapServerProtocol.get_MethodInfo(),并且在那里抛出空引用异常。我用谷歌搜索,并在 Stack Overflow 上进行了检查,但无法找出 MethodInfo 属性会引发异常的原因。
有谁知道如何确保在 Web 服务调用期间正确初始化此 MethodInfo 属性?
附加详细信息:如果我不尝试访问 MethodInfo 属性,则扩展程序可以正常工作并记录到我的数据库中。
xml - 向 XML 根节点添加前缀 - Scott Hanselman 建议的实现?
我想为 XML 根节点添加一个命名空间前缀,我找到了 Scott Hanselman 的一个条目,其中详细说明了我想要实现的目标。唯一的问题是缺少实施!
修改 SOAP Web 服务响应主体的根节点的命名空间 PREFIX....哇!
如果我能得到一些关于如何解决这个问题的线索,那将是非常有帮助的。
是否有某个地方已经存在的实现?
Scott 的条目发布于 2003 年。从那以后情况发生了变化吗?随着 .NET 3.5 的出现,Soap Extensions 仍然是正确的方法吗?
编辑:当前的 Web 服务响应类似于...
所需的响应应该看起来像......
web-services - 如何检测 ASP.NET 请求使用的 Web 服务协议?
我有一个 ASP.NET (1.1) Web 服务,它使用 SoapExtension.ProcessMessage(SoapMessage) 覆盖对客户端进行身份验证,如下所述:
http://www.codeguru.com/columns/experts/article.php/c5479
但是,如果 web.config 没有设置为 HttpSoap 是唯一允许的协议,那么 ProcessMessage 将永远不会被其他协议上的请求调用,因此会绕过安全性。
无论如何以编程方式确保正在使用 SOAP(而不是依赖 web.config 是正确的)?
谢谢。
asp.net - 如何跟踪 ScriptService WebService 请求?
我有一个旨在记录所有 SOAP 请求和响应的 SoapExtension。它适用于使用 MS Soap Toolkit (OnBase Workflow) 的应用程序调用。但它不适用于由 $.ajax() 在 html 页面上进行的调用。这是一个例子:
它正在调用标有 WebService 和 ScriptService 属性的 ASP.NET 3.5 WebService:
以下是 SoapExtension 和 SoapExtensionAttribute 的基础知识:
我是否遗漏了允许 LoggingSoapExtension 在 $.ajax() 请求上执行的内容?
更新
@克里斯布兰兹玛
这可能是因为您通过 Web 服务(数据类型:“json”)请求 Json 结果而不是 XML。因此 ScriptService 属性被激活,但您没有发送 SOAP 消息。
这回答了为什么 SoapExtension 不起作用。对使用 ScriptService 进行跟踪有什么建议吗?唯一想到的是 ScriptService 基类,它提供了一种记录请求的方法。但是我必须在每个 ScriptService WebService 中的每个 WebMethod 中调用该方法(我有很多)。如果可能的话,我想使用像 SoapExtension 属性一样干净简单的东西。
c# - 使用 SoapExtensionAttribute 调用方法
我有问题,我想在网络方法中设置肥皂扩展属性:网络服务中的肥皂扩展:
肥皂扩展类:
网络方法上的肥皂扩展:
它以这个编译错误结束:
错误 1 当前上下文中不存在名称“setKey”错误 2 非静态字段、方法或属性需要对象引用
更新1:
我试过了:
有用。但是我想在客户端调用 web 方法之前更改属性,这是可能的,或者属性必须是 const ?
例如:public string strAttribute
不起作用。
更新 2:
我有另一个问题:
我有类,变量 num:
网络方法上的肥皂扩展:
c# - ASMX Web 服务 Soap 扩展 - 如何将属性注入客户端代理类?
我尝试在客户端设置肥皂扩展属性。例如:
Web服务中的实现:
肥皂扩展类:
用于网络方法:
代理类中的实现:
Soap 扩展属性是::[EncryptMessage( StrKey = "pass")]
我想在客户端设置 Soap Extension 属性,在我使用 Soap Extension 之前,当我调用一些 web 方法时。
示例:在使用肥皂扩展之前,我调用了一些方法,在两边都设置了肥皂扩展属性。有人可以帮助我吗?
stream - 带有 Soap 扩展的 ASMX Web 服务 - 加密方法的问题
我尝试在 ASP.NET Web 服务中唱歌和加密 SOAP 消息。
我在 Soap 扩展类中使用了 CryptUtility 对象:
问题是,当我在 AfterDeserialize 中记录 SOAP 消息时,XML 是纯文本,但它应该是加密的 有人可以帮我吗,哪里有问题,或者我能做些什么不好?
因为首先我在 SoapMsg 类中使用方法 EncryptAndSingXml 作为 void,它工作正常!!! 像这样的东西:
但是,当我将类 CryptUtility 和方法 EncryptAndSingXml() 设为虚拟时,它不起作用。:( 有人可以帮助我吗?
c# - SoapExtension 未加载
我正在尝试编写一个肥皂扩展。但是框架没有加载它。
我已添加到 web.config
即使我将类型更改为一些废话它也不会抛出异常。
.net - 使用 SoapExtension 调用其他网络方法
我有一个 WSDL,它定义了一个名为CalendarService的 Web 服务:
WSDL 定义了以下方法:
CalendarService 没有部署在任何地方。 CalendarServiceProxy是从 CalendarService WSDL 生成的代理。
我有一个名为DummyService的 Web 服务,可通过“ http://example.com/dummy ”访问
DummyService 有以下方法:
DummyService 部署在 IIS 上。
我想知道是否可以编写一个 SoapExtension,以便从 CalendarServiceProxy 对 CalendarService WSDL 中定义的所有方法的所有调用调用 DummyService 的方法 dummyMethod。这样 dummyMethod 方法将序列化的传入 SOAP 消息作为参数获取。