【发布时间】:2011-09-16 12:19:06
【问题描述】:
我有一个带有两个 OperationContract 的 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。
谢谢!
杰弗里·凯文·普瑞
【问题讨论】:
标签: c# wcf rest operationcontract