кажется, что соединение с моей базой данных вообще не работает, но я не знаю, почему.
Таким образом, вы можете увидеть ошибку прямо здесь:
А теперь давайте посмотрим на код appsettings.json:
"ConnectionStrings": {
"Web": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.x.xxx)(PORT=xxxx))(CONNECT_DATA=(SERVICE_NAME=xxxxxxx)));User Id=xxxxx;Password=xxxxx;"
}
Запуск.cs:
public void ConfigureServices(IServiceCollection services)
{
[...]
services.AddDbContext<ApplicationDbContext>(options =>
options.UseOracle(Configuration.GetConnectionString("Web")));
[...]
}
HomeController.cs:
public class HomeController : Controller
{
[...]
private readonly CoreDataBase dataBase = new CoreDataBase();
[...]
}
CoreDataBase.cs:
public class CoreDataBase : IDisposable
{
private IDatabase _core = null;
public CoreDataBase()
{
_core = Load();
}
private static Database Load()
{
var connectionString = ConfigurationManager.ConnectionStrings["Web"].ConnectionString;
var provider = ConfigurationManager.ConnectionStrings["Web"].ProviderName;
if(provider != "Oracle.ManagedDataAccess.Client")
{
return null;
}
return new Database(connectionString, DatabaseType.OracleManaged, SqlClientFactory.Instance);
}
[...]
}
Есть ли у вас какие-либо идеи ?
ConfigurationManager
получают значение не из appsettings.json, а из App.config или Web.config. Вам нужно переписатьCoreDataBase
для ввода настроек строки подключения. - person vernou   schedule 16.12.2020appsettings.json
, а неWeb.config
, используемый в проекте ASP.NET. Вы можете прочитать эти данные из файлаappsettings.json
через экземпляр IConfiguration, который вы внедрили. - person Fei Han   schedule 16.12.2020