|
WCF+Https
|
|||
---|---|---|---|
#18+
Привет. В моем проекте Silverlight+WCF (Silverlight хостится на ASP.NET странице) необходимо на лету переключать протокол Http/Https в зависимости от соединения. Проект разрабатывется как обычно с ипользованием девелоперского сервера (Cassini, кажется), но для продакшина нужно подключать Https. Анализирую соединение в Silverlight: if System.Windows.Interop.SilverlightHost.Source. AbsoluteUri.StartsWith("https")... Если протокол Https, изменяю endpoint binding следующим образом (ep-endpoint) if (ep.Binding is BasicHttpBinding) { BasicHttpBinding newEP=new BasicHttpBinding(BasicHttpSecurityMode.Transport); newEP.Name="TransportSecurity"; newEP.MaxBufferSize = 2147483647; newEP.MaxReceivedMessageSize = 2147483647; ep.Binding = newEP; } К сожалению, при вызове WCF сервиса возникает ошибка либо The remote server returned an error: Not found либо Server does not return a meaningful reply (не уверен, что воспроизвожу сообщение об ошибке точно) Прчее: При навигации в браузере на сервис через https, появляется обычное окно с данными о сервисе и подсказками, как создать для него клиента. Т.е. тут вроде проблем нет. Трайсинг со switchValue="All" дает Failed to lookup a chanel to receive an incoming message. Either the endpoint or the SOAP action was not found Чего подкрутить? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 17:06 |
|
WCF+Https
|
|||
---|---|---|---|
#18+
подкручивать надо извилины. следующий вопрос, а что вы готовы подкручивать, ваши возможности какие, какая ваша конфигурация? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 17:15 |
|
WCF+Https
|
|||
---|---|---|---|
#18+
AlexeiK, >подкручивать надо извилины Если у вас в этом вопросе с извилинами получится, я буду вам только благодарен. >а что вы готовы подкручивать, ваши возможности какие Не понял, какие возможности, финансовые? Насчет конфигурации. Windows 7, IIS 6.1, VS 2008, Silverlight 4.0, WCF 4. И клиент и сервер на одной машине. IIS (Default Web Site) этой машины экспонирует 2 порта: 80 и 443. X509 сертификат самописный, тестовый. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 20:23 |
|
WCF+Https
|
|||
---|---|---|---|
#18+
как вариант , на сервере две endpoint - в конфиге, на клиенте в зависимости от схемы System.Windows.Browser.HtmlPage.Document.DocumentUri (или System.Windows.Application.Current.Host.Source) устанавливать BasicHttpSecurityMode.Transport или нет - в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 13:45 |
|
WCF+Https
|
|||
---|---|---|---|
#18+
Спасибо LR, А также спасибо тем эстонским парням с forums.silverlight.net Этот вариант работает. Хотелось бы усовершенствовать его. А именно создавать второй HTTPS-й endpint также на лету (не прописывать его в Web.Config) Куда рыть? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 23:02 |
|
WCF+Https
|
|||
---|---|---|---|
#18+
mabanzaХотелось бы усовершенствовать его. А именно создавать второй HTTPS-й endpint также на лету (не прописывать его в Web.Config)Куда рыть? а, на сервере? тады известно куда - в код - наследник ServiceHostFactoryBase (котрого в разметке YourService.svc надо обозначить как атрибут Factory="YourServiceFactory") ну и что-то типа (у меня PollingDuplex) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 23:19 |
|
|
start [/forum/topic.php?fid=19&fpage=24&tid=1397582]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 147ms |
0 / 0 |