Я работаю над сервисом, который будет поддерживать мобильные приложения на платформах Android, BlackBerry, iOS и WP7. Эти приложения будут подключаться к различным службам WCF на основе REST, над которыми я работаю. Я хотел бы узнать, какую информацию клиентское приложение переходит на мою службу. В попытке сделать это, я написал текущую операцию в моей службе WCF:Получение информации о запросах в службе 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?
- Я прошу что-то, что имеет смысл, или я с моего коромысла? Похоже, я должен получить некоторую информацию о запрашивающем клиенте.
Я не в состоянии получить доступ к программному MessageProperties 'значения. messageProperties.Values [2] 'вызывает эту ошибку: ' Невозможно применить индексирование с [] к выражению типа 'System.Collections.Generic.ICollection
@ADC, попробуйте получить доступ к его коллекции ключей. См. Выше на картинке, что перечислены не значения, это AllKeys. –