2013-04-23 3 views
1

Итак, я пытаюсь обнаружить мобильные запросы в .net 4..net Mobile Detection Несогласованность

я обнаружил Request.Browser.IsMobile и Request.Browser.MobileDeviceModel. Это отлично работает на моей среде ноутбуков Windows 7. Использование моего iPad: IsMobile=true и MobileDeviceModel="IPad".

Но когда я проверяю это на Windows 2008 Server, я получаю IsMobile=false и MobileDeviceModel="Unknown".

После покопаться на некоторое время, я обнаружил эти свойства подпитываются XML-файлы в каркасных .net папок: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers И тогда я заметил, что браузеры моего лэптоп \ iphone.xml имеет Скины данные, в то время как мой сервер аналогичные папка и тот же файл не содержат информацию ipad.

<browsers> 
    <gateway id="IPhone" parentID="Safari"> 
     ... 
    </gateway> 

    <gateway id="IPod" parentID="Safari"> 
     ... 
    </gateway> 

    <gateway id="IPad" parentID="Safari"> 
     <identification> 
     <userAgent match="iPad" /> 
     </identification> 

     <capabilities> 
     <capability name="isMobileDevice"   value="true" /> 
     <capability name="mobileDeviceManufacturer" value="Apple" /> 
     <capability name="mobileDeviceModel"  value="IPad" /> 
     </capabilities> 
    </gateway> 
</browsers> 

Мое первое, хотя это копирование файлов моего браузера на сервер. Но я хочу убедиться, что это безопасно и правильно. Почему у моего ноутбука эти дополнительные устройства, но не мой сервер? Это точная версия .net. И, копирование этих файлов за единственное, что мне нужно сделать?

ответ

3

Вы уверены, что на вашем ноутбуке нет .NET 4.5? Он установлен в том же месте в C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30313, что немного вводит в заблуждение. Если вы используете VS2012, у вас скорее всего будет установлен .NET 4.5, который может иметь дополнительную конфигурацию браузера.

В любом случае, тогда да, вы должны просто перенести этот файл на свой сервер или обновить свой сервер до .NET 4.5, если вы решите, что у вас действительно несоответствующие версии.

0

Мы должны были сделать это на наших производственных серверах, потому что мы еще не были готовы к обновлению до .NET 4.5, но имели проблемы с обнаружением браузера, которые заставляли ASP.NET думать, что IE 10 и 11 не поддерживают JavaScript. Исправление заключалось в том, чтобы скопировать файлы .browser с компьютера .NET 4.5 на производственные веб-серверы и перекомпилировать файлы .browser. Обратите внимание, что перекомпиляция не является бесплатной, так как это приведет к перезагрузке IIS, сбою любого пользователя. Также обратите внимание, что мы пробовали это в наших более низких интеграционных средах, прежде чем подталкивать это к производству.