Невозможно подключиться к конечной точке 127.0.0.1 программно при локальном запуске Azure InternalEndpoint в эмуляторе

У меня проблемы с настройкой локальной среды для запуска желаемого развертывания Azure в эмуляторе.

У меня есть одна веб-роль (MyWebSite) с открытым (InputEndpoint) и одним WebRole с InternalEndpoint (MyServiceApplication), InternalSite имеет набор служб WCF, которые он предоставляет PublicSite.

т.е.

  <WebRole name="MyServiceApplication"  vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="MyInternalEndpoint" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InternalEndpoint name="MyInternalEndpoint" port="8083" protocol="http"></InternalEndpoint>
    </Endpoints>
  </WebRole>
  <WebRole name="MyWebSite" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
  </WebRole>

Я подключаюсь к конечным точкам MyServiceApplication программным способом с MyWebSite. то есть.

var applicationRole = RoleEnvironment.Roles["MyServiceApplication"].Instances.First().InstanceEndpoints["MyInternalEndpoint"].IPEndpoint;
var endPointAddress = string.Format("http://{0}:{1}/MyService.svc", applicationRole.Address, applicationRole.Port);
var channel = channelFactory.CreateChannel(new EndpointAddress(endPointAddress));

endPointAddress переменная оказывается http://127.0.0.1:8083/MyService.svc во время выполнения в Azure Emulator Express, однако он жалуется:

Там не было конечной точки прослушивания http://127.0.0.1:8083/MyService.svc что может принять сообщение.

Тем не менее, когда я перехожу к этой конечной точке через http://localhost:8083/MyService.svcУ меня нет проблем.

Итак, я думаю, вопрос в том, как я могу получить привязку InternalEndpoint к 127.0.0.1 в Azure Emulator Express (в отличие от localhost), или есть способ, которым я могу программно разрешить конечную точку, чтобы быть http://localhost:8083/MyService.svc?

Надеюсь, кто-то может помочь,

1 ответ

Решение

Для всех, кто интересуется, обе роли связываются с 127.0.0.1 (в отличие от localhost), когда я запускаю Visual Studio с правами администратора.

Не совсем уверен, почему это так, но это помогло мне.

Другие вопросы по тегам