【问题标题】:Formatter error of WCF webservice while consuming through soap UI通过soap UI消费时WCF webservice的格式化程序错误
【发布时间】:2019-07-18 21:57:01
【问题描述】:

我正在使用https wcf 服务,其中输入字符串useremail,如果我输入有效字符串或电子邮件,没有问题。但是如果我输入<test>test(1)</test>。通过soap UI 我得到一个大错误,比如"The formatter through an exception while trying to deserializ....End element 'useremail' from namespace'' expected",在 Visual Studio 中,<> 字符将转换为 ltgt。我们的安全团队正在通过soap ui 检查 web 服务,不希望在 Soap UI 中出现这个大错误消息。所以我正在考虑一种通过代码捕获这些异常并显示通用简单消息的方法。我在代码中做的另一件事是我正在验证“useremail”是否为有效电子邮件。但是通过soap UI触发时,它不是完全没有达到那个验证,而不是给出一个很大的错误。

我确实遵循了 sn-p 代码,但这根本没有达到代码

try
        {
          bool isvalid =ValdiateXMl(request.email);
    if(!isvalid)
{
    "invalid email"
}

        }
        catch (Exception ex)
        {


            log.Info(ex.Message);
            response.ErrorCode = -1;
        }
        finally
        {
                      log.Info("invalid email"); 
        }

【问题讨论】:

    标签: c# asp.net wcf exception soapui


    【解决方案1】:

    我认为问题不在于 SoapUI。应该用它们各自的 XML 字符引用正确替换“非法字符”。

    需要分别转换成<>

    但我希望 XML 解析器为您处理。

    【讨论】:

    • 如何在这里创建一个xml解析器。因为如果他们通过soap ui插入,代码中什么也没有
    • 你是说有人在请求中添加了 ,这就是问题所在?
    • 是的,我们的测试人员正在做一些测试,他们正在为此使用soap UI。有什么方法可以在代码中解决这个问题。当我通过Visual Studio客户端应用程序进行测试时。它工作正常
    • 解决方案可以在SoapUI文档https://www.soapui.org/docs/functional-testing/working-with-cdata.html中找到,你也可以使用HttpUtility.HtmlEncode()方法来编码你的xml字符串。
    • 很抱歉直言不讳。但是,如果您的测试人员这样做,那么他们就是愚蠢的。他们正在修改 XML,使其不再符合合同。那注定要失败。如果他们通过 UI 尝试类似的东西,并将其转换为 XML,我希望这些字符要么被正确编码,要么 - 正如你所链接的 - 包装在 CDATA 中。编辑:结果很苛刻。但他们应该被告知这样做不是一个适当的测试。如果他们想看看你如何处理标签,他们可能会这样做,但这不是这样做的方式。
    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多