|
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 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuhюзер1 на машине1->wcf под юзер2 на машине2 ->sql server на машине3 А с какой это стати юзер2, а не юзер1? У вас же Windows Authentication на sql? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 16:03 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
У Вас получается, что юзер1 на машине1 вызывает wcf сервис на машине2 под своими креденшиалами, а они при обращении с машины2 к sql на машине3 теряются и принимают юзера1 как анонима. Это и назывется проблема Double Hop, которая, обычно решается настройкой Kerberos аутентификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 16:09 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronУ Вас получается, что юзер1 на машине1 вызывает wcf сервис на машине2 под своими креденшиалами, а они при обращении с машины2 к sql на машине3 теряются и принимают юзера1 как анонима. Это и назывется проблема Double Hop, которая, обычно решается настройкой Kerberos аутентификации. так где и что настраивать? надо ли создавать SPN и какие? можно ли вот так сделать? клиент юзер1 (домен1\win7)->wcf (под юзер2, но имперсонифицирующийся под юзер1) (домен1\win7)->sql server (домен1\север1) что и где сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 17:17 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, Откуда Вы берете юзера2 на wcf? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 17:36 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, Зайдите по ссылке и сделайте то же самое на сервере WCF для своего домен юзера. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 17:51 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
WinnipuhЮзер коннектится к сервису далее коннектиться к SQL Server. Если коннект к сервису через basichttp - всё ок. Если через net.tcp - ошибка: Код: c# 1.
Если сервис на другом компьютере, то там то же, но про System.EnterpriseServices куда смотреть? Сделал типа такого: http://www.codeproject.com/Articles/38979/How-to-enable-multi-hop-impersonation-using-constr 1. скопировал пальцами из GAC в фолдер сервиса - прошло 2. появилось то же сообщение об System.EnterpriseServices.dll 3. скопировал и эту ассембли - прошло 4. появилась ошибка подключения к SQL Server - incorrect instance name и т.д., но я его правильно указал По 1-3 - это неправильно, похоже не хватает привилегий для загрузки длл из GAC? но каких? По 4 - п-ц, вообще непонятно, что нужно. В Event Viewer вижу, что юзер1 залогинен на серверной машине, правда сообщение 4624 SID = NULL SID? но пишет, что все суксессфульно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 15:30 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuh, Зайдите по ссылке и сделайте то же самое на сервере WCF для своего домен юзера.Баян :) 17449295 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 15:45 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAAxeleronWinnipuh, Зайдите по ссылке и сделайте то же самое на сервере WCF для своего домен юзера.Баян :) 17449295 Та чо ты! Проблемы руками так скушно решать... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 15:47 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronskyANAпропущено... Баян :) 17449295 Та чо ты! Проблемы руками так скушно решать...Думаешь в картинках ТС поймёт? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 15:49 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
skyANAAxeleronпропущено... Та чо ты! Проблемы руками так скушно решать...Думаешь в картинках ТС поймёт? :) Навряд ли. Ну только, может быть, если цветные... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 16:00 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronskyANAпропущено... Думаешь в картинках ТС поймёт? :) Навряд ли. Ну только, может быть, если цветные... да сделал я, задорные смешливые ребята, сделал, нихера не помогло. Дело не в этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 16:34 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuhда сделал я, задорные смешливые ребята, сделал, нихера не помогло. Дело не в этом. Есть у меня что-то смутные подозрения, что сделали не на том сервере и не для того юзера.... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 17:11 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuhда сделал я, задорные смешливые ребята, сделал, нихера не помогло. Дело не в этом. Есть у меня что-то смутные подозрения, что сделали не на том сервере и не для того юзера.... не, сделал для всех трех юзеров, на трех серверах, и даже больше сделал. Но - результат никакой. проверил setspn, пишет, что все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 18:08 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, А рестартанули Claims to Windows Token Service и IIS после изменений? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 18:20 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
Winnipuh, А что за юзер в Application Pool для сайта установлен? Его тоже добавили? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 18:22 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuh, А что за юзер в Application Pool для сайта установлен? Его тоже добавили? для простоты я захостил WCF сервис в консольном приложении ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 21:06 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
WinnipuhAxeleronWinnipuh, А что за юзер в Application Pool для сайта установлен? Его тоже добавили? для простоты я захостил WCF сервис в консольном приложении И все то же самое? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 21:12 |
|
WCF net.tcp: не может загрузить System.Transactions
|
|||
---|---|---|---|
#18+
AxeleronWinnipuhпропущено... для простоты я захостил WCF сервис в консольном приложении И все то же самое? да, как описал выше. Внутри метода WCF такое: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Странностей 2 или 1: то, что не подгружались ассембли из GAC и невозможность открыть коннекцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 21:19 |
|
|
start [/forum/topic.php?all=1&fid=19&tid=1396891]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 153ms |
0 / 0 |