【问题标题】:WCF rest client - Post timeoutWCF 休息客户端 - 发布超时
【发布时间】:2011-07-07 06:13:24
【问题描述】:

我是 WCF 休息的新手。我有两个操作合同,一个 POST 和一个 GET 方法。 在我的客户端中,我使用 HttpWebRequest 并尝试访问操作合同。

每当我访问 POST 方法操作合同时,我都会收到超时错误。 但是当我在成功的 GET 方法后尝试访问 POST 方法时,一切正常。

有必要在 POST 方法调用之后使用 GET 方法调用吗?

我在这里做错了什么?

【问题讨论】:

    标签: wcf wcf-rest


    【解决方案1】:

    不需要在 POST 之前执行 GET。您的错误实际上可能不是 POST 超时,而是进入服务器的错误数据和服务器在反序列化时失败。

    GET 是否有可能在客户端上设置一些返回服务器的数据?如果是这种情况,那么 GET 设置的数据是否可能是未设置时导致 POST 在服务器上失败的数据?

    找出答案的最佳方法是在您的服务器上设置跟踪。查看 here 了解 WCF 跟踪的良好示例。

    更新:另一种可能性是您的 GET 代码正在初始化服务器端的某些内容,而您的 POST 调用丢失了。也许是数据库连接?

    【讨论】:

    • 感谢您的建议,将尝试回复您。顺便说一句,如果通过 POST 发送的数据是错误的,那么即使通过 GET 方法正确访问它也会失败.. 但是这是怎么工作的呢?
    • 除非您使用 GET 加载稍后在帖子中发送的数据。在这种情况下,您的请求中可能包含更多内容?很难说你的问题的细节,只是抛出建议。但是,通常请求是无状态的,因此 GET 和 POST 根本不应该交互。
    • 我尝试使用 Httpwebrequest 和 JsonSerialization 访问我的休息服务,我的帖子没有任何问题。我有另一个客户端使用 servicemodel.clientbase 访问我的服务。在这种情况下,当我访问 post 方法时,我会超时。我在这里缺少任何设置吗?使用客户端访问rest服务是否正确?
    • 我从未将客户端用于 REST,但这里有一个示例:switchonthecode.com/tutorials/creating-a-rest-client-using-wcf
    • 现在我想到了,我不确定在这里使用 REST 是否完全有意义。如果您有自己的服务并尝试为其编写客户端,那么使用 SOAP(生成代理等)会容易得多。您还可以为同一个服务定义一个 REST 和 SOAP 端点,并将合约作为运行操作的实际逻辑的外观。
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多