|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Помогите, плз с конфигурацией WCF. Получаю вот такое адское сообщение The message with Action 'PaymentContract' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None). Сама по себе моя (видимо неправильная конфигурация) вот такая Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
Это двухсторонний SOAP-Сервис. Я выдаю запросы к внешнему сервису с клиентским сертификатом, он возвращает мне свои ответы по HTTP (без SSL) - то есть мне нужна SSL при входах в мой сервис. "Туда" все работает отлично. Но ко мне ничего не проходит. В чем здесь грабли? Ситация осложняется следующим - я могу сделать ТЕСТ сервиса из своих же локальных страничек в этом же узле (где работает сервис InPlatGateway.svc?wsdl) и могу подергать сервис (на хостинге) из Альтовы на девелоперской машины - все летает отлично. На девелоперской машине тоже все летает. Неверная (в чем-то) конфигурация WCF именно на хостинге. Узел certificateReference в конфигурацию я добавил только что для эксперимента - хоть с ним, хоть без него - ничего не работает. Внешний клиент видит только вышеупомянутую ошибку WCF. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:07 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
слишком узкий конктекст. не понять че у тебя. напиши по-русски чтоли.чтобы мысль была первее набора букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:10 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
если бы я знал что ИМЕННО тебе нужно уточнить - я бы уточнил ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:16 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
вот тест из Альтовы - все летает - а клиент видит только сообщение об ошибке (которое в титуле) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:19 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
причем это тест НЕ С ЛОКАЛЬНОЙ МАШИНЫ, а с УДАЛЕННОЙ - и все работает что надо уточнить? любые логи - все отдам ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:21 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
В IIS крнечно выставлено, что требует SSl подключения? Вообще, к чему все мудрости с двусторонним сервисом? Чем не устраивает обычный wsHttpBinding, который тоже зашифрован. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:22 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
нет, в IIS не выставлено НИЧЕГО сертифкат подключается В КОДЕ - вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
и это правильно. Для WCF в IIS клиентские сертифкаты не выставляются. Это уже проехали. Именно таким образом реквесты ОТЛИЧНО уходят зашифрованными по SSL. Но это ДВУХСТОРОННИЙ SOAP-сервис (не я это придумал). Туда должно уходить по SSL - обратно можно и по-простецки. Так вот туда все уходит по таким образом сформированному SSL. А в обратную сторону (то есть мой сервис - который дергается клиентом) он голый, практически незащищенный. Так сделано потому чтобы не возиться с SSL на хостинге (для простоты, если угодно). Сложно тут поднимать SSL (точнее невозможно) - айпишники заняты на другие узлы с SSL. То есть в сухом остатке с точки зрения клиента это должен быть ОБЫЧНЫЙ незащищенный WCF. И проблема в том, что он РАБОТАЕТ ПРЕВОСХОДНО - пока запросы делаю я, но когда удаленный сервис пытается войти ко мне (в ответ на мои SSL-запросы к нему) - то он видит не то, что видят мои тесты из этого же узла http://calc.asp-net.ru/ и не то, что видит АЛЬТОВА (скрины выше) - а видит ТОЛЬКО ОШИБКУ (которая вначале топика) Я эту ситуацию расцениваю как неверный конфиг на хостинге (он тоже в первом посте показан). Хотя возможно я ошибаюсь. Другие незащищенные WCF сервисы у меня на этом же хостинге работают отлично. А именно вот этот не работает. Ведь дело именно в конфиге? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:40 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Понял, не Duplex. В ошибке четко говорится, что сервис не соответствует запросу клиента, при чем в самом начале запроса, т.е. проблема судя по всему в контексте безопасности. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 12:53 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Насколько я понимаю, этот конфиг, того сервиса, что дергает удаленный клиент. Так вот здесь четко прописан транспорт <transport clientCredentialType="Certificate" /> Что же вы ждете? Клиент ждет валидный сертификат от вашего сервиса. Однозначно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 13:00 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Да. А обращается по незащищенному соединению. Где-то есть опция принимать оба типа подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 13:03 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
да, n_string - все абсолютно точно: 1. не дуплекс (ко мне SSL затруднительно ставить) 2. очевидно - что дело в безопасности (ведь ИНОГДА сервис-то работает превосходно) 3. да, это конфиг моего сервиса, который должен дергать удаленный клиент 4. да, в этой конфигурации видимо ждет сертификата, загруженного статически именно от IIS 5. видимо да, есть такая опция поэтому проводим такой эксперимент - выкидываем нах ОБЕ секции (и client и bindings) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
то есть SSL от меня идет по сертификату подключеного динамически ИЗ КОДА (а не из IIS), а об обратном SSL ВОООБЩЕ нет никакого упоминания в конфигурации. результат плачевный - НЕ ИЗМЕНИЛОСЬ НИЧЕГО - от меня идут замечательные отлично зашифрованные SSL - а когда клиент (в ответ на мои SSL запросы) пытается ответить мне - он видит только ту же самую ошибку The message with Action 'PaymentContract' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 13:37 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
и альтовой сейчас прверил - без этих двух секций ничего не изменилось ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 13:40 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Какая разница, как вы определите конфигурацию императивно или декларативно, результат будет одинаковый. авторто есть SSL от меня идет по сертификату подключеного динамически ИЗ КОДА (а не из IIS), а об обратном SSL ВОООБЩЕ нет никакого упоминания в конфигурации. Давайте уточним: "От вас", я так понимаю, это вы запрашиваете удаленный сервис, который требует SSL соединение. Ваш сервис, который запрашивает удаленный клиент, это то, что вы опубликовали здесь. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2011, 13:51 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
да, все так ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2011, 13:06 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
так что - есть у кого-нибудь ХОТЬ КАКИЕ-НИБУДЬ идеи? или еще что-нибудь надо уточнить дополнительно? спросил и на других форумах, даже у самого MS - http://social.msdn.microsoft.com/Forums/ru-RU/securityru/thread/fea97b56-0dfb-4ed5-8ec0-bd36d1d11f34 Все - полный молчок и даже НИКАКИХ ПРЕДПОЛОЖЕНИЙ сделать не могут о причинах адского сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2011, 12:36 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
как идея, спроси на английском форуме ms) и stackoverflow еще пошерсти. просто до сих мне, не понятен смысл твоей проблемы. еще как идея, переделай ssl через winhttpcfg . я сам предпочитаю этот способ, программному. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2011, 14:09 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
ну на анлоглоязычный я вопрос сегодня повешу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2011, 16:51 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
просто до сих мне, не понятен смысл твоей проблемы. а смысл проблемы в том, что ДО выполнения обмена сообщений (который вполне удачно происходит на тестах - например с девелоперской машины из Альтовы (скрины выше) ) до выпонения обмена данными ЧТО-ТО начинает проверять виндузня что-то проверила и выругалась ну и что я смог придумать - чтобы отключить проверку безопасности - я все перепробовал, например атрибуты <ServiceContract(ProtectionLevel:=Net.Security.ProtectionLevel.None)> ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2011, 16:58 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
Вы говорите, что соединение незащищенное, а сами указываете сертификат в конфиге. Кстати не пропадайте, если хотите найти решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 10:50 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
спс. я не пропадаю - это надо решить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 12:46 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
черт, нажимаю CTRL-ENTER как в скайпе (чисто на автомате) - чтобы перейти на следующую строку а получается закрывшийся пост, сорри так вот, блок с сертификатом я убрал - но это НИЧЕГО не изменило насколько я могу понять - этот блок конфига управляет сертификатом, загруженным в IIS - я просто хотел в этом убедиться никакого значения для сертифката загруженного программно - этот блок (по моему пониманию) не имеет а номер сертифката в Application указан для кода этот сетификат подключается для исходящих соединений от меня ТУДА - и этот блок работает отлично а вот ОБРАТНО - то есть вызовы моего сервиса сторонним сервисом НЕ ПРОХОДЯТ и здесь мне никакого сертификата не нужно (ну это я уже подробно описывал) у меня есть просто определение интерфейса я могу добавить к нему ЛЮБОЙ атрибут, например Net.Security.ProtectionLevel.None и ожидаю от виндузни, что она НЕ БУДЕТ делать никаких ненужных и непрогнозируемых проверок а просто предоставит доступ к моему SOAP-сервису КОМУ УГОДНО но она что-то свое проверяет (о чем индусы-программисты видимо никому так и не рассказали) - и ЗАПРЕЩАЕТ доступ к моему сервису ПОЧТИ ВСЕМ почему-то разрешая доступ из того же узла (или с девелоперского кампутера) ну если конечно моя проблема - это проблема безопасности.... может быть тут что-то другое вообще? я хочу еще попробовать ProcMon-ом потрасировать до какого момента доходит реквест ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 12:56 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
ИдеальнаяСУБДтак вот, блок с сертификатом я убрал - но это НИЧЕГО не изменило насколько я могу понять - этот блок конфига управляет сертификатом, загруженным в IIS - я просто хотел в этом убедиться никакого значения для сертифката загруженного программно - этот блок (по моему пониманию) не имеет а номер сертифката в Application указан для кода этот сетификат подключается для исходящих соединений от меня ТУДА - и этот блок работает отлично а вот ОБРАТНО - то есть вызовы моего сервиса сторонним сервисом НЕ ПРОХОДЯТ и здесь мне никакого сертификата не нужно (ну это я уже подробно описывал) Почему вы всегда объединяете эти два совершенно разных приложения с различными задачами? Вы меня вводите в заблуждение. У вас есть веб сервис, который вызывается удаленным клиентом, ТАК? Все, точка, больше никаких функций ваш сервис не выполняет. Только отвечает удаленному клиенту. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 13:22 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
ну пусть так. но кажется я понял в чем тут грабли чудо движок WCF мщет конфиг не там, где он должен быть естественно, если конфига у сервиса нет - то и нет привязки между точкой доступа и модулем, который слушает эту точку доступа на скрине видно, что конфиг сервиса ищется в папке ~/InPlatGateway.svc/web.config - а нужно-то искать в папке ~/web.config щас переделаю все (с учетом чудо-мнения индуса-программиста о месте расположения конфига) - и если дело в этом - поймаю первого попавшегося индуса и задушу его собственной чалмой (он ответит за всех индусов сразу - которые так и не поняли что конфиг сервиса лежит в той же папке, где и находится сам SVC) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 14:15 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
переделал с конфигом сервсиа в другой папке - но на работу сервиса это не повлияло - та же ошибка проверили протокол глазками - все точно - на всех тестах - протокол правильный проверено было всеми возможными инструментами - например микрософтовским тестером SOAP убедились, что протокол полностью корректен ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 17:12 |
|
The message with Action '' cannot be processed at the receiver, due to a ContractFilter...
|
|||
---|---|---|---|
#18+
и было проверено wireshark'ом - все тоже работает корректно сейчас мой сервис работает НА ВСЕХ ТЕСТАХ: 1. на запросах с моих ASPX-страничек (с другой машины) 2. выше лежит скрин проверки альтовой (с другой машины) 3. в предыдущем топике лежит скрин проверки сервиса микрософтовским SOAP-тестером 4. тут скрин проверки корректности сервиса варешарком (тоже запросы с другой машины) 5. на соседних узлах лежит куча аналогичных и нормально работающих SOAP-сервисов мое мозгозаключение - обращение к моему сервису выполняется некорректно обращение производится каким-то своим собственным самописным софтом на PHP (а при обращении из него и возникает исходная ошибка с которой начался топик) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2011, 17:22 |
|
|
start [/forum/topic.php?fid=19&msg=37451178&tid=1397353]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 283ms |
0 / 0 |