元々誰か他の人が書いたコードの一部が突然停止してしまいました。ExchangeServiceが突然共有カレンダーを表示しない
コードは、別のアカウントから共有カレンダーを見つけ、その中のイベントを取得する予定ですが、この共有カレンダーまたは共有カレンダーは検出されません。
私はカレンダーを共有しているアカウントにアクセスできないが、別のアカウントからカレンダーを共有しようとしましたが、どちらも表示されませんでしたが、スクリプトで使用されているアカウントでカレンダーを作成すると、 。 共有カレンダーは、アカウントにログインしても表示されます。イベントを作成して表示することができます。
私は交換の知識は限られていますが、私はこのスクリプトが必要です。
私は同じような問題で既に答えられた質問を見回し、いくつかの解決策を試しましたが、これまでに働いたことがなく、他の問題や知識の不足によって妨げられていませんでした。
私が認識しているこの目的のために変更されたものはありません。また、アカウントの所有者は、私がカレンダーへの完全なアクセス権を持ち、彼らの最後に何も変わっていないと主張しています。だから私はなぜこれが突然動作を停止するのか分かりません。
説明のため、エラーはありません。 try-catchは起動せず、スクリプトはフォルダのリストをページに出力します。 このリストには、サイトに表示されている共有カレンダーが含まれていないという問題があります。
const string EWSUrl = @"https://outlook.office365.com/ews/exchange.asmx";
const string EmailAdre = "myEmail";
const string EmailPass = "myPassword";
const string EmailDomi = "domi";
const string EmailCale = "targetAccount";
const int calFolderLimit = 200; // Limit on folder search
const int calMaxItemsReturned = 500; // Max limit cal fetch
const int calMonthLimit = 12; // How many months to fetch
const int calMonthBack = 1; // Update how many days back
// Tries to find one of this
const string calFolderName = "Ekonomi Årskalender";
const string calFolderID = "AQMkAGU5NTdjYTE5LTZiNWMtNDYzMi05MWQ4LWQ5MDcyMgA1YjMwMTYALgAAA5ukgsUdw+BFjn7iHZ02H3gBAM/bOclCwmFEsqKa2vRsw2EAAAIBWQAAAA==";
const string EWSUrl = @"https://outlook.office365.com/ews/exchange.asmx";
const string EmailAdre = "myEmail";
const string EmailPass = "myPassword";
const string EmailDomi = "domi";
const string EmailCale = "targetAccount";
const int calFolderLimit = 200; // Limit on folder search
const int calMaxItemsReturned = 500; // Max limit cal fetch
const int calMonthLimit = 12; // How many months to fetch
const int calMonthBack = 1; // Update how many days back
// Tries to find one of this
const string calFolderName = "Ekonomi Årskalender";
const string calFolderID = "AQMkAGU5NTdjYTE5LTZiNWMtNDYzMi05MWQ4LWQ5MDcyMgA1YjMwMTYALgAAA5ukgsUdw+BFjn7iHZ02H3gBAM/bOclCwmFEsqKa2vRsw2EAAAIBWQAAAA==";
protected string syncCalendar(HttpContext context)
{
string response = "";
try
{
// CONNECT TO EXCHANGE
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new WebCredentials(EmailAdre, EmailPass, EmailDomi);
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.EnableScpLookup = true;
service.AcceptGzipEncoding = true;
service.Url = new Uri(EWSUrl);
// Find Folder
FolderView folderView = new FolderView(calFolderLimit);
folderView.Traversal = FolderTraversal.Deep;
folderView.PropertySet = new PropertySet(FolderSchema.FolderClass, FolderSchema.DisplayName, FolderSchema.TotalCount, FolderSchema.ParentFolderId);
FindFoldersResults folders = service.FindFolders(new FolderId(WellKnownFolderName.Root), folderView);
foreach (var myFolder in folders.Folders)
{
if (myFolder is CalendarFolder && (myFolder.DisplayName == calFolderName || myFolder.Id.ToString() == calFolderID))
{
//Doing stuff with matched calendar folder
//Print name for debugging
response += "<div>" + myFolder.DisplayName + "</div>";
}
}
}
catch (Exception ex)
{
response += "[ERROR]<p>" + ex.Message + "<p/><p>" + ex.StackTrace + "</p>";
}
return response;
}
よく動作しないのは何ですか?何かエラーがありますか? – musefan
いいえ、私はそれを言及していた場合は、エラーはありません。スクリプトは共有カレンダーを返しません。 私はこれについての説明を投稿に追加しました。 – Forecaster