首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果第一个服务响应对另一个the服务的调用,则调用另一个the服务的WebService具有不同的行为

如果第一个服务响应对另一个the服务的调用,则调用另一个the服务的WebService具有不同的行为
EN

Stack Overflow用户
提问于 2012-06-08 06:12:22
回答 1查看 115关注 0票数 0

我已经编写了一个Windows,它通过C#提供REST api。此服务需要调用另一个web服务,该服务也使用REST api。我的服务可以与其他服务完美地通信,除非有人调用了我的服务,并且它当前正在响应。我写了一个简单的测试:

代码语言:javascript
复制
public void TestConnection()
{
    WebChannelFactory<IOtherService> wf = new WebChannelFactory<IOtherService>(otherURI);
    IOtherService service = wf.CreateChannel();
    service.Test();
}

[ServiceContract]
public interface IOtherService
{
    [WebGet(UriTemplate = "services/account?username=testuser&password=d625a4de623dce36af2b75102eaf0ce7&locale=en-US", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    [OperationContract]
    AccountServiceInfo Test();
}

通常,当我调用TestConnection时,它工作得很好,但是当有人调用我的服务,要求我调用TestConnection时,另一个服务看到的是POST而不是GET,并返回400。有没有人知道为什么会出现这种情况,或者我如何解决它?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-08 13:56:25

当在已经有OperationContext的WCF服务中使用WebChannelFactory时,您可能需要先创建一个新的上下文,然后才能使用WebChannelFactory创建的通道成功调出。

代码语言:javascript
复制
public void TestConnection()
{
    var wf = new WebChannelFactory<IOtherService>(otherURI);
    var service = wf.CreateChannel();
    using ((IDisposable)service)
    using (new OperationContextScope((IContextChannel)service))
    {
      service.Test();
    }
}

http://blogs.msdn.com/b/pedram/archive/2008/07/19/webchannelfactory-inside-a-wcf-service.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10940594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档