7

Exchange 2010 サーバーで Exchange Web サービス (ews) に接続しようとしています。私が使用しているコードは次のとおりです。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Exchange.WebServices.Data;

namespace NDR_Processor
{
    class Program
{
    static void Main(string[] args)
    {
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
        service.Credentials = new System.Net.NetworkCredential("redacted", "redacted", "redacted");

        service.Url = new Uri("https://exchange.redacted.net/EWS/Exchange.asmx");

        System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

        FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(1000));

        foreach (Item item in findResults.Items)
        {
            Console.WriteLine(item.Subject);
            Console.WriteLine(item.Body);

        }
    }
}
}

ただし、そうすると、「サービスから受信した応答に有効な XML が含まれていませんでした」というエラーが表示されます。内部例外は次を示します: {"ルート レベルのデータが無効です。1 行目、1 番目の位置。"}

Web ブラウザでhttps://exchange.redacted.net/EWS/Exchange.asmxにアクセスしようとしましたが、ログインするように求められ、有効な XML ドキュメントが表示されます。そのため、アプリケーションが窒息している理由がわかりません。

なぜこれが起こっているのか、どうすれば解決できるのか、誰か考えがありますか?

ありがとうブラッド

4

2 に答える 2

6
service.Url = new Uri("https://mail.tencent.com/EWS/Exchange.asmx");

詳細情報はこちら: c# プログラムで Exchange サーバーから電子メールを読み取る

于 2013-01-11T07:11:06.687 に答える
3

次のフォーラム投稿で説明されているのと同じ問題が発生していました:http ://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/thread/e54c217f-28ff-4626-8ce8-a1242081f4d1/

(本質的に、余分な文字が接頭辞として追加され、返されたxmlに追加されていたため、上記のエラーが発生していました)

何か助けがあれば-EWS仮想ディレクトリを削除して再作成しても問題は軽減されませんでした。

おそらく、F5ロードバランサーまたはいくつかの中間デバイスがXMLの最初または最後に余分な文字を挿入していると思います。

コードを次のように変更した場合:service.Url = new Uri( "https:// 192.168.xx /EWS/Exchange.asmx");

(基本的にExchangeサーバーの内部IPアドレスを使用)リクエストは正常に機能しました。つまり、交換以外の何かがXMLを操作しています。

于 2012-07-08T14:04:11.783 に答える