2011-10-19 5 views
2

私にはかなり混乱している人がいると思います。シルバーライトがMacで動作することがあります。

私はAzure(最新のSDK)上で動作するSilverlight 4アプリを持っています。 Silverlightは、データを取得してデータベースに書き込むためにWCF Data Service呼び出しを使用する典型的なアプリケーションです。これはすべてPC上で正常に動作します。しかし、すべてのブラウザでMacを実行している場合、アプリケーションの95%で動作します。しかし、うまくいかない作品が1つあります。

私のSilverlightアプリケーションは、フォームに入力された情報を取り込み、WCF Data Service呼び出しをフォーマットしてLuceneインデックスファイルからレコード数を取得します。サービスはインデックスカウントを取得し、それを(Visual Studioエンティティデータモデルを使用して)定義したエンティティの1つにパッケージし、そのオブジェクトをサービスからSilverlightアプリケーションに戻します。問題は正しい番号を返さないということです。私のデバッグは、0が返されていることを示しているようです。繰り返しますが、これはMacの場合のみです。どのPC上のブラウザでも正しい番号が返されます。もう一度、私がSilverlightアプリケーションから作成したWebサービスの呼び出しがすべてMac上で正しく返されていることを確認してください。

何が起こっているのかについて誰かが考えていますか?詳細を記入してください。

おかげ

+0

フォームにはどのような種類のデータが入力されていますか?私はLuceneのものはサーバー側で行われていると仮定していますか? –

+0

マットに戻ってくれてありがとう。問題は、データが(サーバー上の)Luceneインデックスファイルに渡されていることが判明しました。 – Chris

答えて

2

は、他の誰がこれまでに同様の問題に遭遇した場合に私の解決策で更新したいと考えました。

フォームの2つのフィールドのデータは、日付(具体的な開始日と終了日)です。私はこれらの値を読んで、年を抽出してから自分自身のDateTimeオブジェクトを作成していました。これが問題の発生場所です。 Mac Silverlightは、PC Silverlightとは異なる方法でDateTimeオブジェクトをフォーマットします。 PC Silverlightは正しくフォーマットされました(2011年1月1日0:00:00)一方、Mac Silverlightは私のタイムゾーンに基づいて誤ってフォーマットされました(1/1/11の12:00:00 AM -5:00)。

私の解決方法は、自分のLuceneインデックスを照会したWebサービスに最終的に渡す文字列形式にするために、日付を自分自身を文字列にフォーマットすることでした。