无法直接调用WCF服务(.NET 3.0)

时间:2009-05-27 19:46:31

标签: c# wcf .net-3.0

我正在使用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服务,当我通过浏览器访问方法时,我得到了响应;但是,当我访问该服务时,我只能获得“你创建了一个服务”页面,但这些方法都没有。

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

一个选项是@Yossi建议,并使用Wcf服务测试工具。

或者更好的是,编写自己的客户端来使用您的Web服务。这将帮助您处理将使用您的服务的人所处理的相同问题,并且相信我,WCF可以拥有相当多的挂断。

别误会我的意思,WCF真棒!但是有很多东西需要兼顾,如果你有新的可能性,你就会犯错。即便是早期采用者仍然不知道WCF的所有细节。

答案 3 :(得分:0)

看看WebGetAttribute - 它需要.NET 3.5。

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