从 F# Interactive 使用 RavenDb FilesStore 挂起

Using RavenDb FilesStore from F# Interactive hangs

我正在尝试从 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 但如果我在 [=15] 中执行它=] 在 VisualStudio 中它只是挂在 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# 交互式)

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