【问题标题】:How to debug WCF when json deserialize fail?json反序列化失败时如何调试WCF?
【发布时间】:2013-08-05 01:22:15
【问题描述】:

我有一个 RESTful 服务,但它在 MONO 中似乎有问题。

在 .NET 中,当我传递一个无效的帖子格式时,例如缺少 Content-Type 或无效的 json 正文格式,它会抛出异常并等待下一个请求。但是在 MONO 中,它抛出未处理的异常并下降,我的意思是,它完全退出。这可能是致命的攻击。

不幸的是,我不知道如何调试它,它不会发生在我编写的代码上。

各位有什么建议吗??如何避免或捕获此异常? 谢谢!

CLI 主机。

界面

Fiddler 发布格式错误

那么服务就宕机了:(

【问题讨论】:

  • 什么版本的单声道?
  • 2.8.10.1-1ubuntu2.2 ,安装单完整
  • 请用 mono 3.2 测试
  • 对于 3.2,我仔细检查了 mac 和 Github 构建的 MONO,它们在发布有效 json 时会抛出相同的异常。我错过了什么,还是更糟?上面提到了安全方法,但是我的绑定是webHttpBinding,里面没有任何安全------------------------ ----------------- Missing method Mono.Security.Protocol.Tls.SslServerStream::.ctor(Stream,X509Certificate,bool,bool,bool) in assembly /media/share/Debug/Mono.Security.dll, referenced in assembly /usr/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll

标签: json wcf serialization mono


【解决方案1】:

有了 @knocte 提供的线索,我最终成功了。

这似乎是一个已修复的错误,但 Xamarin 表示将不再修补旧版本。

我所做的升级到 mono3.2 (https://github.com/mono/mono/tree/mono-3-2),现在 mono 可以处理该异常并且不会退出。

此外,您可能希望使用 monoDevelop (https://github.com/mono/monodevelop/tree/monodevelop-4.1.7-branch) 重建程序

再次感谢@knocte,请将您的线索作为答案发布,以便我投票;]

P.S:当前版本的 mono/MD 不适用于 ubuntu apt-get,因此您可以在上面克隆/制作它们,它可以工作。请注意,我使用的 MD 不是 bleed edge one,您可以切换到较新的分支:]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    相关资源
    最近更新 更多