我正在尝试使用c#查找Exchange Server 2007的所有会议室。我通过使用EWS托管API找到了一种简单的方法:
http://msdn.microsoft.com/en-us/library/exchange/hh532566(v=exchg.80).aspx
不幸的是,GetRoomLists()不适用于Exchange Server 2007.我希望如果有人工作或知道如何在Exchange Server 2007上找到会议室,那将是一个很好的帮助。我希望在Exchange服务器上看到所有可用的会议室,然后想要使用它们的属性。
有没有办法可以显示所有现有的房间,然后使用其属性,如电话/备注标签信息?
我正在使用LDAP,但它一直给我错误“服务器无法运行”。我想可能是我使用了错误的凭证。因此我尝试使用谷歌并没有帮助我。
随函附上我的代码: -
using (DirectoryEntry dir2 = new DirectoryEntry("LDAP://www.google.com/DC=www,DC=google,DC=com", null, null, AuthenticationTypes.Encryption))
{
dir2.RefreshCache();
DirectorySearcher adSearch = new DirectorySearcher(dir2);
adSearch.Filter = "(&(objectClass=*)(msExchRecipientDisplayType=7))";
SearchResultCollection adResult = adSearch.FindAll();
foreach (SearchResult item in adResult)
{
ResultPropertyCollection property = item.Properties;
ResultPropertyValueCollection name = property["name"];
ResultPropertyValueCollection proxyAddresses = property["proxyAddresses"];
ResultPropertyValueCollection legacyExchangeDN = property["legacyExchangeDN"];
..........
}
}
它给出了封闭代码的错误: -
dir2.RefreshCache();
我不确定,我做错了什么。我尝试过不同的LDAP值,如: -
using (DirectoryEntry dir2 = new DirectoryEntry("LDAP://ldap.google.com/DC=www,DC=google,DC=com", null, null, AuthenticationTypes.Encryption))
using (DirectoryEntry dir2 = new DirectoryEntry("LDAP:///DC=www,DC=google,DC=com", null, null, AuthenticationTypes.Encryption))
using (DirectoryEntry dir2 = new DirectoryEntry("LDAP://DC=www,DC=google,DC=com", null, null, AuthenticationTypes.Encryption))
但没有什么能真正帮助我。
你知道我做错了吗?
附上请找到堆栈跟踪:
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.RefreshCache()
at Test_Exchange.Program.Main(String[] args) in C:\Inetpub\wwwroot\Test Exchange\Test Exchange\Program.cs:line 26
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
非常感谢任何帮助或建议。
提前致谢!!
答案 0 :(得分:0)
我想分享我做错了什么。它可能会帮助别人。 它现在运作良好。问题是AD名称错误。 请与IT或管理员确认您是否使用了正确的Active Directory名称。
干杯!!