Как обнаружить агент пользователя в веб-сервисе WCF

Как я могу обнаружить агент пользователя в веб-сервисе? Мой веб-сервис реализован с помощью веб-сервиса WCF с basicHTTPBinding. Это будет сообщение от некоторых клиентов SOAP. Я хочу знать агент пользователя от клиентов.

Мне понравится видеть некоторый пример кода для этого.

Я использую базирующийся веб-сервис WCF и в svc.cs, я пытался поймать this.Context.Request.UserAgent. Но это дает следующую ошибку:

this.Context.Request.UserAgent 'MySoapService.MyService' does not contain a definition for 'Context' and no extension method 'Context' accepting a first argument of type 'MySoapService.MyService' could be found (are you missing a using directive or an assembly reference?)

Я также попробовал System.Web.HttpContext.Current.Request.UserAgent и это говорит:

'System.Web.HttpContext.Current' is null

Примечание редактирования:

Я пытался активировать режим эмуляции ASP.NET. Я добавил <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> в файле конфигурации и добавил [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] на вершине класса, который реализует сервисный интерфейс. Затем использование Системы. Сеть. HttpContext. Текущий. Запрос. UserAgent дает мне агент пользователя, как желаемый.

6
задан Kangkan 27 August 2010 в 09:36
поделиться

3 ответа

Вы можете прочитать агент пользователя из объекта HttpContext.Current.Request, если включите совместимость с ASP.NET в web.config:

3
ответ дан 8 December 2019 в 15:59
поделиться

User-Agent - это стандартный заголовок HTTP. Он будет доступен для вашего веб-сервиса так же, как он доступен для чего-либо подобного CGI.

Вы пытались найти это перед тем, как опубликовать свой вопрос? Для этого в Google должны быть миллионы просмотров.

-6
ответ дан 8 December 2019 в 15:59
поделиться

Какой совершенно бесполезный ответ!

Это нетривиальная задача. Да, очевидно, что можно получить строку пользовательского агента, но как это сделать на самом деле? Я потратил 2 часа на проверку google и так далее, но нашел ответ в документации MSDN. В Visual Studio из WebMethod попробуйте

this.Context.Request.UserAgent

. Это должно сработать!

0
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: