2009-10-02 63 views
1

我正在寻找应该完全相同的应用程序的两个版本。该应用程序是用VB.NET编写的ASP.NET。问题是,在应用程序的本地构建中,对数据库的简单插入调用就像它应该添加条目一样,但是在相同构建的远程部署中,相同的插入会以某种方式发生两次。为什么我在我的SQL数据库中获取多个条目?

我知道这是一个非常模糊的问题。我真正想知道的是,如果有人在这里看到过类似的事情,并且由于DB(或DB中的表)的配置方式而导致问题存在。

+0

你不能再给我们提供任何信息吗?也许你正在执行的SQL? – Miles

+0

插入是由事件触发的吗?可能是某人按了两次按钮或其他东西。 – Satanicpuppy

+0

或者页面的代码? –

回答

2

您可以使用SQL事件探查器和剖析幕后发生的事情。看看是否有相同的插件被推出。

2

该页面是否具有AutoEventWireUp = True以及用于保存数据的按钮点击的Handles语句?

如果是的话,尝试删除AutoEventWireUp =真

如果不是,试图找到其中的单击事件被分配到按钮一些其他的方式两次

,我已经运行到
+0

这正是我在ASP.NET开发初期一直在做的事情。如果你有AutoEventWireUp + Handles,它本质上会调用两次按钮的代码。 – BBlake

2

一件事是人双击一个按钮。这会导致onclick事件被解雇。

你是通过门户网站进行测试还是从客户端收到反馈的人?

编辑:

,我已经在过去固定的方法就是通过创建一个自定义按钮,点击即遭停用时,直到回传回来了。这里是一个例子:http://www.codeproject.com/KB/aspnet/oneclickbutton.aspx

我见过这种情况的另一次发生是,如果有人在点击一个按钮之后对F5进行了篡改,并重新提交了回发。

0

SQL Profiler的好建议。我以前从未使用过它,但它帮助我更清楚地了解发生了什么。我现在看到,调用insert语句的方法在被调用一次时会被调用两次。仍然惊人的事情是,它只发生在远程服务器上,而不是在本地服务器上发生。从我可以说,唯一的区别是,第一个方法调用包装一个if语句,该语句检查一些在回发时传递的隐藏变量(该代码是旧的,老实说应该可能会被删除),第二个方法调用被触发buttonclick事件。

因此,当点击具有buttonclick事件处理程序的相同按钮时,通过远程服务器上的一个小JS片段将隐藏的var设置为“1”。但是,它并未设置为“1”,并且在我们的本地服务器上默认为“0”。现在我还在想,如果某些Windows更新已经改变了客户端JS执行的方式(我正在通过它们的服务器上的IE7执行我们的应用程序并运行我们的应用程序)。

对不起,冗长的解释,但我想不出一个更好的方式来把它。

相关问题