gpt4 book ai didi

asp.net - SqlCacheDependency 不工作

转载 作者:行者123 更新时间:2023-12-01 10:09:11 27 4
gpt4 key购买 nike

我想将 SqlCacheDependency 添加到我的应用程序中。所以我决定创建littel tesp项目并遇到困难。我使用 MSSQL 2008。我用表行创建新的数据库并添加了几行。我执行了:

ALTER DATABASE ForTest SET ENABLE_BROKER 

在 managmeng 工作室。

Aspx 页面:

public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Cache["Lines"] == null)
{
string connectionString =
WebConfigurationManager.ConnectionStrings["ForTest"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
string query = "SELECT dbo.Lines.Id, dbo.Lines.Value FROM dbo.Lines";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();
adapter.Fill(ds, "Lines");

SqlCacheDependency empDependency = new SqlCacheDependency(cmd);
Cache.Insert("Lines", ds, empDependency);
}
}
}

protected void btnResult_OnClick(object sender, EventArgs e)
{
var result = Cache["Lines"];
}
}

我运行此页面并向缓存添加行,然后我在管理工作室中添加行,当我点击按钮时,我希望缓存将被更改,但缓存仍然是旧的。我找不到我做错了什么:(你能给我一些提示我如何解决这个问题吗?

谢谢

更新:我忘了在 global.aspx 中运行:

SqlDependency.Start(
WebConfigurationManager.ConnectionStrings["ForTest"].ConnectionString
);

最佳答案

我遇到了类似的问题。本文:Troubleshooting SqlCacheDependency in SQL Server 2008 and SQL Server 2005对我帮助很大。

简而言之:数据库是从备份中恢复的,创建数据库的原始 Windows 用户不再可用。所以我将数据库所有权更改为有效登录名,类似于:

ALTER AUTHORIZATION ON DATABASE::[my_perfect_database_name] TO [sa];

现在它就像一个魅力。

我如何找到问题的根源?我运行查询 SELECT * FROM sys.transmission_queue 并在 transmission_status 列中找到下一个数据:

An exception occurred while enqueueing a message in the target queue. Error: 15517, State: 1. Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.

这条消息给了我一把解决问题的 key 。

关于asp.net - SqlCacheDependency 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427026/

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