我创建了一个 ascx 控件,用于通过其 Web 服务访问 Exchange 2010 的 Sharepoint。在它自己的 ASP.NET 测试站点(包装在一个简单的 aspx 页面中)运行时,一切正常。一旦在 Sharepoint 中使用该控件,就会遇到“找不到自动发现服务”错误。
ascx 控件的 dll 背后的代码已被放入 GAC 和 Microsoft.Exchange.WebServices.dll
Microsoft.Exchange.WebServices.dll 也已添加到共享点站点的 web.config 中的安全控制列表中:
<SafeControl Assembly="Microsoft.Exchange.WebServices, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Exchange.WebServices" TypeName="*" Safe="True" />
我可以 ping 自动发现服务并从 Sharepoint 服务器访问 Exchange Web 服务 URL https://mydomain.com/EWS/Services.wsdl 。
用户名和密码正在 ascx 后面的代码中发送到服务:
Dim service As ExchangeService = New ExchangeService()
service.Credentials = New WebCredentials(usrExchange, pwdExchange)
service.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, email)
有趣的是,如果我将 URL https://mydomain.com/EWS/Exchange.asmx指定给服务,我会收到 405 Method not allowed 错误。
任何人都有任何想法可能是什么问题?
干杯,加文