2011-01-25 53 views
0

我创建了一个ascx控件,用于Sharepoint,通过它的Web服务访问Exchange 2010。当它运行在它自己的ASP.NET测试网站(包装在一个简单的aspx页面中)时,一切正常。只要在Sharepoint中使用控件,就会遇到“自动发现服务无法找到”错误。Exchange不能从Sharepoint自动发现

背后的dll的ascx控件的代码已被摔落到GAC也Microsoft.Exchange.WebServices.dll

Microsoft.Exchange.WebServices.dll也被添加到网络安全控制列表为的.config SharePoint网站:

<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不允许的方法错误。

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

干杯,加文

+0

干杯Pradeep会做。不知道那个! :) – Gavin 2011-01-25 22:46:55

+0

有趣的是,这可以在开发框中正常工作,它只是导致405错误的活动框。我可以使用网络浏览器从两个框中访问https://mydomain.com/EWS/Services.wsdl,没有任何问题。 – Gavin 2011-01-28 00:07:04

回答

0

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

1

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

之后,一切工作就像一个魅力!