gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:51:07 26 4
gpt4 key购买 nike

我有一个通过 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com