Объединить ADO.NET Data Service и пользовательский ServiceContract в одном классе? - PullRequest
4 голосов
/ 04 октября 2011

У меня есть служба данных ADO.NET, которую я запускаю через WCF:

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);
    }

Если я добавляю оформление и реализую метод в службе данных, при попытке подключения выдается ошибка: 1007 *

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

Невозможно добавить контракты на обслуживание в ADO.Служба передачи данных NET?

1 Ответ

1 голос
/ 05 октября 2011

В сообщении об ошибке указывается, что сервис предоставляет несколько контрактов (интерфейсов), что верно, поскольку вы только что добавили новый. Хост больше не может работать, основываясь на неявных значениях по умолчанию, потому что он не знает, какой интерфейс службы для хоста и на какой конечной точке.

Убедитесь, что у вас есть явная конечная точка, определенная в файле конфигурации службы для каждого контракта, который реализует ваша служба. После этого все снова начнет работать, хотя после внесения изменений может потребоваться обновить ссылку на службу в клиентском приложении.

Обновление: Объединение Как отключить схемы аутентификации для служб данных WCF , в которых рассказывается, как явно создать конечную точку для вашей службы данных WCF с http://www.west -wind. ru / weblog / posts / 2008 / Apr / 10 / WCF-REST-Configuration-for-ASPNET-AJAX-and-plain-REST-Services для устранения проблем с вашим конкретным сообщением об ошибке.

...