2016-02-11 6 views
1

Я создал одну базовую службу WCF. Это вызвало исключение по строке, показанной ниже.Аргумент Exception был необработанным (Entity Framework, WCF)

ServiceHost host = new ServiceHost(typeof(MyApplication.ITransactionService1)); 

Необработанное исключение типа «System.ArgumentException» произошло в System.ServiceModel.dll Дополнительная информация: ServiceHost поддерживает только типы классов обслуживания.

+0

Что 'ITransactionService1' выглядит? – mike

+1

Я думаю, вам нужно передать что-то вроде 'typeof (MyApplication.ConcreteTransactionService)' Похоже, вы получаете тип интерфейса, а не реализацию. –

+0

@ Mike просто интерфейс, который это .. общедоступный интерфейс ITransactionService1 { [OperationContract] [FaultContract (TypeOf (MyException))] [TransactionFlow (TransactionFlowOption.Allowed)] недействительным InsertData (интермедиат идентификатор, имя строки); } public class MyException { [DataMember] public string ErrorText {get; задавать; } } –

ответ

1

ServiceHost Constructor (Type, Uri[]) ожидает конкретный тип, а не интерфейс.

Предполагая, что ITransactionService1 ваш контракт на обслуживание, и что вы реализовали его в TransactionService1:

namespace MyApplication 
{ 

    [ServiceContract] 
    public interface ITransactionService1 
    { 

     [OperationContract] 
     int DoSomething(string arg); 
    } 

    public class TransactionService1 : ITransactionService1 
    { 

     // Implementation logic 
    } 
} 

Вы бы не пропускать MyApplication.TransactionService1:

ServiceHost host = new ServieHost(typeof(MyApplication.TransactionService1)); 
+0

Это работало .. Спасибо :) –

 Смежные вопросы

  • Нет связанных вопросов^_^