gpt4 book ai didi

c# - 使用 Entity Framework 时尝试读取或写入 protected 内存

转载 作者:行者123 更新时间:2023-12-03 03:16:51 24 4
gpt4 key购买 nike

StatCentric.Tracker.Worker.dll 中发生“System.AccessViolationException”类型的未处理异常

附加信息:尝试读取或写入 protected 内存。这通常表明其他内存已损坏。

我在 Stack Overflow 和各种博客上阅读了大量帖子,但似乎找不到解决方案。

我正在做一些非常基本的事情:

public void Execute(ITrackerRequestModel model)
{
PageviewRequest p = (PageviewRequest)model;

using (var db = new StatCentricEntities())
{
db.SetTimeout(60);
db.sp_Log_PageView2(p.SiteId, p.DateTimeUtc, p.vid, p.QueryString, p.p, p.t);
}
}

但是每次我尝试调用 db.sp_Log_PageView2 时都会弹出此错误。这似乎只发生在我的辅助角色中(我使用的是 Windows Azure)。

还值得注意的是,我使用的是 Windows Azure 模拟器,并且运行的是 Windows 8.1。

我尝试过以下方法:

  1. 重置winsocket
  2. 禁用 JIT 调试( native 、脚本、托管)
  3. 在模块加载时禁用 JIT 调试
  4. 按照一些旧帖子进行了似乎特定于 .NET 的热修复2.0 并已停产。
  5. 进行了内存诊断,没有出现任何问题,以确保它不是我的硬件。

我以管理员身份运行 Visual Studio 并连接到 Azure 中托管的远程 SQL Server 数据库。

任何有关如何解决或进一步诊断此问题的想法都值得赞赏。

最佳答案

这不是真正的修复,但在等待 Microsoft 修复时,您可以使用此解决方法。

我也有同样的问题。我也尝试了一切来解决这个问题。几天后我放弃并使用手动“解决方法”。只需几分钟即可复制现有存储过程调用并将其转换为新存储过程调用。

只需忽略自动生成的函数并手动调用存储过程。您可以使用自动生成的类来返回数据。复制并修改现有函数,您将轻松获得正确的参数名称和类型。

只需将部分类实现到不同的文件:

public partial class StatCentricEntities
{
public virtual List<sp_Log_PageView2_Result> my_sp_Log_PageView2(
Guid? siteId,
DateTime time,
string param3,
string param4 )
{
return Database.SqlQuery<sp_Log_PageView2_Result>(
"sp_Log_PageView2 @siteId @time @param3 @param4",
new SqlParameter("siteId", siteId),
new SqlParameter("time", time),
new SqlParameter("param3", param3),
new SqlParameter("param4", param4)).ToList();
}
}

关于c# - 使用 Entity Framework 时尝试读取或写入 protected 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941082/

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