powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Динамическое создание endpoint
3 сообщений из 3, страница 1 из 1
Динамическое создание endpoint
    #37228110
rinat mergenbaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Задача сделать один сервис для 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
Динамическое создание endpoint
    #37229489
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм...вроде все правильно, а если закомментировать эти две строки

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

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

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


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