我有一个带有两个 OperationContracts 的 WCF 休息服务,如下所示:
[OperationContract]
[WebGet(UriTemplate = "ping/")]
Message PingServer();
[OperationContract]
[WebGet(UriTemplate = "files/")]
Message AddFile(string accessKey);
当我访问http://localhost/rest.svc/ping/它工作正常,如果我访问http://localhost/rest.svc/files/它工作正常。
但是,如果我直接访问http://localhost/rest.svc,则会抛出以下错误:
System.InvalidOperationException:调用 WSDL 导出扩展时引发异常:System.ServiceModel.Description.DataContractSerializerOperationBehavior 合同:http ://tempuri.org/:IRest ----> System.InvalidOperationException:操作“AddFile”无法加载,因为它具有 System.ServiceModel.Channels.Message 类型的参数或返回类型,或者具有 MessageContractAttribute 和其他不同类型参数的类型。当使用 System.ServiceModel.Channels.Message 或带有 MessageContractAttribute 的类型时,该方法不得使用任何其他类型的参数。
我了解该错误,但想知道如何修复/抑制它,以便显示默认的 WCF 端点页面。我只是将 WCF 用于 REST。
谢谢!
杰弗里·凯文·普瑞