Использование класса обслуживания WCF (файл .cs) не как WCF - PullRequest
1 голос
/ 16 ноября 2011

Хорошо, я не уверен, есть ли дубликат, потому что я не могу придумать лучшего способа задать этот вопрос.

У меня есть служба WCF (интерфейс как контракт, а затемкласс, который реализует интерфейс - как обычно).Он размещен, и каждый может видеть службу, и я могу нормально вызывать функции.

Мы используем Visual Studio 2005 (в данном случае C #).

Я пытаюсьсоздайте консольное приложение, которое ссылается (, а не как веб-ссылка) на класс WCF и вызывает методы.Это так, я могу отладить его напрямую.Я знаю, что это возможно (то есть: я практически уверен, что это возможно), но каждый раз, когда я пытаюсь, мое консольное приложение взрывается, потому что я не обеспечил его необходимостью WCF (конечная точка и т. Д.).На что я склонен кричать: «Ну, да: я пытаюсь назвать это так, как будто это DLL, а не веб-служба!»но я не думаю, что это сильно поможет.

Конкретная ошибка, которую я получаю: «Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт« SafetyKleen.BizTalk.CryptoService.IRetrievalService »в разделе конфигурации клиента ServiceModelЭто может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за того, что ни один элемент конечной точки, соответствующий этому контракту, не найден в элементе client. "Но, опять же, я специально стараюсь не звонить через WCF.

Будем благодарны за любые предложения.

Ответы [ 3 ]

3 голосов
/ 16 ноября 2011

Ничто не должно мешать вам создавать консольное приложение, ссылаться на сборку, содержащую контракт на обслуживание (интерфейс) и реализацию, создавать экземпляр реализации и напрямую вызывать некоторый метод:

class Program
{
    static void Main()
    {
        var service = new MyService1();
        var result = service.SomeMethod(new SomeDataContract
        {
            Prop1 = "value 1"
        });
    }
}

WCF не участвует в вызове.

Но только для целей отладки вы также можете использовать утилиту WcfTestClient .

0 голосов
/ 16 ноября 2011

Ошибка может быть из файла app.config и / или справочной службы. Если вы пытаетесь использовать тот же клиентский проект, что и тот, который использовал службу WCF, у вас, вероятно, есть ссылка на службу и куча настроек WCF в app.config - или, возможно, вы очистили app.config, но не сделали этого удалить ссылку на сервис?

0 голосов
/ 16 ноября 2011

Я провел модульные тесты для классов обслуживания WCF, создав их как простые классы.Однако я подозреваю, что такие вещи, как OperationContext.Current, могут вызвать проблемы в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...