1

MVVMCrossのポータブルライブラリでWindowsPhoneのGZip圧縮を有効にするために少し助けが必要です。

WCFサービスを使用していて、WPに接続しようとしましたが、数秒後にリモートサーバーが見つからないという例外が発生しました。Silverlightで接続しようとしましたが、正常に動作します。何時間も経った後、フィドラーのおかげで、私の問題は圧縮にあり、データは圧縮され、WPはそれを読み取らないと思います。また、IIS構成で圧縮をオフにしようとしましたが、問題はまだオンになっています-(fiddler、Accept-Encoding:gzip、delate、sdch; Content-Encoding:noneで確認)。これは、新しいプロジェクトによって作成されたデフォルトのWCFサービスを備えたデフォルトのWindowsPhoneクライアントを使用します。

どんなアイデアでも大歓迎です。前もって感謝します

私のコードは次のとおりです。

WcfMobileServiceClient db = new WcfMobileServiceClient();

db.CheckConnectionCompleted + =(sender、args)=> {};

db.CheckConnectionAsync( "test");

更新:WindowsPhoneをWCFに接続する際の問題は、VS2012上のWP8のエミュレーターにありました。ネットワークが分離されています。詳細については、こちらをご覧ください:http: //msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580 (v=vs.105).aspx

4

2 に答える 2

0

これは PCL とは独立しており、MvvmCross とは独立しているようです。最初に WCF を使用して WP で解決する方法を考えてから、インターフェイスまたは抽象化レイヤーを追加して PCL の圧縮コードを使用することを検討してください。


私の知る限り、これは WindowsPhone のみの問題です。Droid、Touch、WPF、および RT はすべて、追加のコードを必要とせずに圧縮をサポートしていると思います。

ただし、WindowsPhone の Compact Framework のネットワーク スタックは GZip をサポートしていないため、GZip データを要求しない (ネットワーク パフォーマンスに悪影響を与える) か、独自の解凍実装を提供する必要があります。

非 PCL プロジェクトでは、圧縮サポートを提供することはかなり簡単です。いくつかの解決策が利用可能です。

これが機能するようになると、依存性注入などの手法を使用して PCL プロジェクトでこれを使用できるようになります (以前の質問「MVVMCross Portable を WCF DataService に接続する」を参照してください。Is it possible?を参照してください) 。

于 2013-02-18T20:58:16.953 に答える
-1

Windows Phone 用の GZipWebClient を確認してください。

https://github.com/dotMorten/SharpGIS.GZipWebClient

于 2013-02-18T23:05:11.140 に答える