我有一个SharePoint外部列表,指向100,000个记录SQL表.我必须在读取列表操作上设置过滤器,否则列表不起作用.它会在尝试返回完整列表时超时.所以我在操作中添加了一个大小为200的限制过滤器.
这个问题导致的是,当我使用CAML查询外部列表时,它只搜索返回的200个条目,而不是完整列表.
我希望它能够搜索整个列表,但最多只返回200个匹配条目.
我怎样才能做到最好?
我正在使用changelog incremental crawl方法编写自定义索引连接器.
我正在使用来自http://msdn.microsoft.com/en-us/library/ff625800%28v=office.14%29.aspx的示例并尝试为我更改它.
我的模型有下一个构造型:IdEnumerator,ChangedIdEnumerator,DeletedIdEnumerator,SpecificFinder,Finder,StreamAccessor
如果我开始完全爬网,将调用IdEnumerator,ChangedIdEnumerator,DeletedIdEnumerator.
第一个问题:没有调用SpecificFinder.
如果我开始增量爬网,将调用ChangedIdEnumerator和DeletedIdEnumerator.
DeletedIdEnumerator正在运行:已从索引中删除已删除ID的项目.
第二个问题:ChangedIdEnumerator无法正常工作.返回更改后的ID后没有任何反应.
Crowl日志中现在有错误.
我的模特在这里:
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="MyFileModel" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
<LobSystems>
<LobSystem Name="MyFileSystem" Type="Custom">
<Properties>
<Property Name="SystemUtilityTypeName" Type="System.String">MyFileConnector.MyFileConnector, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
<Property Name="SystemUtilityInstallDate" Type="System.DateTime">2013-01-01 00:00:00Z</Property>
<Property Name="InputUriProcessor" Type="System.String">MyFileConnector.MyFileLobUri, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
<Property Name="OutputUriProcessor" Type="System.String">MyFileConnector.MyFileNamingContainer, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
</Properties>
<LobSystemInstances>
<LobSystemInstance Name="MyFileConnector_instance">
<Properties>
<Property Name="AuthenticationType" Type="System.String">Credentials</Property>
</Properties>
</LobSystemInstance>
</LobSystemInstances>
<Entities>
<Entity Name="MyFolder" Namespace="MyFileConnector" Version="1.0.0.1">
<Properties>
<Property Name="Title" Type="System.String">Name</Property>
</Properties>
<Identifiers>
<Identifier Name="ID" TypeName="System.String" />
</Identifiers>
<Methods>
<!-- IdEnumerator --> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将外部内容引入我们的SharePoint环境.我们正在运行SP 2010.我想引入的数据存在于Sql Server中.我正在努力做的是将登录的SharePoint用户映射到底层的sql用户.
在SharePoint中,我在Secure Store Serivce中创建了一个新的目标应用程序:目标应用程序ID:TestApp 目标应用程序类型:组
我指定了两个字段:
名称::类型
用户名::用户名
密码::密码
- 这些不是Windows用户名和Windows密码类型只是基本类型
目标应用程序管理员和成员都设置为我自己(AD用户).
在SharePoint Designer中,我创建了一个新的外部内容类型.我添加了(Type - > Sql Server)的连接.我已将数据库服务器名称设置为与SharePoint不在同一个框中的服务器名称,并且我已设置数据库名称.我选择了Connect with Impersonated Custom Identity选项并将Secure Store Application Id设置为TestApp.当我单击"确定"时,系统会提示我输入凭据,因此我输入了Sql Server用户凭据,连接成功.我展开表格,右键单击我想要访问的表格,然后单击" 创建所有操作".我通过向导并输入一个限制过滤器.
接下来,我在" 外部内容类型"窗口中右键单击"MyTable" ,选择" 外部列表",并为其命名.接下来,我进入Central Admin并设置TestApp的凭据.
现在,当我登录SharePoint时,我可以在左侧TOC中看到我的外部列表.我点击列表,我得到错误的业务数据连接拒绝访问与相关代码.我已经打开日志来查看返回的内容有哪些有趣的日志,但我不确定如何解决问题:
日志:
用户'0#.w | domain\myuser拒绝访问,这可能是'domain\myuser'的模拟.具有名称"读取列表"的安全MethodInstance具有包含的ACL
另一个日志:
执行Web部件时出错:Microsoft.SharePoint.SPException:Business Data Connectivity拒绝访问.--->拒绝访问用户'0#.w | domain\myuser',这可能是'domain\myuser'的冒充.具有名称"读取列表"的安全MethodInstance被拒绝访问.
我知道,如果我使用通过信用卡,我们将需要kerbors来处理双跳,但我认为我不需要kerbos与信任映射到SQL服务器用户.
任何帮助将不胜感激!!!!
我使用.NET连接器连接到SQL数据库.其中一个值是URL.现在我需要将其显示为URL.
关于如何解决这个问题的任何想法?