0

Live Connect SDK 5.0を使用して、WindowsPhone7.5アプリケーションからSkyDriveから画像を取得しています。

以下のアプリケーションコード(簡略化)は、数日前まで機能していました。ここで、imageStream(またはコールバックでキャプチャされたその他の情報)にアクセスしようとすると、System.Argument例外(HResult = -2147024809、「値が期待される範囲内にありません」 )が発生しますが、通常どおり、問題の値はそうではありません。言及された)。コードベースを確認しましたが、最近、製品のこの領域でコードの変更はありませんでした。

APIの変更はありましたか?サーバーからより多くの情報が送信されることを期待して、ネットワークトラフィックを検査する方法(Fiddler、ただしIEではないアプリケーションの場合)はありますか?干渉する可能性のあるキャッシュされているローカル値はありますか?

関連するコードは次のとおりです。

public partial class OptionsPage : PhoneApplicationPage
{
    private LiveConnectClient _liveClient = null;

    public OptionsPage()
    {
        InitializeComponent();
    }

    private void OnSessionChanged(Object sender, LiveConnectSessionChangedEventArgs args)
    {
        if (args != null && args.Session != null && args.Session.Status == LiveConnectSessionStatus.Connected)
        {
            this._liveClient = new LiveConnectClient(args.Session);
        this.GetUserPicture();
        }
    }

    private void GetUserPicture()
    {
        var memoryStream = new MemoryStream();
        _liveClient.DownloadCompleted += new EventHandler<LiveOperationCompletedEventArgs>(this.GetUserPictureCallback);
        _liveClient.DownloadAsync("/me/picture?return_ssl_resources=true", memoryStream, memoryStream);
    }

    private void GetUserPictureCallback(object sender, LiveOperationCompletedEventArgs e)
    {
        _liveClient.DownloadCompleted -= this.GetUserPictureCallback;

        try
        {
            if (e.Error == null)
            {
                MemoryStream imageStream = e.UserState as MemoryStream;
                BitmapImage b = new BitmapImage();
                b.SetSource(imageStream);
            }
            else
            {
                MessageBox.Show(e.Error.Message, "Windows Live Error", MessageBoxButton.OK);
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "SkyDrive Exception", MessageBoxButton.OK);
        }
    }
}

また、SignInButtonは次のように定義されています。

        <live:SignInButton Content="Button" Height="65" HorizontalAlignment="Left" Margin="110,41,0,0"
            Name="signInButton1" VerticalAlignment="Top" Width="215" ClientId="[REAL_CLIENT_ID]" 
            Scopes="wl.offline_access wl.signin wl.basic wl.skydrive wl.skydrive_update"
            RedirectUri="https://oauth.live.com/desktop"
            Branding="Skydrive"
            TextType="SignIn"
            Background="Red"
            SessionChanged="OnSessionChanged" />
4

1 に答える 1

0

Live ConnectSDK5.0のベータ版を使用していたようです。RTMバージョンにアップグレードすると(そして必要なコード変更を加えると)、再び機能し始めました。

于 2012-01-14T17:52:55.293 に答える