1

現在、Windows Azure サービスに取り組んでおり、Exchange サーバーからいくつかのアイテムをインポートする必要があります。ローカル エミュレーターでテストするとすべて正常に動作し、アイテムをインポートできますが、クラウドに展開すると動作しなくなります。

これは私が得る例外です:

例外の種類: ServiceResponseException 例外メッセージ: 内部サーバー エラーが発生しました。操作に失敗しました。

私が使用するコード:

service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.UseDefaultCredentials = false;
service.Credentials = new NetworkCredential(userName, password, domain);
service.Url = new Uri(serverUrl);

itemPropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
itemPropertySet.RequestedBodyType = BodyType.Text;

CalendarView calendarView = new CalendarView(fromDate, toDate);
List<ExchangeTask> tasks = new List<ExchangeTask>();
try
{
    FindItemsResults<Appointment> appointments = service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

    if (appointments.TotalCount > 0)
    {
        service.LoadPropertiesForItems(appointments, itemPropertySet);
    }
    foreach (Appointment app in appointments)
    {
        tasks.Add(new ExchangeTask() { Name = app.Subject, Description = app.Body, DeadLine = app.End.ToString() });
    }
    return tasks;
}
catch (Exception ex)
{
    throw ex;
}

編集 1: ファイアウォールの問題ではありません。ユーザー名またはパスワードを間違って入力すると、不正な例外がスローされ、サーバーに接続されるためです。

4

2 に答える 2

1

3日間の痛みの後、私は問題を解決しました。問題は、クラスのコンストラクターでタイム ゾーンを指定しなかったことです。ExchangeService私のコンストラクタは次のようになります。

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));

于 2013-04-05T11:29:57.527 に答える