Member 13681529 Ответов: 1

Как разместить огромные данные с помощью сервиса WCF с хранимой процедурой?


Привет,

Я создал службу WCF с помощью хранимой процедуры.
[WebGet]
        public List<View_JobAssign> AssignJobs(string employeeId, string assignDate, string jobs, string userId)
        {
            try
            {
                TrackerEntities entities = new TrackerEntities();
                return entities.AssignJobs(Convert.ToDateTime(assignDate), Convert.ToInt32(employeeId), jobs, Convert.ToInt32(userId)).ToList();

            }
            catch (Exception ex)
            {
                throw new DataServiceException(ex.Message + ex.InnerException);
            }
        }


Данные, которые я передаю в вышеуказанную службу, таковы:
кодсотрудника = 1, assignDate = "2017-02-22", вакансии="1,2,3", id_пользователя = 1
и это действует как обаяние.
Но проблема в том, когда я пытаюсь сдать задания = '1,2,....10000' то есть до 10000, что делает длинную строку, то я получаю ошибку HTTP-запроса failed.

Как передать данные в хранимую процедуру, созданную службой с длинными данными?
есть ли альтернатива?

Что я уже пробовал:

Я пытался использовать поставщик отражений с Entity Framework, но это не работает.

Richard Deeming

Вы получаете ошибку "request entity too large"? Если это так, то вам нужно будет увеличить maxReceivedMessageSize на твоем переплете.

Если вы получаете другую ошибку, то вам нужно будет сообщить нам подробности этой ошибки.

Также:

throw new DataServiceException(ex.Message + ex.InnerException);
Не делайте этого так; вы просто отбросили интересные детали исключения. Воспользуйся:
throw new DataServiceException(ex.Message, ex);

Member 13681529

Да, я получаю ниже ошибку, когда я пытался запустить на браузере.
Слишком длинный URL-адрес запроса
Ошибка HTTP 414. URL-адрес запроса слишком длинный.

А потом я попробовал то же самое на остальных клиентах. Затем он сказал HTTP Error 400 - Bad Request.
Кроме того, я попробовал maxReceivedMessageSize до 2147483647, но проблема все та же.

1 Ответов

Рейтинг:
1

ZurdoDev

Как уже упоминал Ричард, вам нужно будет искать в google точную ошибку, которую вы получаете, потому что есть настройки, которые вы можете изменить в зависимости от того, какой предел вы превышаете.

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