2012-06-18 3 views
1

У меня очень странная проблема. У меня есть рабочий WCF-сервис.Ошибка доступа к службе WCF

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    int AddResult(int result, string name); 

    [OperationContract]   
    int list(int count); 
} 

В другом классе у меня есть реализация этой услуги. И это работает. Но когда я изменить метод «список», как это:

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    int AddResult(int result, string name); 

    [OperationContract]   
    List<string> list(int count);   
} 

При добавлении ссылки на службу из целевого проекта (это приложение Windows Phone) я получаю несколько ошибок и предупреждений. Основная их идея заключается в том, что служба не может быть загружена (или конечные точки не могут быть загружены). Разница между двумя методами очень мала: List вместо int type. Но это очень важно. Почему это так? Почему я не могу использовать List?

ответ

1

Вы пытались инкапсулировать свою коллекцию List в прокси-класс? Вы можете попробовать что-то вроде:

[DataContract] 
public class MyData 
{ 
    [DataMember] 
    public List<string> list { get; set; } 
} 

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    int AddResult(int result, string name); 

    [OperationContract]   
    MyData list(int count);   
} 

Кроме того, обратите внимание на эту link, я думаю, что это могло бы быть то, что вы ищете.

UPDATE

В соответствии обсуждались на секции комментариев этой теме, проблема не была расположена в самой WCF службы, но на клиенте, который генерируется в @ user1460819 телефон приложения Windows.

Эта проблема была решена после того, как привязка службы WCF была изменена на «basicHttpBinding», ссылка WCF на стороне клиента была восстановлена ​​и весь проект был перестроен.

+0

Я пробовал ваш совет, но, к сожалению, это не помогло. – user1460819

+0

Одно из предупреждений: «Предупреждение о настраиваемом инструменте: исключение было вызвано целью вызова. \t C: \ Documents \ Visual Studio 2010 \ Projects \ project \ project \ Service Libraries \ ServiceReference1 \ Reference.svcmap" – user1460819

+0

Другой предупреждение «Предупреждение пользовательского инструмента: не найдено никаких конечных точек, совместимых с Silverlight 3. Сгенерированный клиентский класс не будет использоваться, если информация о конечной точке не предоставляется через конструктор. \t C: \ Documents \ Visual Studio 2010 \ Projects \ project \ project \ Service Ссылки \ ServiceReference1 \ Reference.svcmap " – user1460819

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