Невозможно подключиться к базе данных AWS RDS из ASP.NET Hangfire - PullRequest
0 голосов
/ 07 июня 2018

Я занимаюсь разработкой проекта ASP.NET Core Web API.В моем проекте я использую Hangfire для запуска фоновой задачи.Поэтому я настраиваю Hangfire для использования базы данных следующим образом.

    public void ConfigureServices(IServiceCollection services)
          {
        services.AddHangfire(configuration =>
                 {
                    configuration.UseSqlServerStorage("Server=(LocalDB)\\MSSQLLocalDB;Integrated Security=true;");
                 });
      //
    }

In the above code, I am using Local DB. Now, I am trying to use AWS RDS database since I am deploying my application on the AWS Elastic Beanstalks. I created a function for getting the connection



public static string GetRDSConnectionString()
      {

         string dbname = "ebdb";

         if(string.IsNullOrEmpty(dbname)) return null;

         string username = "admin";
         string password = "password";
         string hostname = "cxcxcxcx.xcxcxcxc.eu-west-2.rds.amazonaws.com:1234";
         string port = "1234";

         return "Data Source=" + hostname + ";Initial Catalog=" + dbname + ";User ID=" + username + ";Password=" + password + ";";
      }

Я получил вышеуказанный код из официальной документации AWS.В приведенном выше коде, что мне не ясно, это имя базы данных, всегда ли имя базы данных будет "ebdb"?Я пытался узнать имя базы данных.Но не смог.В учебнике говорится, что нужно использовать ebdb.Итак, я использовал это.

Затем в конфигурации я изменил на это.

configuration.UseSqlServerStorage(AppConfig.GetRDSConnectionString());

Когда я запускаю код, он выдает мне эту ошибку.

Win32Exception: The parameter is incorrect
Unknown location

SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, object providerInfo, bool redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, bool applyTransientFaultHandling)

Win32Exception: The parameter is incorrect

По сути, он не может подключиться к базе данных, когда я запускаю свое приложение.Но я установил правильные учетные данные.единственное, что я удваиваю, это имя базы данных (ebdb).Что не так с моей конфигурацией и что не так?Как я могу это исправить?

1 Ответ

0 голосов
/ 07 июня 2018

Вызов нескольких вещей здесь просто incase ...

Ваш порт указан как в переменной host, так и в качестве отдельной переменной port ... но никогда не используйте port.

Можете ли вы подтвердить, что вы можете получить доступ к вашему SQLServer с помощью других средств, например, из SQL Management Studio?

RDS теперь использует SSL по умолчанию для соединений, мой .NET ржавый, но будетвам нужно сообщить строке подключения, что она должна работать по безопасному протоколу?

и, наконец, в отношении группы безопасности AWS для вашего экземпляра RDS.Вы открыли правильный порт для своего компьютера / сети / IP?

Это снимок экрана раздела группы безопасности экземпляра базы данных RDS в консоли.

enter image description here

...