Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.03.2017
Сообщений: 3
1
.NET 4.x

WCF Клиент не принимает ответ с сервиса

17.05.2020, 15:16. Показов 2068. Ответов 0

Author24 — интернет-сервис помощи студентам
Привет, пишу первый раз что-то связанное с wcf, делал все по документации и т.д., но не понимаю почему мой клиент не хочет принять данные с сервиса. Причем он только принимает данные, с самого сервиса я не вызываю методов в клиенте, значит правильно у меня одностороняя передача wsHttpBinding?
Задача следуючая: сервис получает с клиента размер матрицы(5х5) и enum идентификатор для определения каким образом генерить саму матрицу, на сервере генерит рандом матрицу указаной размерности и возвращает Matrix<double> клиенту.
Потом эта матрица будет снова передваться на сервис для операций с ней.
Проблема в том, что получаю я следующее сообщение при return матрицы на клиента и ошибку в строке, где вызывается метод GetMatrix.
An error occurred while receiving the HTTP response to http://localhost:8080/WCF_TRSPO/Service1/. This could be due to the service endpoint binding not using the HTTP protocol.

В ServiceTrace следущее сообщение:

The message with To 'http://localhost:8080/WCF_TRSPO/Service1/mex/mex' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.

При том, смотрите, если я передаю на клиента не матрицу, а значение null, то клиент его принимает и присваивает переменной. Матрицу 5х5 отказывается. Аналогично вектор Vector<double>.
Не пойму в чем проблема, гуглеж не дал результатов. Дайте хотя б направления куда смотреть или где я напартачил?)

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8" ?>
Файл конфигурации сервиса App.config
<configuration>
 
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="WCF_TRSPO_Lib.Service1">
        <endpoint address="" binding="wsHttpBinding" contract="WCF_TRSPO_Lib.IService1">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/WCF_TRSPO/Service1/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
Файл конфигурации Клиента
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IService1" />
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:8080/WCF_TRSPO/Service1/"
                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
                contract="ServiceReference1.IService1" name="WSHttpBinding_IService1">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>
Интерфейс сервиса
C#
1
2
3
4
5
6
[ServiceContract]
    public interface IService1
    {       
 
        [OperationContract]
        ObjectObgortka GetMatrixData(int n, MatrixEnum Letter);
Дата сорс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 [DataContract]    
    public class ObjectObgortka
    {
        public ObjectObgortka()
        {
            _Matrix = null;
            _Vector = null;
        }
        
        public Matrix<double> _Matrix;
        
        public Vector<double> _Vector;        
       
 
        [DataMember]
        public Matrix<double> Matrix { get { return _Matrix; } set { _Matrix = value; } }
 [DataMember]
        public Vector<double> Vector { get { return _Vector; } set { _Vector = value; } }
И сам сервис
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class Service1 : IService1
    {        
        public ObjectObgortka GetMatrixData(int n, MatrixEnum Letter)
        {
            MatrixFactory matrixFactory = new MatrixFactory();
            
            ObjectObgortka obgortka = new ObjectObgortka();
            Console.WriteLine(n);
            obgortka.Matrix = matrixFactory.GetMatrix(Letter, n);
            //obgortka.Matrix = null;           
            return obgortka;                   
        }
Ну и клиент
C#
1
2
3
4
5
6
7
8
9
10
11
 public static void Main(string[] args)
        {
            //Step 1: Create an instance of the WCF proxy.
            Service1Client client = new Service1Client();
 
            // Step 2: Call the service operations.
            // Call the Add service operation.
            Console.Write("N: ");
            int n = Convert.ToInt32(Console.ReadLine());
            var matrixA = client.GetMatrixData(n, MatrixEnum.A); //Тут тип ObjectObgortka и в следую
            Matrix<double> MatrixA = matrixA.Matrix;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2020, 15:16
Ответы с готовыми решениями:

Как получить ответ от WCF сервиса
Здравствуйте! В первые сталкиваюсь с WCF, и не могу понять как получить ответ от сервиса, и вывести...

WCF клиент для Web-сервиса
Доброе время суток! Пытаюсь создать клиента для Web-сервиса по wsdl. Заголовок и часть аттрибутов...

Пример WCF сервиса
Всем привет! Гуглил но не нашел скажем так &quot;нормального примера&quot; WCF сервиса. Все примеры простые...

Запуск WCF сервиса
Добрый день. Помогите, если не сложно. 4 день бьюсь уже, не понимаю, в чём проблема. Пытаюсь...

0
17.05.2020, 15:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2020, 15:16
Помогаю со студенческими работами здесь

Хостинг WCF сервиса
Был WCF-сервис, который хостился на консольном приложении, у этого консольного приложения были свои...

Конфигурация WCF сервиса
Добрый день. Подскажите, пожалуйста, как правильно конфигурировать WCF сервис. У меня было...

Вызов WCF сервиса
Добрый день. Скажу сражу что сервисы я начал изучать недавно Передо мной такая задача. в...

Создание многопользовательского WCF-сервиса
Задание предполагает реализацию простого многопользовательского WCF-сервиса с асинхронными...

Размещение WCF сервиса на хостинге
Доброго времени суток. Изучаю WCF. Разработал небольшую службу для обмена сообщения. Сервис...

Создание асинхронного wcf-сервиса
Уважаемые Гуру! Задача такая: 1. На клиенте silverlight приложения должно появляться уведомление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru