【发布时间】:2020-12-17 12:22:43
【问题描述】:
我有一个无法解决的问题。
我已将我的 ASP.NET Framework 项目迁移到 ASP.NET Core,当我启动该项目时,我得到了这些类型的错误:
此页面无法正常工作
localhost 当前无法处理此请求。
HTTP 错误 500
加载资源失败:服务器响应状态为500()
在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
[...]
services.AddDbContext<ApplicationDbContext>(options =>
options.UseOracle(Configuration.GetConnectionString("Web:ConnectionString")));
[...]
}
appsettings.json:
[...]
"ConnectionStrings": {
"Web": {
"ConnectionString": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.X.XXX)(PORT=XXXX))(CONNECT_DATA=(SERVICE_NAME=XXX)));User Id=XXXXX;Password=XXXXX;",
"ProviderName": "Oracle.ManagedDataAccess.Client"
}
}
[...]
DataAccessLayer.cs:
public class DataAccessLayer : IDisposable
{
private IDatabase _core = null;
public void Dispose() { _core?.Dispose(); }
public DataAccessLayer() { _core = Load(); }
private static Database Load()
{
// Get Instance of Configuration with appsettings.json
IConfigurationBuilder cfgBuilder = new ConfigurationBuilder();
cfgBuilder.AddJsonFile("appsettings.json");
IConfiguration cfg = cfgBuilder.Build();
var connectionString = cfg["ConnectionStrings:Web:ConnectionString"];
var provider = cfg["ConnectionStrings:Web:ProviderName"];
if (provider != "Oracle.ManagedDataAccess.Client") {
return null;
}
return new Database(connectionString, DatabaseType.OracleManaged, SqlClientFactory.Instance);
}
public Client GetClient(string idWorkflow)
{
if (!string.IsNullOrEmpty(idWorkflow)) {
try {
return _core.FirstOrDefault<Client>(Sql.Builder.Where("ID_WORKFLOW=@0", idWorkflow));
}
catch (Exception) {
return new Client();
}
}
else {
return new Client();
}
}
[...]
}
你有什么想法吗?
【问题讨论】:
-
Oracle的服务是否开启?而且oracle可能已经过期了,也可能是网络问题,可以用
ping连接oracle吗? -
是的,我实际上可以 ping Oracle...所以...
-
ef core的版本是多少?试试这个 ConnectionString:
Data Source=*.*.*.*;database=dbname;User ID=[username];Password=[password];port=1521 -
@Karney。与此 ConnectionString 相同的错误...我使用 Oracle.EntityFrameworkCore 3.19.80 & NPoco 4.0.2
-
在迁移数据库(不是从 ASP.NET Framework 项目迁移到 ASP.NET Core)时,迁移文件是否有错误?
标签: c# oracle asp.net-core-mvc named-pipes http-status-code-500