按照http://msdn.microsoft.com/zh-cn/library/bb412178.aspx上的教程,我目前无法测试应用了WebGet属性的简单WCF服务

香港专业教育学院创建了一个空白的ASP.NET Web应用程序项目,然后我添加了一个名为'test'的WCF服务,该服务创建了test.svcItest.svc

然后,我添加了方法“ hello”:

public class test : Itest
{
    public string hello(string s){return "hello " + s;}
}

它实现了接口:

[ServiceContract]
public interface Itest
{
    [OperationContract]
    [WebGet]
    string hello(string s);
}

但是,对http://localhost/test.svc/hello?s=hi任何请求(HTTP GET)都将返回一个空页面。 实际上,该URL下的任何请求都返回一个空白页(即http://localhost/test.svc/abcdefg

我缺少基本的东西吗?

编辑:web.config完全标准,除了Visual Studio生成:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_Itest" />
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost/test.svc" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_Itest" contract="ServiceReference1.Itest"
        name="BasicHttpBinding_Itest" />
    </client>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

===============>>#1 票数:2

您应该使用webHttpBinding代替basicHttpBinding这是这里答案的一部分: 在浏览器中测试wcf服务

这取决于您拥有的WCF服务类型:

如果您使用的是WCF REST服务(webHttpBinding),则应该能够导航至该服务地址,例如http://yourserver/somedir/service.svc

如果您正在使用其他任何东西,则说明您具有SOAP服务,并且无法在Web浏览器中测试SOAP服务-浏览器只是不懂SOAP。 但是,C:\\驱动器中有一个WCF Test Client应用程序,您可以将其用于此目的。

从我自己可以添加WCFTestCLient在这里:“ C:\\ Program Files(x86)\\ Microsoft Visual Studio 10.0 \\ Common7 \\ IDE \\ WcfTestClient.exe”

===============>>#2 票数:1

尝试将web.config中的以上部分替换为以下部分:

    <system.serviceModel>    
    <services>
      <service name="ServiceReference1.test">
      <endpoint binding="webHttpBinding" contract="ServiceReference1.Itest" behaviorConfiguration="web"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

服务器需要在web.config中具有服务元素而不是客户端元素,如上所示。 另外要使用webGet,还需要使用webHttpBinding

===============>>#3 票数:0

http://www.west-wind.com/weblog/posts/2008/Apr/10/WCF-REST-Configuration-for-ASPNET-AJAX-and-plain-REST-Services

  ask by maxp translate from so

未解决问题?本站智能推荐: