解決策が見つからない問題があり、このエラーが発生したのは私だけだとは信じがたいです。
ポータブル クラス ライブラリにこの C# コードがあります。
static public void GetAnimeListFromWeb(ObservableCollection<AnimeViewModel> collection, string Url, string encodedLogin = "")
    {
        WebRequest request = WebRequest.Create(Url);
        request.Headers["Authorization"] = encodedLogin;
        IAsyncResult asyncResult = request.BeginGetResponse(new AsyncCallback( s => {
            WebResponse response = (s.AsyncState as WebRequest).EndGetResponse(s);
            XDocument doc = XDocument.Load(response.GetResponseStream());
            IEnumerable<AnimeViewModel> result = ParseAnimeXML(doc);
            collection = (ObservableCollection<AnimeViewModel>)result;
        }), request);
    }
これをコンパイルするとビルドされ、テスト用に書いた小さなコンソール プログラムでもコードが動作します。ただし、Windows Phone 8 アプリでテストすると、クラッシュします。
WebResponse response = (s.AsyncState as WebRequest).EndGetResponse(s);
ArgumentException をスローします。「s」変数を調べたところ、AsyncWaitHandle が NotSupportedException を返したことがわかりました。
私の質問は、すべてのプラットフォームで機能する適切な Webrequest を作成するにはどうすればよいですか?
編集: .NET 4.5、SL4 以降、WP7 以降、Windows ストア アプリ用の .NET をターゲットにしていることに注意してください。