c# - 将 ADO.NET 数据服务和自定义 ServiceContract 组合在同一个类中?

标签 c# wcf wcf-data-services

我有一个通过 WCF 运行的 ADO.NET 数据服务:

public class AdminService : DataService<BOPApplicationAccessEntities> {        
    public static void InitializeService(DataServiceConfiguration config) {
            config.UseVerboseErrors = true;
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
        }
}

我想给它添加一些自定义方法,比如下面的合约

[ServiceContract]
    public interface IAdminService {
        [OperationContract]
        void RequestAccess(int applicationID, string username);
    }

如果我在数据服务上添加修饰并实现该方法,当客户端尝试连接时会抛出一个错误,说:

AdminService implements multiple servicecontract types, and no endpoints are defined in the configuration file.

是否无法将服务契约(Contract)添加到 ADO.NET 数据服务服务中?

最佳答案

错误表明该服务公开了多个契约(接口(interface)),这是事实,因为您刚刚添加了一个新契约。主机无法再基于隐式默认值工作,因为它不知道在哪个端点上托管哪个服务接口(interface)。

确保您在服务配置文件中为您的服务实现的每个契约(Contract)定义了一个明确的端点。之后事情将再次开始为您工作,但您可能需要在进行修改后更新客户端应用程序中的服务引用。

更新:结合How to disable authentication schemes for WCF Data Services它告诉我们如何使用 http://www.west-wind.com/weblog/posts/2008/Apr/10/WCF-REST-Configuration-for-ASPNET-AJAX-and-plain-REST-Services 显式地为您的 WCF 数据服务创建端点。使用您的特定错误消息解决问题。

关于c# - 将 ADO.NET 数据服务和自定义 ServiceContract 组合在同一个类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649832/

相关文章:

c# - 将 LINQ 与 OData AddQueryOption 相结合

c# - 在 C# 中重新解释_cast

由于 SSL,WCF 服务无法在 Visual Studio 中运行

c# - 从 WCF 服务返回大型集合的推荐方法是什么?

c# - 如何在C#中检查是否安装了windows服务

c# - 如何将对象列表发送到 WCF 服务?

C# 泛型类的性能

c# - 无法使用ajax jquery post上传大型csv文件| ASP MVC

entity-framework - 如何使用 WCF 数据服务/OData 从 sproc 使用复杂对象?

c# - 我如何首先使用带有 ef 代码的 wcf 数据服务公开 dto 对象?