Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Динамическое создание endpoint / 3 сообщений из 3, страница 1 из 1
22.04.2011, 10:47
    #37228110
rinat mergenbaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое создание endpoint
Добрый день!

Задача сделать один сервис для http и https.
Хост создается динамически через фабрику, где я смотрю и создаю нужный транспорт.
Код вот такой

Код: 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.
 public class BillServiceFactory : ServiceHostFactoryBase
    {
        protected virtual ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
        {
            return new ServiceHost(serviceType, baseAddresses);
        }

        public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
        {
            ServiceHost host = null;
                var reliableSession = new ReliableSessionBindingElement
                {
                    Ordered = true
                };

                Type serviceType = Type.GetType("MvcApplication1.BillService");
                host = CreateServiceHost(serviceType, baseAddresses);
                var transport = (baseAddresses[0].Scheme.ToLower() == "https"
                                        ? new HttpsTransportBindingElement()
                                        : new HttpTransportBindingElement());
                transport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
                transport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

                var smb = new ServiceMetadataBehavior
                {
                    HttpGetEnabled = true
                };
                host.Description.Behaviors.Add(smb);

                var binding = new CustomBinding(reliableSession, transport);
                var endPoint = host.AddServiceEndpoint(typeof(IBillService), binding, string.Empty);        

            return host;
        }
    }

Проблема в создании эндпойнта. endPoint равен null после выполнения.
Если комментирую выделенную строку и раскомментировать строку в конфиге

Код: plaintext
1.
2.
3.
 <service name="MvcApplication1.BillService">       
        <endpoint address="" binding = "webHttpBinding" contract="MvcApplication1.IBillService"
						  behaviorConfiguration="MvcApplication1.PaymentsServiceBehavior" />
</service>

то всё работает.
Что может быть не так?

p.s. http://localhost:5083/WCF/BillService.svc
...
Рейтинг: 0 / 0
22.04.2011, 18:35
    #37229489
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое создание endpoint
хм...вроде все правильно, а если закомментировать эти две строки

transport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
transport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

?
...
Рейтинг: 0 / 0
25.04.2011, 17:01
    #37232401
rinat mergenbaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое создание endpoint
проблема была в том, что студийный веб-сервер не поддерживает https эндпойнты.

а проблему решил с другой стороны.
в svc файл добавил
Код: plaintext
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Динамическое создание endpoint / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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