我正在尝试使用SSIS 2012连接到SharePoint列表(SP 2010,内部部署)。我下载了适用于SQL Server 2012的SharePoint适配器,并且正在关注"提取和加载SharePoint数据的MSDN教程SQL Server Integration Services"。
对于我的生活,我似乎无法建立连接。我已经使用Connection Manager添加了一个SP连接,以及类型为" SharePoint List Source"的相应数据流任务。当我测试我的连接时,我收到417错误消息(下面)。我花了一整天的时间在网上寻找解决方案 - 各种错误的开始,但仍然没有运气。
其他人建议我通过将expect100continue= true
属性设置为false来抑制Error at Data Flow Task [SharePoint List Source [2]]: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (417) Expectation Failed. ---> System.Net.WebException: The remote server returned an error: (417) Expectation Failed.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
属性,但由于我使用的是SSIS,因此我不确定在何处更改此配置 - 请帮忙!
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
---内部异常堆栈跟踪结束---
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoap.GetListAndView(GetListAndViewRequest request)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoapClient.ListsService_ListsSoap_GetListAndView(GetListAndViewRequest request)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoapClient.GetListAndView(String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.Adapter.ListsAdapter.GetSharePointFields(String listName, String viewId)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListServiceUtility.GetFields(Uri sharepointUri, NetworkCredential credentials, String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.GetAccessibleSharePointColumns(String sharepointUrl, String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.ValidateSharePointColumns()
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.Validate()
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostValidate(IDTSManagedComponentWrapper100 wrapper)
在[0]处重新抛出异常:
Width="Auto"
答案 0 :(得分:0)
我在SQL Server 2008R2环境下使用了SSIS中CodePlex的SharePoint适配器。设置起来很棘手,也许我可以提供一些帮助,即使我没有使用2012版本。我记得有一些问题可能有关,可以提供帮助。
确保您在SSIS中的SharePoint数据源中提供了正确的信息。在“组件属性”下,必须填充三个必填字段才能建立连接:站点URL,站点列表名称和视图。我记得因为SharePoint的设置方式而难以确定要输入的正确站点列表名称。这是非常个性化的。以下SharePoint链接中定义的步骤将有助于验证您是否应用了正确的站点列表名称(站点ID)。
http://sharepointknowledgebase.blogspot.com/2011/11/how-to-find-out-site-id.html#.VV4qZunbKUk
连接后要注意的另一件事是修改SharePoint适配器中的映射。默认情况下,它将映射XML中可用的所有SharePoint字段。这可能会导致内存问题,几年前我向CodePlex报告过。如果尚未解决,只需删除未应用的映射链接。以下链接将有助于设置。
http://blogs.msmvps.com/ivansanders/2011/07/24/ssis-sharepoint-list-adapters/
希望这有帮助。