1

だから、私は.net 4でモバイルリクエストを検出しようとしています.

Request.Browser.IsMobile と Request.Browser.MobileDeviceModel を発見しました。これは、私の Windows 7 ラップトップ開発環境でうまく機能します。iPad の使用: IsMobile=true、およびMobileDeviceModel="IPad".

しかし、これを Windows 2008 Server で確認するIsMobile=falseと、 とMobileDeviceModel="Unknown".

しばらく調べてみたところ、これらのプロパティが .net フレームワーク フォルダー内の xml ファイルによって強化されていることがわかりました。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers そして、ラップトップの Browsers\iphone.xml には ipad 情報が含まれているのに、サーバーの同じフォルダーと同じファイルには含まれていないことに気付きました。 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 バージョンです。そして、私がする必要があるのはこれらのファイルをコピーすることだけですか?

4

2 に答える 2

0

まだ .NET 4.5 にアップグレードする準備ができていなかったので、運用サーバーでこれを行う必要がありましたが、ASP.NET が IE 10 および 11 が JavaScript をサポートしていないと判断する原因となったブラウザー検出の問題がありました。修正は、.browser ファイルを .NET 4.5 マシンから運用 Web サーバーにコピーし、.browser ファイルを再コンパイルすることでした。再コンパイルは、IIS をリセットし、ユーザーを追い出す原因となるため、無料ではないことに注意してください。また、これを本番環境にプッシュする前に、統合の低い環境でこれを試したことにも注意してください。

于 2014-09-30T22:07:53.527 に答える