System.Net.Sockets.SocketException (11001):没有这样的主机是已知的

Posted

技术标签:

【中文标题】System.Net.Sockets.SocketException (11001):没有这样的主机是已知的【英文标题】:System.Net.Sockets.SocketException (11001): No such host is known 【发布时间】:2021-12-08 10:18:43 【问题描述】:

API 和数据库都在 docker 容器中运行。我正在对数据库使用 postgresql DB 和实体框架代码优先方法。我可以做 add-migration 但是当我运行 remove-migration 时,我得到了一个奇怪的错误。异常详情如下所示:

Entity Framework Core 5.0.11 initialized 'DataContext' using provider 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: MigrationsAssembly=Moodys.Ag.Ceres.Data MigrationsHistoryTable=public.__EFMigrationsHistory using snake-case naming  (culture=)
System.Net.Sockets.SocketException (11001): No such host is known.
   at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses)
   at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
   at Npgsql.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
   at Npgsql.NpgsqlConnector.RawOpen(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.<>c__DisplayClass41_0.<<Open>g__OpenAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Npgsql.NpgsqlConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrations()
   at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.RemoveMigration(String projectDir, String rootNamespace, Boolean force, String language)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.RemoveMigration(String contextType, Boolean force)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.RemoveMigrationImpl(String contextType, Boolean force)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.RemoveMigration.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
No such host is known.

【问题讨论】:

请同时添加用于添加和删除迁移的命令。 @Ali Zeinali:“remove-migration”是包管理器控制台中使用的命令。 【参考方案1】:

我找到了一个使用remove-migration -Force 命令的临时解决方案。它会删除最后一个迁移文件并恢复模型快照。但它有警告,这仍然与我在问题中发布的错误有关。问题是 remove-migration 无法从给定主机连接到数据库并抛出“No such host is known”。

我仍在寻找不需要使用 -Force 的解决方案。因此,如果有人找到解决方案,请在此处发布。

谢谢!

【讨论】:

以上是关于System.Net.Sockets.SocketException (11001):没有这样的主机是已知的的主要内容,如果未能解决你的问题,请参考以下文章

什么是使用 .NET 3.5 异步 System.Net.Sockets.Socket 停止数据流?

紧急求助,在传输数据时页面提示无法连接到远程服务器 System.Net.Sockets.SocketException

C# 客户端 Python 服务器:连接被拒绝

Shadowsocks用不了,求教是啥原因,如何解决?

在 C# 中获取套接字对象的流

.NET即时通信 WebSocket服务端实例