WCF服务参考不起作用?

时间:2011-07-31 22:09:58

标签: c# wcf service-reference

我创建了一个RESTful WCF服务(感谢StackOverflow)。我创建了一个测试客户端,它是一个简单的.aspx页面,包含5个文本框和一个提交按钮。当我将数据输入文本框并单击“提交”按钮时,它将提交数据 到WCF服务。

我的WCF服务在Visual Studio开发服务器下运行,它工作正常,我能够成功地将数据发送到WCF服务。今天我在本地IIS上部署了这个WCF服务。当我尝试在客户端应用程序(.aspx页面)中引用服务URL时,我收到此错误。

  

“元数据包含无法解析的引用。客户端和   服务绑定可能不匹配。无法处理消息,因为   内容类型'application / soap + xml; charset = utf-8'不是   期望的类型'text / xml;“

知道问题可能是什么?这是我的web.config

    <?xml version="1.0"?>
    <configuration> 
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>   
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
        </behaviors>

        <services>
          <service name="RESTService1">
            <endpoint address="http://localhost:420/WCFRESTService100/RESTService1.svc" binding="webHttpBinding" name="MainHttpPoint" contract="RESTService1" />
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:420/WCFRESTService100/RESTService1.svc" />
              </baseAddresses>
            </host>
          </service>
        </services>

        <!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>-->
      </system.serviceModel>
     <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
      </system.webServer>

    </configuration>

1 个答案:

答案 0 :(得分:1)

我认为问题在于您已经为REST服务添加了服务引用。 REST服务没有任何可用的元数据,因为没有标准的元数据格式来描述它们。

您能够添加服务引用的唯一原因是您在服务上留下了暴露SOAP定义的服务。因此,如果您粘贴客户端配置,我确定端点有一个SOAP端点(wsHttpBinding或basicHttpBinding),因此您在进行调用时会收到有关mime类型不匹配的错误的原因。

如果要使用WCF从客户端调用REST服务,则需要在客户端和服务器之间共享合同定义,或者在客户端完全复制它。