2014-09-24 3 views
3

У меня есть служба WCF и простая страница aspx, которая получает сообщение из одного консольного приложения и отправляет его в другое консольное приложение. Когда длина сообщения (в формате xml) составляет около 6000000, она работает нормально, однако, когда размер сообщения удваивается, он прекращает бросать следующее исключениеFaultedException на WCF при большом размере сообщения

«Объект связи, System.ServiceModel.Channels.ServiceChannel, не может использоваться для связи, потому что он находится в состоянии Faulted. "

Я отследил его, и мое приложение отправителя отправляет сообщение, моя страница .aspx получает его, исключение отправляется при отправке его в приложение-получатель. Вот код.

public void SendMessage(string message) 
{ 
    try 
    { 
     using (Receiver rec = new Receiver()) 
     { 
       rec.SetMessage(message); 
     } 
    } 
    catch (Exception e) 
    { 
     Response.Write(e.Message); 
     Response.Write(e.StackTrace); 
    } 
} 

Я пробовал набор настроек конфигурации, но никто не решил проблему. Что может быть причиной?

Заранее спасибо.

ответ

4

Его простой. Когда размер сообщения больше разрешенного размера, то есть 6000000, он генерирует исключение FaultException. Поскольку исключение FaultException расширено от Exception, оно правильно отображается в вашем коде. Я не вижу в этом никаких проблем, а не того факта, что если ваши данные большие, увеличьте также ограничение по размеру.

UPDATE: Для макс получена ошибка, вам необходимо сделать следующее: Максимальный размер сообщения квоты для входящих сообщений (65536) .... Чтобы увеличить квоту, используйте MaxReceivedMessageSize свойство

Или от кода:

WebHttpBinding binding = new WebHttpBinding(); 
binding.MaxReceivedMessageSize = 2147483647; 

Аналогичным образом на стороне клиента также.

+0

Спасибо. Мне нужно отправить данные независимо от их размера, поэтому, должен ли я увеличить значение в файле конфигурации? Если да, то какой? – osberk

+0

Да максимальный размер должен быть увеличен –

+0

Да, это сработало. Благодарю. К сожалению, у меня нет достаточного количества голосов, чтобы проголосовать за вас. Я буду, когда у меня есть. Благодарю. – osberk

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