我已经继承了一个经典的ASP应用程序,并迁移到Windows Azure,SQL和所有工作正常运行正常-Except-一个奇怪的问题,也许您会知道吗?
方案
通过匹配唯一的ID-与用户界面相匹配,选择数据顺序的行。每个"集"两行。一个已经以" y"为标记的" Masterselect"。ASP代码通过无线电按钮ONCLICK清除(或应该)两个记录中的两个字段,然后将新记录的字段设置为具有" Y"的" Y"。如果可以的话,请切换。
在(本地)和半路上的Azure上工作就像魅力一样。
**(local)** ('x' = choose radio button)
x #1 --> 'Y'
#2 --> ' '
#1 --> ' '
x #2 --> 'Y'
x #1 --> 'Y'
#2 --> ' '
**(Azure)**
x #1 --> 'Y'
#2 --> ' '
#1 --> 'Y' <--- (Should be blank)
x #2 --> 'Y'
x #1 --> 'Y'
#2 --> ' '
这是代码:
' If updating the master select field then need to clear all previous selects for that dupid
if updfield="masterselect" then
strSQL = "select FileName,DupeID from OnLineContactsM where OnLineRecID=" & keyvalue
cn.execute("exec insertactivity '','','ajaxUpdate.asp','" & strSQL & "'")
set rs=cn.execute(strSQL)
if not rs.eof then
fn = rs("FileName")
DID = rs("DupeID")
strSQL = "update OnLineContactsM set MasterSelect='' where FileName like'" & fn & "' and DupeID='" & DID & "'"
cn.execute(strSQL)
'cn.execute("exec insertactivity '','','ajaxUpdate.asp','" & DID & "'")
end if
end if
远程位置上的行为是顶部行从不清除,但底部行总是按预期工作。而且,如果我手动手动运行代码的确切行,无论指向(local)或(远程)代码完美运行 - 在两个平台上运行?!?!?!?
我认为可能还有其他代码,而不是我提出的可能重置第一个记录,但是然后无法解释为什么(本地)副本没有表现出这种行为。换句话说,因为事情按预期工作,并且始终具有,直到 azure进入了我们是金色的图片。
所以,我的结论自然会导致我遇到与环境相关的原因,但是我的头显然比我的头脑更聪明。
我从各种角度(缓存,索引,代码比较等)中研究了这一点,并结论了错误,不兼容或与环境相关的问题。我几乎整天都没有任何确定的搜索。
有人会对可能导致行为差异的原因有任何建议吗?
tia !!!
要检查的东西:
- db整理可能不同(情况敏感)
- 某些DB配置可能会引入
SET ARITHIGNORE
或SET NOCOUNT
等错误 - 交易:也许Azure SQL添加了不投入的外部Transac