gpt4 book ai didi

c# - 从 F# Interactive 使用 RavenDb FilesStore 挂起

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:11 25 4
gpt4 key购买 nike

我正在尝试从 f# 脚本访问 ravendb 文件系统。

我有这个代码:

#r "libs/Raven.Abstractions.dll"
#r "libs/Raven.Client.Lightweight.dll"

open Raven.Client.FileSystem

let fs = new FilesStore(Url = "http://localhost:8080", DefaultFileSystem = "TestFS")
let s = fs.Initialize()

printfn "%A" s.Identifier

如果我在文件上使用 fsi 或通过使用 fsc 编译脚本来执行脚本,它会运行并打印 http://localhost:8080 如预期的那样,但如果我在 VisualStudio 中的 F# interactive 中执行它,它只会卡在 fs.Initialize()

现在,如果我使用 false (ensureFileSystemExists) 调用 Initialize 方法,它可以在交互中正常运行。

为什么会这样?

这是 FilesStore.cs code 的一部分:

if (ensureFileSystemExists && string.IsNullOrEmpty(DefaultFileSystem) == false)
{
try
{
AsyncFilesCommands.ForFileSystem(DefaultFileSystem)
.EnsureFileSystemExistsAsync()
.Wait();
}
catch(Exception)
{
if (failIfCannotCreate)
throw;
}
}

ensureFileSystemExists 变量是 false 我传递给 Initialize 的第二次调用(在 VS 的 F# interactive 上运行的调用)

最佳答案

更新到最新版本,应该可以解决这个问题。根本问题是默认使用的 TPL 调度程序。

关于c# - 从 F# Interactive 使用 RavenDb FilesStore 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com