атрибут ncacn_http
Ключевое слово ncacn_http определяет microsoft Internet Information Server (IIS) как семейство протоколов для конечной точки.
ncacn_http:rpc_server[endpoint]
-
rpc_server
-
Интернет-адрес или имя компьютера, на котором выполняется процесс сервера RPC.
-
endpoint
-
Известный (статический) TCP/IP-порт, прослушиваемый процессом сервера RPC.
Идентификация Microsoft Internet Information Server (IIS) в качестве семейства протоколов позволяет клиентским и серверным приложениям обмениваться данными через Интернет, используя Microsoft Internet Information Server (IIS) в качестве прокси-сервера. Так как вызовы туннелируются через установленный HTTP-порт, они могут пересекать брандмауэры.
Любой клиент RPC и серверные приложения могут поддерживать протокол ncacn_http при условии, что они связаны с интернет-информационным сервером. Iis связывается с RPC-сервером и устанавливает сокет TCP/IP, который он обслуживает для клиента. СЛУЖБЫ IIS согласовывают подключение TCP/IP с RPC-сервером и после завершения согласования выступает в качестве прокси-сервера RPC, перенаправляя данные между сокетом TCP/IP на стороне клиента и сокетом TCP/IP на стороне сервера. Когда прокси-сервер IIS RPC обнаруживает закрытие сеанса на стороне клиента или сервера, он закрывает оставшийся сокет.
Клиентское приложение неявно использует статическую привязку к СЛУЖБАм IIS, но сервер может использовать динамические конечные точки, при этом RPCSS сервера (сопоставитель конечных точек) разрешает порт сервера RPC. Если служба IIS находится на компьютере, отличном от RPC-сервера, служба IIS получает удаленный вызов, обращается к RPCSS на компьютере сервера RPC, чтобы получить конечную точку процесса сервера, а затем перенаправит вызов на соответствующий RPC-сервер.
Если установлен интернет-Обозреватель, транспорт будет проверка реестра, чтобы узнать, есть ли конфигурация для прокси-сервера HTTP. Если прокси-сервер существует, транспорт будет использовать его.
//RPC client accesses an RPC server application, which is listening on //endpoint 2225 of an IIS Web Server named major7.microsoft.com
[
uuid(12345678-1234-1234-1234-123456789ABC),
version(1.0),
endpoint("ncacn_http:major7.microsoft.com[2225]")
]
interface iface
{
// Interface definition statements.
}
//string binding format.
//IIS Web server (websvr1)is on a different machine than the RPC
//server, and endpoints are dynamic
"obj_uuid@ncacn_http:major7.microsoft.com
[,]"
//tells the transport to use proxysvr, port 80, as the outgoing http
//server:
"obj_uuid@ncacn_http:major7.microsoft.com[,]"