2015-01-13 3 views
1

У меня следующая ситуация:Неправильный агент пользователя WP8.1 на IISExpress

  • Я хостинг локальный сервер с WebMatrix 3 (использует внутренне IISExpress), PHP 5.5
  • Я открыл WebMatrix для обслуживания внешних (т.е. в LAN) трафик по
    • командной строки netsh http add urlacl url=http://mycomputername...:8080/ user=\Jeder (все на немецком языке)
    • связывания локального хоста на mycomputername в ApplicationHost.config <binding protocol="http" bindingInformation="*:8080:mycomputername" />
    • открыл входящие запросы в моем брандмауэре для порта 8080
  • Я установил Кирби CMS на локальный сервер, который я могу связаться с по локальной сети с WP8.1 Lumia 1020 и Nexus 5. При обращении к администратору panel Я получаю ошибку http 500 на IE на Lumia не на Nexus.

Я проверил пользовательские агенты на <?php echo $_SERVER['HTTP_USER_AGENT'];?>, что приводит к правильной строке для Nexus 5, но не для Lumia. На внешней ua-checker Lumia правильно возвращает "Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; tv:11.0; IEMobile/11.0; NOKIA; 909) like Gecko".

Но локально Lumia возвращает Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; NOKIA; 909).

Это также регистрируется, например, в IIS-Logfiles (IISExpress/Журналы/МойВебСайт/ex150112.log)

#Software: Microsoft Internet Information Services 8.0 
2015-01-12 23:28:22 ... POST /panel/login - 8080 - ... Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+Phone+OS+7.0;+Trident/3.1;+IEMobile/7.0;+NOKIA;+909) http://mycomputername:8080/panel/login 500 0 0 93 

Я думаю, что IEMobile может быть внутренне, используя некоторые режим совместимости, мы знаем от Desktop-IE , Но почему именно для этого локального сайта?

Короче говоря, почему IEMobile/WP8.1 отправляет неверную строку пользовательского агента? Это из-за странной установки IISExpress PHP5.5, что приводит к ложному обнаружению? Или WP8.1 всегда отправляет ложный ua на локальный сайт Webmatrix? Или это ошибка в IEMobile? И как можно изменить полученный ua на стороне сервера на правильный ua?

+0

Нет подсказки, если это ошибка или нет, но ваша первая строка указывает IE11, а вторая указывает, что она работает в режиме совместимости IE7 (что раздражает). Может быть, вы можете отключить это и заставить его работать правильно? – Machavity

+0

Как отключить режим совместимости на телефоне Windows? Или я могу быть серверным? – TrantSteel

+0

Вы должны ответить на свой вопрос и пометить его как принятый, чтобы другие, которые узнали об этом, знают, что это было. – Machavity

ответ

0

Я установил его самостоятельно (источник: http://msdn.microsoft.com/de-de/cc817572.aspx) Я просто добавил пользовательский заголовок http для отключения wp8 для выбора режима совместимости для сайтов интрасети следующей записи в web.config.

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <clear /> 
      <add name="X-UA-Compatible" value="IE=EDGE" /> 
     </customHeaders> 
     </httpProtocol> 
</system.webServer>