0

我创建了一个 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 错误。

任何人都有任何想法可能是什么问题?

干杯,加文

4

2 回答 2

1

我遇到了同样的问题,我想我已经找到了解决方案。我必须在“管理信任”下将交换服务器使用的域根证书添加到 SharePoint。

在那之后,一切都像魅力一样!

于 2012-10-15T15:05:42.590 回答
0

ascx 控件可以作为运行 SharePoint 的帐户执行 Web 服务调用。该帐户可能无权访问 Exchange Web 服务。

于 2011-01-25T06:26:46.573 回答