我已经创建了一个新的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)
答案 0 :(得分:1)
我认为你需要添加一个带有正确ServiceMethod属性的契约接口 如此处所示http://msdn.microsoft.com/en-us/library/ms731835(v=vs.110).aspx
这将允许WCF的内部为您生成wsdl,这将允许svcutil.exe为您生成客户端代码。
忘记提到你也希望你的服务继承它,所以也许你可以从namespace.serviceName推断它?
另外,不要忘记界面上的DataContract和ServiceContract属性。