как использовать windbg узнать SqlConnection.ConnectionString?

StackOverflow https://stackoverflow.com/questions/1811355

  •  06-07-2019
  •  | 
  •  

Вопрос

Я могу использовать "! do " выгрузить экземпляр 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
Это было полезно?

Решение

попробуйте отладчик Visual Studio 2008, отладьте программу, которая использует SqlConnection;

найдите экземпляр SqlConnection по вашему выбору (это могут быть локальные переменные, поля экземпляров или статические поля ..).

просмотреть его в окне просмотра. расширяйте его все расширяемые дочерние узлы, пока вы не найдете то, что хотите (насколько я помню, он хранит отдельные части, такие как сервер, база данных, идентификатор пользователя, пароль и т. д.).

запишите путь перехода к этим полям, а затем используйте windbg, чтобы перейти к тому же полю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top