powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF+Https
7 сообщений из 7, страница 1 из 1
WCF+Https
    #36875177
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

В моем проекте 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

Чего подкрутить?

Спасибо.
...
Рейтинг: 0 / 0
WCF+Https
    #36875210
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подкручивать надо извилины.

следующий вопрос, а что вы готовы подкручивать, ваши возможности какие, какая ваша конфигурация?
...
Рейтинг: 0 / 0
WCF+Https
    #36875604
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

>подкручивать надо извилины
Если у вас в этом вопросе с извилинами получится, я буду вам только благодарен.

>а что вы готовы подкручивать, ваши возможности какие
Не понял, какие возможности, финансовые?

Насчет конфигурации. Windows 7, IIS 6.1, VS 2008, Silverlight 4.0, WCF 4. И клиент и сервер на одной машине. IIS (Default Web Site) этой машины экспонирует 2 порта: 80 и 443.
X509 сертификат самописный, тестовый.

Спасибо.
...
Рейтинг: 0 / 0
WCF+Https
    #36876937
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант , на сервере две endpoint - в конфиге, на клиенте в зависимости от схемы System.Windows.Browser.HtmlPage.Document.DocumentUri (или System.Windows.Application.Current.Host.Source) устанавливать BasicHttpSecurityMode.Transport или нет - в коде
...
Рейтинг: 0 / 0
WCF+Https
    #36878108
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо LR,
А также спасибо тем эстонским парням с forums.silverlight.net
Этот вариант работает.

Хотелось бы усовершенствовать его. А именно создавать второй HTTPS-й endpint также на лету (не прописывать его в Web.Config)
Куда рыть?

Спасибо.
...
Рейтинг: 0 / 0
WCF+Https
    #36878119
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
public sealed class YourServiceFactory: ServiceHostFactoryBase
    {
...

        public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
        {
...

            var transport = (baseAddresses[ 0 ].Scheme.ToLower() == "https" ? new HttpsTransportBindingElement() : new HttpTransportBindingElement());
...
            CustomBinding binding = new CustomBinding(
                polling,
                bmebe, //new BinaryMessageEncodingBindingElement(),
                transport // должен быть последним
                );
...
...
Рейтинг: 0 / 0
WCF+Https
    #36878123
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но надо же учесть/понимать, что после первого же запроса (старта сервиса) будет жесткая привязка к схеме (один endpoint), со всеми вытекающими...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF+Https
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]