2015-10-15 1 views
8

Вот кусок кода:Ошибка тайм-аута для AWS SNSClient Опубликовать запрос

     //Publishing the topic 
         snsClient.Publish(new PublishRequest 
         { 
          Subject = Constants.SNSTopicMessage, 
          Message = snsMessageObj.ToString(), 
          TopicArn = Settings.TopicArn 
         }); 

Я получаю ошибку ниже:

The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.

А вот скриншот детальной ошибки: enter image description here

Но не в состоянии понять, как это решить. Любой подсказку или ссылку помогут.

+0

Возможно, слишком очевидно, но верно snsClient (то есть правильно подключен, существующие учетные данные, регион ...)? – Gonfva

+0

Да @ Gonfva. Они действительны. Я могу выполнять операции. Но я получаю ошибку нечасто. Но все же это нужно решать. –

ответ

2

У нас была такая же проблема с нами. Мы получили эту ошибку около 40 раз в день, что составляло менее 0,1% успешных push-уведомлений, которые мы отправляли.

Наше решение? Обновите пакет AWSSDK NuGet с 1.5.30.1 до 2.3.52.0 (последняя версия v2 для упрощения обновления). Как только мы обновились, ошибки перестали происходить. Я просмотрел множество заметок о выпуске и не нашел ничего конкретного, упоминающего эту проблему. Мы не знаем, почему обновление работало, но так оно и было.

Надеюсь, это поможет вам и всем остальным исправить эту проблему.

+0

Спасибо за ввод. Я обновлю версию и дам вам знать результаты. –

+0

Да. Ты прав. Агрегация уровня действительно фиксирует вещь. Теперь я не получаю ни одного из этих тайм-аутов. Thx тонна. –

0

Эта проблема может возникнуть, когда один или несколько из следующих условий:

• происходит сбой сети.

• Прокси-сервер блокирует HTTP-запрос.

• Возникла проблема с системой доменных имен (DNS).

• Возникает проблема с сетевой аутентификацией.

[https://nilangshah.wordpress.com/2007/03/01/the-underlying-connection-was-closed-unable-to-connect-to-the-remote-server/]1

+0

Проблема возникает редко. Как в 6000 sns msgs всего 10-15 раз макс. Итак, я не уверен в ваших предложениях о проблемах. –

+0

@ ch.smrutiranjanparida, проверьте свой код инициализации Amazon sns. Amazon автоматически прекратит подключение через несколько часов. Итак, я думаю, вы должны вставить весь код. поэтому люди могут легко понять, из какого предложения вы получаете такую ​​проблему. –

+0

@BhavikPatel, вот код инициализации: snsClient = новый AmazonSimpleNotificationServiceClient (Settings.AccessKey, Settings.SecretKey, regionEndPoint); –

0
  • убедитесь, что ваш размер полезной нагрузки не должна превышать более чем 256 кб
  • убедитесь, что вы уже сконфигурированный таймаут свойство PutObjectRequest

Принять запрос на внешний вид образца АМС SNS код (от https://stackoverflow.com/a/13016803/2318852)

// Create topic 
string topicArn = client.CreateTopic(new CreateTopicRequest 
{ 
    Name = topicName 
}).CreateTopicResult.TopicArn; 

// Set display name to a friendly value 
client.SetTopicAttributes(new SetTopicAttributesRequest 
{ 
    TopicArn = topicArn, 
    AttributeName = "DisplayName", 
    AttributeValue = "StackOverflow Sample Notifications" 
}); 

// Subscribe an endpoint - in this case, an email address 
client.Subscribe(new SubscribeRequest 
{ 
    TopicArn = topicArn, 
    Protocol = "email", 
    Endpoint = "[email protected]" 
}); 

// When using email, recipient must confirm subscription 
Console.WriteLine("Please check your email and press enter when you are subscribed..."); 
Console.ReadLine(); 

// Publish message 
client.Publish(new PublishRequest 
{ 
    Subject = "Test", 
    Message = "Testing testing 1 2 3", 
    TopicArn = topicArn 
}); 

// Verify email receieved 
Console.WriteLine("Please check your email and press enter when you receive the message..."); 
Console.ReadLine(); 

// Delete topic 
client.DeleteTopic(new DeleteTopicRequest 
{ 
    TopicArn = topicArn 
}); 
+0

Есть ли способ проверить размер полезной нагрузки. Например, если else или try catch block code. –

+0

Я проверил полезную нагрузку. В моем случае это max 3kb-4kb. Предел составляет 256kb. Поэтому я не думаю, что полезная нагрузка здесь является проблемой. @ Bhavik –

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