2015-10-15 7 views
8

を公開するコードの一部です:タイムアウトエラーがここで要求

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

私は以下のエラーを取得しています: enter image description here

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

そして、ここでは詳細なエラーのスクリーンショットです

しかし、これを解決する方法を知ることができません。ヒントやリンクが役立ちます。

+0

あまりにも明白ですが、snsClientが有効です(正しく接続されている、既存の認証情報、地域...など)。 – Gonfva

+0

はい@Gonfva。彼らは有効です。私は操作を行うことができます。しかし、私はエラーをまれに受けています。しかし、それでも対処する必要があります。 –

答えて

2

私たちはまったく同じ問題を私たちに起こしました。このエラーは1日に約40回発生しました。これは送信したプッシュ通知の0.1%未満でした。

私たちのソリューションは? AWSSDK NuGetパッケージを1.5.30.1から2.3.52.0(アップグレードの容易性のための最新のv2リリース)に更新します。私たちが更新するとすぐに、エラーは起こりませんでした。私は多くのリリースノートを見て、特にこの問題について言及しているものは見つけられませんでした。なぜ更新がうまくいったのかわかりませんが、それはありました。

あなたと他の誰かがこの問題を解決するのに役立ちます。

+0

ありがとう。私はバージョンを更新し、あなたに結果を知らせます。 –

+0

はい。ウル右。アップグラデーションが問題を解決します。今、私はそれらのタイムアウトのいずれかを取得していません。 Thx aトン。 –

0

この問題は、次の条件の1つ以上が該当する場合に発生することがあります。

ネットワーク障害が発生します。

?プロキシサーバーが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 = new AmazonSimpleNotificationServiceClient(Settings.AccessKey、Settings.SecretKey、regionEndPoint); –

0
  • あなたのペイロードサイズは、あなたが見てサンプルのAWS SNS要求を取るPutObjectRequest

のタイムアウトプロパティを設定していたことを確認してください以上256キロバイト

  • を超えてはならないことを確認してくださいコード(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

    ペイロードサイズを確認する方法はありますか。他の場合と同様に、またはブロックのコードをキャッチしてみてください。 –

    +0

    ペイロードを確認しました。私の場合、最大3kb-4kbです。制限は256kbです。だから、ここではペイロードは問題ではないと思う。@ bhavik –