【问题标题】:Unable to call a WCF service directly (.NET 3.0)无法直接调用 WCF 服务 (.NET 3.0)
【发布时间】:2009-05-27 19:46:31
【问题描述】:

我正在使用 WCF(VS2005,.Net 3.0)并希望通过 Web 浏览器而不是代码直接调用来测试服务。

我有一个用 OperationContract 属性调用 GetTest() 修饰的方法。我有一个可以访问的 .svc 文件背后的服务;但是,当我去 .../Test.svc/GetTest 时,只会出现一个空白屏幕。

这是 web.config:

<system.serviceModel>
  <services>
    <service name="TestService" behaviorConfiguration="TestBehavior">
      <endpoint
        address=""
        binding="basicHttpBinding"
        contract="TestService.ITestService"></endpoint>
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="TestBehavior">
        <serviceMetadata httpGetEnabled="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

每当我尝试在服务中设置断点时,它也不会被命中。关于我在哪里出错的任何想法?我习惯了 ASMX 服务,当我通过浏览器访问这些方法时会得到响应;但是,当我访问服务时,我只能获得“您已创建服务”页面,但方法中什么也没有。

【问题讨论】:

  • WCF 服务是基于 SOAP 的 - 您不能从浏览器调用 SOAP 服务。
  • @marc_s 我已经制作了许多基于 SOAP 的标准 ASMX 服务,并且仍然能够在我的浏览器中显示 SOAP 消息。这就是我要在这里完成的工作。

标签: c# wcf .net-3.0


【解决方案1】:

考虑使用 Wcf Service Test Tool 对您的服务进行初始测试(但实际上,单元测试是您的朋友 :-))(是的 - 您将需要一个 mex 端点,至少最初是这样)

至于调试 - 您是否附加到托管服务的正确进程?你是用调试符号编译的吗?如果服务发布到 IIS - 发布的代码是否与 Visual Studio 中的代码相同?

【讨论】:

  • 我希望我可以使用 WCFTestClient.exe;但是,我所处的环境将我限制为仅 .net 3.0 (VS2005)。由于 WCFTestClient.exe 仅随 VS2008 一起出现,所以我认为我在那个方面不走运。
【解决方案2】:

WCF 不提供 ASMX 服务过去提供的“从 Web 调用它”选项。为什么?这是一个巨大的安全漏洞,并不是测试 Web 服务的最佳方式。

一种选择是按照@Yossi 的建议进行操作,并使用 Wcf 服务测试工具。

或者更好的是,编写您自己的客户端来使用您的网络服务。这将帮助您处理那些将使用您的服务的人会处理的相同问题,相信我,WCF 可能会遇到很多这样的问题。

别误会,WCF 太棒了!但是有很多事情要处理,如果你是新人,你会弄错。即使是早期采用者仍然不了解 WCF 的所有细节。

【讨论】:

  • 这个工具是测试WCF服务时不可缺少的。退房,wcfstorm.com。它实际上可以检查您的 WSDl 并允许您动态调用方法
【解决方案3】:

您是否尝试过使用SoapUI?它们提供了一个非常棒的 Web 服务测试工具。他们甚至有一个可以作为 webStart 运行的免费版本!

另外,尝试安装一个 mex 端点,c.f. msdn link.

【讨论】:

    【解决方案4】:

    看看需要 .NET 3.5 的 WebGetAttribute。

    这允许您从 WCF Web 服务获取 REST 数据。

    【讨论】:

    • 我无法在我正在进行的项目中使用 .net 3.5。不幸的是,必须是.net 3.0。
    猜你喜欢
    • 2015-03-17
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多