Я работаю над сервисом, который будет поддерживать мобильные приложения на платформах Android, BlackBerry, iOS и WP7.Эти приложения будут подключаться к различным службам WCF на основе REST, над которыми я работаю.Я хотел бы посмотреть, какую информацию клиентское приложение передает моему сервису.Чтобы сделать это, я написал текущую операцию в моей службе WCF:
[OperationContract]
[WebGet(UriTemplate = "/GetRequesterInfo")]
public string GetRequesterInfo()
{
OperationContext context = OperationContext.Current;
string message = "Session ID: " + context.SessionId;
return message;
}
Когда я вызываю этот код, я замечаю, что SessionId
- пустая строка.Кроме того, я хотел бы получить как можно больше информации о клиенте.Например, если бы это был ASP.NET, я мог бы использовать объект HttpRequest
и получить:
- HttpMethod
- IsLocal
- IsSecureConnection
- RequestType
- Url.AbsoluteUri
- Url.OriginalString
- UserAgent
- UserHostAddress
- UserHostName
- Browser.Id
- Browser.Browser
- Browser.CanInitiateVoiceCall
- Browser.ClrVersion.Minor
- Browser.Cookies
- Browser.EcmaScriptVersion
- Browser.GatewayVersion
- Browser.InputType
- Browser.MobileDeviceManufacturer
- Browser.MobileDeviceModel
Хотя есть и другие свойства, я 'я уверен, что вы поняли идею.Это приводит меня к нескольким вопросам:
- Как мне получить поток запросов, связанный с запросом к моей службе WCF?Я думал, что для этого и нужен OperationContext.Но я открыт для исправления.
- Как получить все имена / значения свойств, связанные с запросом к службе WCF?
- Я спрашиваю что-то, что имеет смысл, илиЯ с моего рокера?Похоже, я должен быть в состоянии получить некоторую информацию о запрашивающем клиенте.