2009-11-28 28 views
0

我可以用“做!”转储SqlConnection的实例,但不知道如何找出它的ConnectionString:如何使用windbg查找SqlConnection.ConnectionString?

0:018> !do 2fa7730 
Name: System.Data.SqlClient.SqlConnection 
MethodTable: 000007fef4455968 
EEClass: 000007fef42b6530 
Size: 104(0x68) bytes 
(C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll) 
Fields: 
       MT Field Offset     Type VT  Attr   Value Name 
000007fef80ee580 400018a  8  System.Object 0 instance 0000000000000000 __identity 
000007fef7558ff0 40008cc  10 ...ponentModel.ISite 0 instance 0000000000000000 site 
000007fef75888d8 40008cd  18 ....EventHandlerList 0 instance 0000000000000000 events 
000007fef80ee580 40008cb  210  System.Object 0 static 0000000002769b58 EventDisposed 
000007fef4966d98 4000be5  20 ...hangeEventHandler 0 instance 0000000000000000 _stateChangeEventHandler 
000007fef49789e0 400172c  28 ...t.SqlDebugContext 0 instance 0000000000000000 _sdc 
000007fef80ede60 400172d  58  System.Boolean 1 instance    0 _AsycCommandInProgress 
000007fef445c100 400172e  30 ...ent.SqlStatistics 0 instance 0000000000000000 _statistics 
000007fef80ede60 400172f  59  System.Boolean 1 instance    0 _collectstats 
000007fef80ede60 4001730  5a  System.Boolean 1 instance    0 _fireInfoMessageEventOnUserErrors 
000007fef4459458 4001733  38 ...ConnectionOptions 0 instance 0000000002fa7798 _userConnectionOptions 
000007fef4458b68 4001734  40 ...nnectionPoolGroup 0 instance 0000000002fa7b28 _poolGroup 
000007fef44596a0 4001735  48 ...onnectionInternal 0 instance 0000000002fa9130 _innerConnection 
000007fef80f5f00 4001736  50   System.Int32 1 instance    0 _closeCount 
000007fef80f5f00 4001738  54   System.Int32 1 instance    8863 ObjectID 
000007fef80ee580 400172b  f30  System.Object 0 static 00000000027885a8 EventInfoMessage 
000007fef4458860 4001731  f38 ...ConnectionFactory 0 static 00000000027885c0 _connectionFactory 
000007fef80f5658 4001732  f40 ...eAccessPermission 0 static 000000000278f910 ExecutePermission 
000007fef80f5f00 4001737  9c0   System.Int32 1 static   16803 _objectTypeCount 

回答

2

尝试Visual Studio 2008中debuger,调试它使用的SqlConnection程序;

找到SqlConnection实例的方式(它可能是本地变量,实例字段或静态字段..)。

在观察窗口中查看它。展开它的每个可展开的子节点,直到找到你想要的东西(因为我可以记住它单独存储诸如服务器,数据库,用户ID,密码等部分)。

记录如何导航到这些字段的路径,然后使用windbg转到相同的字段。

+1

谢谢。这提醒我使用Reflector来检查数据,并发现它是_userConnectionOptions._usersConnectionString。 – wangzq 2009-11-28 07:31:11