当前位置: 首页 > 知识库问答 >
问题:

mongodb引发“mongodb.BSON.Serialization.BSONSerializer”异常的SQL CLR

江英华
2023-03-14

我正在使用C#创建一个SQL CLR过程来在MongoDB上执行一些基本操作,例如获取集合的内容、插入文档等,但我在获取“MongoDB.BSON.Serialization.BSONSerializer”的类型初始化器时引发了异常。

有什么想法吗??

完全相同的代码从C#直接工作良好。

我使用的是Mongo1.10、.NET Framework3.5、Microsoft SQL Server 2008(RTM)的C#驱动程序。

共有1个答案

单于扬
2023-03-14

问题,或者至少是问题的一部分,似乎是从MongoDB的.NET驱动程序的2.x系列开始,目标框架版本就改为了4.5。

所以有两种可能:

>

  • 如果您确实需要在SQL Server 2008或2008 R2中使用此功能,则可以获取MongoDB的.NET驱动程序1.10版本的源代码,可在以下网址找到:
    https://github.com/MongoDB/mongo-csharp-driver/tree/v1.10.0
    这是使用.NET Framework 3.5版的最后一个版本。

    由于MongoDB的.NET驱动程序的2.x系列似乎可以在较新版本的SQL Server中使用(我假设是2012年和较新版本),因此您可以选择:

    • 正在安装SQL Server 2014(或即将安装到2016)速成版(免费版)
    • 将2.x版本的MongoDB.NET驱动程序加载到该Express Edition实例
    • 然后设置从SQL Server 2008实例到SQL Server 201[2,4,6]Express Edition的链接服务器,从而将Express Edition用作代理

  •  类似资料:
    • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u

    • 问题内容: 鉴于此Java 8代码 我们如何正确地将其委派给方法调用的堆栈?(简而言之,如何使此方法抛出此错误?) Java中的Lambda看起来对错误处理不是很友好… 问题答案: 我的方法是从lambda 偷偷地 将其抛出,但是要小心,使该方法在其子句中声明它。使用我在这里发布的课程: 这样,您可以有效地使编译器仅“移开视线”,从而在代码中的某个位置禁用其异常检查,但是通过在方法中声明异常,可以

    • 我使用正则表达式来查找一个字符串是否存在于一个书页中。下面是相同的代码。 观察: > 案例1:当searchText=“(222M)”时 结果:找到字符串。 案例2:当search chText="(222M"//缺少括号时 我得到以下例外。 索引22:.\b.{0}(1110r.{附近regexp模式中嵌套的括号不正确。{0}.\b 还有更好的在页面中查找字符串的选项。使用String.cont

    • 我使用HttpURLConnection将大文件(高达160MB)上传到服务器。有一个奇怪的异常随机出现。这是代码。 我录制一个视频文件(最多5分钟)。然后上传它,我启动一个intentService。它使用HttpURLConnection。这是我如何启动HttpURLConnection。 } 现在,这个调用“http pURLConnection.get输出流()”有时会抛出这个异常: 03

    • 我在写一个apk分析程序。我不能深入细节,因为这是研究材料。然而,重点在于,当我执行分析例程时,不时会得到以下消息: 这只是主要代码。我必须执行三个主要操作。为了不泄露特定信息,我把它们重新命名为A、B、C 我将这个问题标记为multithread,因为在多线程版本中也会发生同样的情况,为了调试错误,我使用此代码对该版本进行了序列化。请注意,NullPointerException位于线程主线程中

    • 下面有一些代码,我试图在其中使用以字符串形式打印所有匹配项。 上面的代码在线程“main”java.lang.IndexOutOfBoundsException中抛出异常:没有第2组异常。