gpt4 book ai didi

ado.net - 如何调试本地存储的问题? HandleBatchResponse 中的 "An error occurred while processing this request"出现问题

转载 作者:行者123 更新时间:2023-12-03 01:58:37 26 4
gpt4 key购买 nike

交叉发布于MSDN .

我有一个实体对象列表,我正在尝试插入到本地存储服务的表中。使用从 SampleClient TableStorageDataContext 类派生的数据上下文类,我创建了一个新的上下文对象并毫无问题地添加了实体。当我调用 context.SaveChanges() 时,最终会抛出一个异常,但细节很少。我在 SQL Server Express 上运行了探查器跟踪,以查看错误是否源自那里,但没有找到任何有用的信息,这让我相信本地存储服务存在一些问题,但我不知道如何调试。

这是客户端代码 (F#):

let cxt0 = new WebRole.Models.TableDataContext()
entityList |> Seq.iter (fun n -> cxt0.AddObject("NutritionData", n))
let results = cxt0.SaveChanges()

我可以在上面几行的最后一行设置断点并停止执行,然后看到 cxt0 对象包含要添加的所有实体 (>500K)。然后继续执行,抛出如下异常:

System.Data.Services.Client.DataServiceRequestException: "An error occurred while processing this request."

at System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() at System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() at System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions options) at System.Data.Services.Client.DataServiceContext.SaveChanges() at WorkerRole.SrDataProcessor.importSrData(FastFunc`2 pf, String blobName) in C:\Users\Ben\Development\Projects\CloudProject\WorkerRole\SrDataProcessor.fs:line 76

InnerException(请原谅括号,因为我避免了 html 标签清理器):

System.Data.Services.Client.DataServiceClientException: " [?xml version="1.0" encoding="utf-8" standalone="yes"?] [error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"] [code][/code] [message xml:lang="en-US"]An error occurred while processing this request.[/message] [/error] "

at System.Data.Services.Client.DataServiceContext.SaveAsyncResult.d__1d.MoveNext()

在 HandleBatchResponse 方法中,似乎可能会在枚举响应时报告此错误。有什么想法可以称之为什么吗?我想检查但没有检查的唯一一件事是确保我的实体都不具有超过 1000 个字符的字符串属性。

更新:现在我有了,但看起来没有。以下代码片段生成了一个空序列:

let longEntities = 
nutData |> Seq.choose (fun nd -> if HasLongStringProperties(nd)
then Some(nd) else None)

另外,更一般地说,如何调试这样的问题?有没有办法对本地存储服务进行一些反射(reflection)?

更新 2:我发现“起源异常”实际上是一个 System.WebException 报告“内部服务器错误 (500)”,没有进一步的信息细节。我已尽我所能来确保我尝试插入的数据与支持表服务的 SQL Server Express 数据库中的表中的架构和数据类型兼容,但我仍然不知道是什么问题是。 TableDataService 只是不会接受我插入的对象。有关更多详细信息,请参阅 MSDN 线程。我还开了一个bug on connect .

最佳答案

我试图做一个非常简单的演示,我遇到了同样的问题,但我终于弄清楚了。通过在打开日志记录的情况下针对开发存储运行:看: http://blogs.msdn.com/b/partlycloudy/archive/2009/12/16/development-storage-logging.aspx

启动 DevelopmentStorage、运行我的应用程序,然后停止开发存储并查看日志文件夹后,我看到:

9/17/2010 1:30:47 PM [错误] 在执行表操作期间捕获异常并重新抛出: System.Exception: c:\Users\Scott\AppData\Local\Temp\jvcl5gjz.0.cs(14 ,23) : 错误 CS0542: 'Number': 成员名称不能与其封闭类型相同

位于 x:\rd\rd_store_stable\services\xstore\XFE\table\service\Protocols\REST\src 中的 Microsoft.Cis.Services.Nephos.Table.Service.Protocols.Rest.TableManager.EndPerformOperation(IAsyncResult ar)\TableManager.cs:第 184 行 在 x:\rd\rd_store_stable\services\xstore\XFE\table\service\Protocols\REST\src\TableProtocolHead 中的 Microsoft.Cis.Services.Nephos.Table.Service.Protocols.Rest.TableProtocolHead.d__3e.MoveNext() 处。 CS:第 732 行

事实证明我的演示太简单了,因为我创建了一个名为 Number 的表,其中只有一个名为 Number 的列...

关于ado.net - 如何调试本地存储的问题? HandleBatchResponse 中的 "An error occurred while processing this request"出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223827/

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