|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Юзер коннектится к сервису далее коннектиться к SQL Server. Если коннект к сервису через basichttp - всё ок. Если через net.tcp - ошибка: Код: c# 1.
Если сервис на другом компьютере, то там то же, но про System.EnterpriseServices куда смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2015, 20:04 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, Похоже на то, что надо копать в сторону ключевых слов WCF и Impersonate a client after authentication. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2015, 20:18 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuh, Похоже на то, что надо копать в сторону ключевых слов WCF и Impersonate a client after authentication. на локальной машине - все ок. Проверил на двух парах разных - вот такая фигня. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 11:13 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
WinnipuhAxeleronWinnipuh, Похоже на то, что надо копать в сторону ключевых слов WCF и Impersonate a client after authentication. на локальной машине - все ок. Проверил на двух парах разных - вот такая фигня.System.Transactions относится к SQL CLR. На локале небось обновил до версии 4.0 и лежит все в GAC. А на других машинах нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 14:58 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANA, Ты б почитал сообщение ошибки сперва прежде чем отвечать - там черным по белому два раза сказано слово Impersonation. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 15:00 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Вообще не исключаю, что ошибка связано с проблемой double hop ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 15:10 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAWinnipuhпропущено... на локальной машине - все ок. Проверил на двух парах разных - вот такая фигня.System.Transactions относится к SQL CLR. На локале небось обновил до версии 4.0 и лежит все в GAC. А на других машинах нет. Не совсем так. Есть машины сервер и клиент. На сервере ставлю WCF, на клиенте NET приложение и там, и там используется net.tcp. Пускаю приложение - есть ошибка. Далее: ставлю на сервер клиентское приложение, пускаю - нет ошибки. Такая фигня, думаю, что если бы было так как описал skyANA, то ошибка бы воспроизводилась и при локальном варианте. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 15:52 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
WinnipuhskyANAпропущено... System.Transactions относится к SQL CLR. На локале небось обновил до версии 4.0 и лежит все в GAC. А на других машинах нет. Не совсем так. Есть машины сервер и клиент. На сервере ставлю WCF, на клиенте NET приложение и там, и там используется net.tcp. Пускаю приложение - есть ошибка. Далее: ставлю на сервер клиентское приложение, пускаю - нет ошибки. Такая фигня, думаю, что если бы было так как описал skyANA, то ошибка бы воспроизводилась и при локальном варианте. То что говорил skyANA, предполагалось, что на клиентской машине что-то недоустановлено в GAC. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 15:55 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAWinnipuhпропущено... на локальной машине - все ок. Проверил на двух парах разных - вот такая фигня.System.Transactions относится к SQL CLR. На локале небось обновил до версии 4.0 и лежит все в GAC. А на других машинах нет. да, но должен сказать, что эксцепция возбуждается на sqlConnection.Open(); ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 15:55 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
WinnipuhskyANAпропущено... System.Transactions относится к SQL CLR. На локале небось обновил до версии 4.0 и лежит все в GAC. А на других машинах нет. да, но должен сказать, что эксцепция возбуждается на sqlConnection.Open(); Поэтому я и говорю что у Вас проблема в возбуждении правильной имперсоны! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 16:18 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, И очень вероятно, что проблема Ваша - в double hop ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2015, 16:21 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronskyANA, Ты б почитал сообщение ошибки сперва прежде чем отвечать - там черным по белому два раза сказано слово Impersonation.Написано, что не могу загрузить сборку. ИЛИ проблемы с Impersonation. Перечитал три раза, слово ИЛИ не исчезло :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 11:45 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAAxeleronskyANA, Ты б почитал сообщение ошибки сперва прежде чем отвечать - там черным по белому два раза сказано слово Impersonation.Написано, что не могу загрузить сборку. ИЛИ проблемы с Impersonation. Перечитал три раза, слово ИЛИ не исчезло :) Ага, сначала последствие: Код: c# 1.
А потом и причина через или Код: c# 1.
or Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 11:49 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Axeleron, короче 1. в первый раз я читал с мобилы; 2. тупо кинуть сборку нужной версии в папку сервиса - минутное дело. HRESULT: 0x80070542 - это ERROR_BAD_IMPERSONATION_LEVEL. ИМХО эккаунту, из-под которого работает сервис надо выдать право: Act as part of the operating system . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 11:57 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAAxeleron, короче 1. в первый раз я читал с мобилы; 2. тупо кинуть сборку нужной версии в папку сервиса - минутное дело. HRESULT: 0x80070542 - это ERROR_BAD_IMPERSONATION_LEVEL. ИМХО эккаунту, из-под которого работает сервис надо выдать право: Act as part of the operating system . тупо скинуть не проблема, но поможет ли? 1. Попытался подключиться с того же клиента к сервису на другом компьютере: получил то же сообщение, но вместо System.Transactions там System.EnterpriseServices 2. Скопировал клиента на обе машины с сервисами и локально проверил - все работает. Значит не в длл дело? 3. Возможно причина в имперсонификации. Как правильно сделать: Клиент использует net.tcp, на машине залогинен юзер1, коннектится к сервису на машине, где залогинен юзер2, сервис запущен под консолью для простоты, нужно чтобы в сервисе SqlConnection (Trusted) делался от юзера юзер1. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 12:14 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh2. Скопировал клиента на обе машины с сервисами и локально проверил - все работает. Значит не в длл дело? 3. Возможно причина в имперсонификации. Как правильно сделать: Клиент использует net.tcp, на машине залогинен юзер1, коннектится к сервису на машине, где залогинен юзер2, сервис запущен под консолью для простоты, нужно чтобы в сервисе SqlConnection (Trusted) делался от юзера юзер1. ?"локально проверил" - это зашёл под собой и проверил? :) В чём проблема залогинить юзер1 вместо юзер2? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 12:22 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, набери в пуске "Local Security Policy", в появившемя окне в дереве выбери "User Rights Assignment". Справа в табличке втань на строку "Act as part of the operating system", нажми на правую кнопку мыши, выбери "Properties". В появившемся окошке ткни в "Add User or Group..." и добавь своего юзер2. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 12:30 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAWinnipuh2. Скопировал клиента на обе машины с сервисами и локально проверил - все работает. Значит не в длл дело? 3. Возможно причина в имперсонификации. Как правильно сделать: Клиент использует net.tcp, на машине залогинен юзер1, коннектится к сервису на машине, где залогинен юзер2, сервис запущен под консолью для простоты, нужно чтобы в сервисе SqlConnection (Trusted) делался от юзера юзер1. ?"локально проверил" - это зашёл под собой и проверил? :) В чём проблема залогинить юзер1 вместо юзер2? мы о разных вещах: 1. есть сервис, запущенный на машине2 под юзер2 2. к сервису конектится клиент1, запущенный на машине1 под юзер1_1 3. к сервису конектится клиент2, запущенный на машине1 под юзер1_2 4. сервис делает коннект к SQL Server по трастед как юзер, который к нему коннектнулся. В сервисе сделал тако1 вывод в лог: Код: c# 1. 2. 3. 4. 5. 6. 7.
В логе вижу Код: c# 1. 2. 3.
почти сарзу после этого вывода делаю грубо говоря так: Код: c# 1. 2. 3. 4. 5. 6.
хотя данный юзер имеет права на скл сервере, собственно домен\Domain Users имеют. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 12:57 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, Вами описана типичная ситуация проблемы double hop ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:01 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuh, Вами описана типичная ситуация проблемы double hop Сервер работает как консольное приложение, запущенное юзер2 sqlconnection.Open() выдает эксцепцию catch (Exception x) { var windowsIdentity = WindowsIdentity.GetCurrent(); if (windowsIdentity != null) mainLogger.MainLogger.ErrorFormat("Connection: Name={0}, x={1}", windowsIdentity.Name, x.Message); Name='домен\юзер1';// !!!<-- правильный юзер, пришедший с клиента1 x= {"Login failed for user 'NT AUTHORITY\\ANONYMOUS LOGON'."} System.Exception {System.Data.SqlClient.SqlException} ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:24 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
та же фигня и под IIS x= {"Login failed for user 'NT AUTHORITY\\ANONYMOUS LOGON'."} System.Exception {System.Data.SqlClient.SqlException} ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:27 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, Ага, о чем и речь ведем. До сервиса исперсонация дошла, а сервис уже не подхватывает ее для конекции с БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:27 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Тут нужен не NTLM, а Keberos. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:28 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Chapter 6: Impersonation and Delegation in WCF См. параграф Controlling Impersonation on the Client Side . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 13:43 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuh, Ага, о чем и речь ведем. До сервиса исперсонация дошла, а сервис уже не подхватывает ее для конекции с БД. да, и? схема такая: юзер1 на машине1->wcf под юзер2 на машине2 ->sql server на машине3 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 15:36 |
|
|
start [/forum/topic.php?fid=19&fpage=7&tid=1396891]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 140ms |
0 / 0 |