如何解决System.IO.IOException在CreateHostBuilderargs.BuildRun中“未实现功能”
当我开始在Linux Docker容器中调试应用程序时,调用 CreateHostBuilder(args).Build()时会出现异常。该代码是一个相当新的AspASP.NET Core MVC 3.1项目的一部分。
我在之前就看到了这个问题,并且也许可以解决此问题,该问题可从Views子文件夹中删除一个孤立文件。在git中切换分支后,问题似乎又回来了。在我的项目中重命名cshtml文件后,它第三次发生。
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
例外
System.IO.IOException
HResult=0x00000026
Message=Function not implemented
Source=System.IO.FileSystem
StackTrace:
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path,Boolean ignoreNotFound)
at System.IO.Enumeration.FileSystemEnumerator`1.Init()
at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory,Boolean isNormalized,EnumerationOptions options)
at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory,FindTransform transform,EnumerationOptions options,Boolean isNormalized)
at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory,String expression,EnumerationOptions options)
at System.IO.Directory.InternalEnumeratePaths(String path,String searchPattern,SearchTarget searchTarget,EnumerationOptions options)
at System.IO.Directory.EnumerateDirectories(String path)
at System.IO.FileSystemWatcher.RunningInstance.AddDirectoryWatchUnlocked(WatchedDirectory parent,String directoryName)
at System.IO.FileSystemWatcher.RunningInstance.AddDirectoryWatchUnlocked(WatchedDirectory parent,String directoryName)
at System.IO.FileSystemWatcher.RunningInstance..ctor(FileSystemWatcher watcher,SafeFileHandle inotifyHandle,String directoryPath,Boolean includeSubdirectories,NotifyFilters notifyFilters,CancellationToken cancellationToken)
at System.IO.FileSystemWatcher.StartRaisingEvents()
at System.IO.FileSystemWatcher.StartRaisingEventsIfNotDisposed()
at System.IO.FileSystemWatcher.set_EnableRaisingEvents(Boolean value)
at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.TryEnableFileSystemWatcher()
at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.CreateFileChangeToken(String filter)
at Microsoft.Extensions.FileProviders.PhysicalFileProvider.Watch(String filter)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.<.ctor>b__1_0()
at Microsoft.Extensions.Primitives.ChangeToken.ChangeTokenRegistration`1..ctor(Func`1 changeTokenProducer,Action`1 changeTokenConsumer,TState state)
at Microsoft.Extensions.Primitives.ChangeToken.OnChange(Func`1 changeTokenProducer,Action changeTokenConsumer)
at Microsoft.Extensions.Configuration.FileConfigurationProvider..ctor(FileConfigurationSource source)
at Microsoft.Extensions.Configuration.Json.JsonConfigurationSource.Build(IConfigurationBuilder builder)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at FieldViewAdminHub.Program.Main(String[] args)
我尝试过
- 执行清洁
- 删除obj和bin文件夹
- 明确停止Docker容器
解决方法
基于the answer by @AnGG,我重新启动了适用于Windows的Docker (我现在不想删除)。
,尝试(要小心那些人)
- 停止所有正在运行的容器
-
docker system prune
(请注意,这可能会删除所有未使用的容器,网络,图像(悬空的和未引用的)以及卷(可选)。) -
docker system prune -a
(请注意,这可能会删除所有未使用的容器,网络,图像(悬空的和未引用的)以及卷(可选)。) -
docker volume prune
(请注意,这可能会删除所有卷。) - 重新启动docker
- docker项目清理
- 删除项目文件夹中的
bin
和obj
文件夹 - docker项目重建
尝试再次调试
,public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
嗨, 请尝试在代码后立即添加此内容。并将第二个写入启动。它将是构造函数。还有一件事,请检查您的库并确保具有配置扩展名。 我认为您的问题是您的职能没有使命。 这样,您将引导启动并拥有默认主机。基本上。希望它能工作。祝你有美好的一天。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。