[已解决问题] asp.net 2.0的事务问题
提问时间: 2007-12-29 14:16
悬赏分:20 浏览:299 次

页面中的代码如下.现在的问题是, 如果我的程序和数据库是在同一台机子A上,那么可以正常运行.但如果把程序移到另一台机子B上,而数据库还是连接到A上时数据库语句就没法操作.为什么会这样呢?大家指教.     

TransactionOptions TransOpt = new TransactionOptions();
        TransOpt.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
        TransOpt.Timeout = new TimeSpan(0, 2, 0);
        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, TransOpt))
        {
            //这边是执行多条数据库语句
           scope.Complete();
        }



问题补充:程序和数据库同在一台机子A上时,别的机子访问时是可以操作事务内的语句的,但是,当程序在B上,数据库在A上时,访问程序时事务内的语句就不能执行?

最佳答案

一.A.不用事务,关用SELECT   语句.是否可以分布式查询?   
    
        B.LINKSERVER   在做分布式更新事务时不能对本机操作.(就是不能环回分布式事务)   
    
        C.DBCC   TRACEON   (3604,   7300)--用跟踪看更详细错误信息.   
        
        D.下载MS提供的DTCPing.exe   分装在两台机上,按README说明来运行它.看出错信息.   
  http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe   
    
  二.两台机的MSDTC是否都打开了.   
    
  三.MSDTC设置是否正确.   
  1.打开命令提示,运行"net   stop   msdtc",然后运行"net   start   msdtc"。   
  2.转至"组件服务管理工具"。   
  3.浏览至"启动管理工具"。   
  4.选择"组件服务"。   
    a.展开"组件服务"树,然后展开"我的电脑"。   
    b.右键单击"我的电脑",然后选择"属性"。   
    C.在   MSDTC   选项卡中,确保选中了下列选项:   网络   DTC   访问   
  网络管理   
  网络事务   
          XA   事务   
    e.另外,"DTC   登录帐户"一定要设置为"NT   Authority\NetworkService"。   
  5.单击"确定"。这样将会提示您"MS   DTC   将会停止并重新启动。   
      所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。   
  6.单击"确定"关闭"我的电脑"属性窗口。   
    
  四.   
  MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.   
  telnet   IP   135   
  如果是关闭的打开它.   
    
  五.   
  有的机由于各种原因),SQLOLEDB不能使用分布式事务,更改为"MSDASQL"   的ODBC方式联接.   
  使用RRAS而不是RAS.(控制面版--管理工具--远程服务管理器)   
  Check   whether   you   are   using   Remote   Access   Server   (RAS)   to   access   remote   servers.   If   so,   make   sure   that   you   have   implemented   Routing   RAS   (RRAS).   Linked   server   does   not   work   on   RAS   because   RAS   allows   only   one   way   communication.   
    
    
  七.检查你的两台服务器是否在同一个域中.   
  如果不在同一个域中,是否建立可信任联接.   
    
  八.如果是WIN2000,升级到SP4   
    
  九.升级MDAC到2.6以上,最好是2.8.   
    
  十.要安装SQL的最新补丁:   sp3a 
------------------------------------------------------------------------------------
解决这个问题需要注意:开启Telnet访问,开启135端口(控制面板->管理工具->服务->telnet)
                      配置MSDTC的时候选择为不要求验证(控制面板->管理工具->组件服务->组件服务->计算机->我的电脑->属性->MSDTC)
             
2007/12/29 15:06:10 回答者:≮羊羔<>羔羊≯


提问者对于答案的评价:谢谢:≮羊羔<>羔羊≯
评论
6个月前   叶子绿了 :
谢谢:≮羊羔<>羔羊≯
刚看完http://www.cnblogs.com/zhangzheny/archive/2007/11/08/953265.html这篇文章,最后一部分讲的跟你一样,已经解决了.
6个月前   叶子绿了 :
谢谢
6个月前   叶子绿了 :
觉得博客园比CSDN好多了.
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除