У меня есть служба WCF, размещенная в IIS, которая настроена с помощью привязки WebHttpBinding. Это тот же сервис WCF по умолчанию, который VS2008 создает при создании нового. Единственное, что я сделал, - это разрешил вызывать его из JavaScript.
В тестовом методе GetData (int value) я возвращаю строку, которая отображает IP-адрес, порт и идентификатор пользователя удаленного клиента. Все работает нормально, за исключением того, что я не ожидаю номер порта, который он возвращает. Я ожидаю порт 80, но вместо этого получаю что-то вроде 49353. Ниже приведен метод, который я вызываю.
public string GetData(int value)
{
OperationContext context = OperationContext.Current;
MessageProperties messageProperties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
return string.Format("Hello {0}! \r\naddress: {1}\r\nport: {2}\r\nuseragent: {3}",
value, endpointProperty.Address, endpointProperty.Port, WebOperationContext.Current.IncomingRequest.UserAgent);
}
Как я уже сказал, я вызываю этот метод из JavaScript. IIS настроен на порт 80, поэтому я не уверен, почему сообщается о порте неправильно.