0

我知道我正在失去理智。我已经做了一些事情,现在当我的应用程序访问数据库时,我收到一个错误“无法执行查询......等等等等”

内部消息显示“超时已过期。在操作完成之前超时时间已过或服务器未响应。”

当我查看异常中的 sql 时,它会说 blah blah blah blah@p0等等@p1@p1to@p3被定义为我期望的那样,但@p0被定义为Castle.Proxies.UserProxy. 好的,所以如果我将 sql 放入 ssms 查询中,然后将属性子化为@p1to @p3,然后再将我期望的属性子化,@p0那么它会立即返回。

所以让我看看我是否可以简洁。

  1. 我的错误是无法执行 sql 并且 sql 超时。
  2. 我的错误信息有 SQL。
  3. SQL 有 4 个参数@p0,@p1,@p2,@p3
  4. 错误显示参数定义为

    \r\nPositional parameters:  #0>Castle.Proxies.UserProxy #1>2 #2>2 #3>/MenuItem/Calendar #4>/MenuItem\r\n
    
  5. 如果我将 sql 复制到 ssms 查询中并替换 1(我期望的值)、2、2、'/MenuItem/Calendar'、'MenuItem',那么 sql 会立即返回。

tarnation 中发生了什么。

请帮忙

拉伊夫


编辑


上帝保佑,我发现了错误,我在 global.asax 中有一个 onRequestEnd (或其他东西)。在那个事件处理程序中,我已经注释掉了关闭交易。登录时,我正在更新 user.lastlogindate,然后在下一页尝试加载同一用户。我认为由于事务没有关闭,它被锁定了。此外,因为我没有在部署时推送 global.asax,这解释了为什么它在产品中而不是在本地工作。


地狱对产品没有任何意义,因为它是编译的。任何。忘掉它


抱歉存在。

4

1 回答 1

1

关于简单查询的超时(特别是因为您说它在运行 SQL 本身时立即返回),要么是数据库服务器没有响应,要么是事务和锁定存在问题。你在使用 TransactionScope 吗?

至于参数,这可能只是在代理的身份被提取之前显示值的情况。

您必须展示您正在做什么才能获得更准确的回复。

于 2012-12-19T11:51:41.647 回答