gpt4 book ai didi

c# - Wcf 从操作中获取原始请求

转载 作者:太空狗 更新时间:2023-10-29 21:39:06 25 4
gpt4 key购买 nike

我搜索了很多次来寻找好的答案,但得到的很多答案都不令我满意。

我们有一个正常操作的服务。在每个操作中,我们调用不同的项目来处理操作并将操作的一些信息存储在数据库中。

我们有一个新需求:将操作的soap消息也存储在数据库中。是否可以从 wcf 操作接收 soap (xml)?还是真的需要事件?

最佳答案

我无法使用 OperationContext.Current.RequestContext.RequestMessage.ToString()因为它将请求转换为 Xml。当请求是 JSON 时,我希望它保持这种状态。我还发现,在调用端点的方法时,Request.InputStream是空的---即使我有<add key="wcf:serviceHostingEnvironment:useClassicReadEntityBodyMode" value="true" />在 web.config 中(仅供引用:该应用正在运行 .Net 4.5.2)。

所以,我所做的就是实现 Application_BeginRequest在 Global.asax.cs 中。我提取了 Request.InputStream 的内容在那里,并将该请求正文保存到 Context.Items .后来,在IErrorHandlerProvideFault(...) ,我将保存的字符串传输到异常的 Data属性,以便日志稍后在 HandleError(...) 时捕获它运行(ItemsHandleError 运行时为空)。

关于c# - Wcf 从操作中获取原始请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26626741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com