Мы используем следующую программу тестирования, чтобы запустить сеанс пересылки порта AWS SDK в C#, и программа заканчивается без каких -либо проблем. Однако после завершения программы сеанс заканчивается менее чем за 30 секунд. Похоже, сеансы, начатые SDK, на самом деле не работают. Мы все еще ищем, почему. И результат: < /p>
Если сеанс был запущен с помощью C# Calmings of AWS CLI, тест проходит. < /P>
< /li>
Если сеанс был запущен с вызова API C# в SDK, тест не выполняется со следующим сообщением об ошибке: < /p>
Не удалось вход в систему mysql.
exex.message: Невозможно подключиться к любому из указанных хостов MySQL. < /p>
< /blockquote>
< /li >
< /ul>
Если мы используем AWS CLI вместо SDK, следующая команда может запустить сеанс и сохраняться. Команда будет работать, а сеанс продолжает работать и принимать запросы. Пока мы не нажмите Control + C , процесс будет убит, и сеанс завершается.
aws ssm start-session \
--target "i-xxx" --region "xxxxxxx" --profile "profile_name" \
--document-name "AWS-StartPortForwardingSessionToRemoteHost" \
--parameters host="xxxx-database-cluster.xxx.rds.amazonaws.com",portNumber="3306",localPortNumber="3306"
< /code>
Мы предпочитаем использовать SDK, потому что он обеспечивает лучшую функциональность для программного использования, поэтому укажите, что мы что -то пропустили в программе. > Подробная информация
Примечание. Следующий исходный код тестирования автоматически относится к местоположению по умолчанию в ~/.aws/ для его конфигурации и учетных данных < /code> files. < /p>
public static async Task CallSDKAsync()
{
// Load AWS credentials from the specified profile
var credentials = new Amazon.Runtime.StoredProfileAWSCredentials(SensitiveData.AwsProfile);
// Create the SSM client using the credentials
var client = new AmazonSimpleSystemsManagementClient(credentials, SensitiveData.AwsRegionEndpoint);
// Define the port forwarding parameters
var startSessionRequest = new StartSessionRequest
{
DocumentName = "AWS-StartPortForwardingSessionToRemoteHost",
Parameters = new Dictionary()
{
{ "host", new List { SensitiveData.DatabaseHost } },
{ "portNumber", new List { "3306" } },
{ "localPortNumber", new List { "3306" } }
},
Target = SensitiveData.AwsInstanceId
};
try
{
var response = await client.StartSessionAsync(startSessionRequest);
Console.WriteLine(response.ToString());
Console.WriteLine("Session started successfully.");
}
catch (AmazonServiceException amazonEx)
{
Console.WriteLine($"AWS Service error: {amazonEx.Message}");
Console.WriteLine($"Status Code: {amazonEx.StatusCode}");
Console.WriteLine($"AWS Error Code: {amazonEx.ErrorCode}");
Console.WriteLine($"Request ID: {amazonEx.RequestId}");
Console.WriteLine($"AWS Error Type: {amazonEx.ErrorType}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
Console.WriteLine(ex.InnerException?.Message);
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... -terminate
Нужна помощь: сеансы пересылки портов, начатые AWS SDK, не работают и не заканчиваются менее чем за 30 секунд, почему? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сессии пересылки портов, начатые AWS SDK, не работают и заканчиваются менее чем за 30 секунд
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему сеанс пересылки порта начинается с Terminats AWS SDK менее чем за 30 секунд?
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-