ukr*_*ine 3 asp.net sql-server-2008
我想将SqlCacheDependency添加到我的应用程序.因此,我决定创建小型tesp项目并面临困难.我使用MSSQL 2008.我使用表格行创建新的数据库并添加了几行.我执行了:
ALTER DATABASE ForTest SET ENABLE_BROKER
Run Code Online (Sandbox Code Playgroud)
在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"];
}
}
Run Code Online (Sandbox Code Playgroud)
我运行此页面并向Cache添加行然后我在管理工作室中添加行,当我单击按钮时,我希望缓存将被更改但缓存仍然是旧的.我找不到我做错了什么:(你能给我一些提示,我怎么能解决这个问题?
谢谢
更新:我伪造说在global.aspx我运行:
SqlDependency.Start(
WebConfigurationManager.ConnectionStrings["ForTest"].ConnectionString
);
Run Code Online (Sandbox Code Playgroud)
我有类似的问题.本文:SQL Server 2008和SQL Server 2005中的SqlCacheDependency故障排除帮助了我很多.
简而言之:数据库已从备份中恢复,并且创建数据库的原始Windows用户不再可用.所以我将数据库所有权更改为有效登录,类似于:
ALTER AUTHORIZATION ON DATABASE::[my_perfect_database_name] TO [sa];
Run Code Online (Sandbox Code Playgroud)
它现在就像一个魅力.
我是如何找到问题的根源的?我运行查询SELECT * FROM sys.transmission_queue并在transmission_status列中找到下一个数据:
在目标队列中排队消息时发生异常.错误:15517,状态:1.无法作为数据库主体执行,因为主体"dbo"不存在,此类主体不能被模拟,或者您没有权限.
这条消息给了我解决问题的关键.
| 归档时间: |
|
| 查看次数: |
3082 次 |
| 最近记录: |