none
WCF IIS Local Static IP RRS feed

  • Вопрос

  • Добрый день.

    Исходные данные. Маршрутизатор, Windows 10 64 Pro. Hyper V включен и используется

    У меня WCF сервис локально на IIS. Хостинг для WCF - ASP сайт на IIS. Http вариант.

    У провайдера взял статический IP. 

    Сделал проброс портов. (как мне кажется).

    В брандмауэре дал правила на входящие и исходящие TCP UDP

    Зашёл на 2IP там есть проверка портов. Проверил пишет Порт открыт. 

    В web.config WCF сервиса стоит

    <system.serviceModel>
        <services>
          <service behaviorConfiguration="Default" name="WcfNextIIS.ServiceC">
            <endpoint address="http://10.100.10.10:2210/Service.svc/staticip" binding="basicHttpBinding" contract="WcfNextIIS.IServiceC" />
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
              <!--<identity>
                <dns value="10.100.10.10" />
              </identity>-->
              <identity>
                <dns value="localhost"/>
              </identity>
            </endpoint>
            <host>
              <baseAddresses>
                <add baseAddress="http://192.168.1.1:2210/ServiceC" />
              </baseAddresses>
            </host>
          </service>
        </services>
        <behaviors>
          <endpointBehaviors>
            <behavior name="webBehavior">
              <webHttp/>
            </behavior>
          </endpointBehaviors>
          <serviceBehaviors>
            <behavior name="Default">
              <useRequestHeadersForMetadataAddress>
                <!--<defaultPorts>
                  <add scheme="http"
                       port="2210" />
                </defaultPorts>-->
              </useRequestHeadersForMetadataAddress>          
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>

    На клиенте

    app.config

     <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_IServiceC" maxBufferPoolSize="2147483647"
              maxReceivedMessageSize="2147483647" />
          </basicHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://10.100.10.10:2210/Service.svc/staticip"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServiceC"
            contract="ServiceReferenceSNC.IServiceC" name="BasicHttpBinding_IServiceC" />
        </client>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <useRequestHeadersForMetadataAddress/>
          </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>

    Когда в IIS нажимаю на Service.svc и делаю ОБЗОР, то всё работает на Localhost. 

    Все метаданные WCF сервиса в броузере видны и отображаются

    А вот из клиента по внешнему IP не находит данный сервис.

    Что я настроил неправильно?

    Спасибо


    • Изменено DevingAs 10 марта 2019 г. 19:19
    10 марта 2019 г. 19:18

Ответы

  • telnet пишет закрыт порт

    2ip пишет открыт

    Попробуйте зайти по внешнему ip на проблемный пк (сервер) не сам на себя а, из вне...

    На Брандмауэре разрешите входящие подключения, по умолчанию они запрещены:

    Панель управления\Все элементы панели управления\Брандмауэр Защитника Windows


    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram

    • Помечено в качестве ответа DevingAs 11 марта 2019 г. 12:10
    11 марта 2019 г. 12:03
    Модератор
  • Можно написать соответствие в файле hosts:

    gde-to-tam.ru - заменить на ваш url

    %WinDir%\System32\Drivers\Etc\hosts

    127.0.0.1 gde-to-tam.ru

    но не факт...


    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram

    • Помечено в качестве ответа DevingAs 11 марта 2019 г. 13:20
    11 марта 2019 г. 13:12
    Модератор

Все ответы

  • Смотрю на прошлый вас вопрос никто не ответил. Я в этом вопросе не разбираюсь. Но мне кажется использовать адрес роутера (ведь 192.168.1.1 - это обычно роутер) не правильно. Там скорее всего нужно либо внешний адрес 10.100.10.10, либо просто localhost.
    11 марта 2019 г. 6:27
  • Приветствую.

    Выложите скрин настроек проброса портов роутера.

    Из вне проверьте доступность порта по внешнему ip:

    telnet ip port

    то что вы выложили это:

    10.100.10.10 -- это Private network

    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram


    11 марта 2019 г. 6:37
    Модератор
  • Я адрес IP написал неправильно. Скопировал его из примера на StackOverFlow где то. А когда переносил код в форум не из той копии Web.config скопировал. Уже куча копий. В каждой копии свой вариант ничего не работает. Порты тоже менял и до 2000 системные и после 45000 и теперь 2200-2300 пробую

    :)

    11 марта 2019 г. 11:42
  • telnet пишет закрыт порт

    2ip пишет открыт

    11 марта 2019 г. 11:46
  • telnet пишет закрыт порт

    2ip пишет открыт

    Попробуйте зайти по внешнему ip на проблемный пк (сервер) не сам на себя а, из вне...

    На Брандмауэре разрешите входящие подключения, по умолчанию они запрещены:

    Панель управления\Все элементы панели управления\Брандмауэр Защитника Windows


    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram

    • Помечено в качестве ответа DevingAs 11 марта 2019 г. 12:10
    11 марта 2019 г. 12:03
    Модератор
  • А правилами не получится?

    Опасно как то полностью открывать входящие подключения.

    Оказалось что извне то он заходит.

    Сам из себя не заходит



    • Изменено DevingAs 11 марта 2019 г. 12:15
    11 марта 2019 г. 12:11
  • А правилами не получится?

    Опасно как то полностью открывать входящие подключения.

    Оказалось что извне то он заходит.

    Сам из себя не заходит



    Вам что нужно: что бы сам на себя заходил или из вне?

    Сам из себя не заходит - По внешнему IP?


    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram

    11 марта 2019 г. 12:21
    Модератор
  • А правилами не получится?

    Опасно как то полностью открывать входящие подключения.

    Оказалось что извне то он заходит.

    Сам из себя не заходит



    Правила, есть правила. По сути разрешено что не запрещено. Емнип вы открываете только то что разрешено правилами.

    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram


    11 марта 2019 г. 12:23
    Модератор

  • Вам что нужно: что бы сам на себя заходил или из вне?



    Мне нужно извне, но как быть с разработкой клиента и сервиса. Т.е. в разработке клиент обращается к локальному адресу, т.к. не может выйти и обратиться с внешнего, но в тоже время уже готовый клиент не из студии должен обращаться по внешнему адресу.

    Может это где то можно прописать в настройках debug / release?

    11 марта 2019 г. 12:42
  • Можно написать соответствие в файле hosts:

    gde-to-tam.ru - заменить на ваш url

    %WinDir%\System32\Drivers\Etc\hosts

    127.0.0.1 gde-to-tam.ru

    но не факт...


    Я не волшебник, я только учусь MCP, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Пометить как ответ" или проголосовать за полезное сообщение. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub, Instagram

    • Помечено в качестве ответа DevingAs 11 марта 2019 г. 13:20
    11 марта 2019 г. 13:12
    Модератор
  • Вроде это

    И это

    И это

    Вроде по этим ссылкам также можно что-то решить

    11 марта 2019 г. 13:15