创建WCF Web服务时出错

时间:2014-10-13 16:02:26

标签: wcf

我已经创建了一个新的WCF Web服务,但是当我尝试运行它时,我收到此错误

  

没有生成代码。如果您尝试生成客户端,这可能是因为元数据文档不包含任何有效的合同或服务,因为发现所有合同/服务都存在于/ reference程序集中。验证是否已将所有元数据文档传递给该工具。警告:如果要从模式生成数据协定,请确保使用/ dataContractOnly选项。

我的web.config看起来像

<services>
     <service name="namespace.serviceName" 
              behaviorConfiguration="MyServiceTypeBehaviors" >
         <endpoint 
             address="mex" 
             binding="mexHttpBinding" 
             contract="IMetadataExchange" />
     </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyServiceTypeBehaviors">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>

背景是,我从第三方获得dll并创建了一个新的Web服务,以便我可以实现所需的所有接口方法,但是当我尝试通过Visual Studio运行此Web服务时,我得到上面显示的错误。

如果我直接运行website.com/folder/serviceName.svc,我会看到该服务,但点击它却没有做任何事情。

更新:我修复了上面的错误我在web.config文件中进行了一些更改但现在当我运行我的服务时,我没有任何方法(我使用的是Visual Studio内置的WcfTestClient)

1 个答案:

答案 0 :(得分:1)

我认为你需要添加一个带有正确ServiceMethod属性的契约接口      如此处所示http://msdn.microsoft.com/en-us/library/ms731835(v=vs.110).aspx

这将允许WCF的内部为您生成wsdl,这将允许svcutil.exe为您生成客户端代码。

忘记提到你也希望你的服务继承它,所以也许你可以从namespace.serviceName推断它?

另外,不要忘记界面上的DataContract和ServiceContract属性。