我们正在将我们的内部网迁移到 SharePoint 和我们以前使用的系统,postgresql
因此我尝试让它与 SharePoint 一起工作,但这并不容易。
我尝试在 SharePoint 设计器上添加数据源并安装 ODBC(psqlODBC)和 OLEDB(PGNP)驱动程序,但即使这样,SharePoint 设计器上仍然出现错误(如下图所示)。
有趣的是,在 SharePoint 服务器上,我能够使用我安装的 OLEDB 提供程序通过 Excel 进行连接。
下面列出了我在查看 SharePoint 日志时遇到的错误,这些错误发生在两次 POST 期间(出于安全原因,域不是那个)(POST:https://sharepoint.com/_vti_bin/webpartpages.asmx:GetXmlDataFromDataSource)
:
05/21/2016 18:08:13.24 w3wp.exe (0x2714) 0x3D04 SharePoint Foundation Claims Authentication a1n25 High Token is for a windows account. e3827e9d-0814-1066-3883-8cc161d0f500
05/21/2016 18:08:13.26 w3wp.exe (0x2714) 0x3D04 SharePoint Foundation Claims Authentication a5rig High User key is not an encoded claim. UserKey: ' '. e3827e9d-0814-1066-3883-8cc161d0f500
答案1
这就是我解决问题的方法。
除非您安装 layer2solutions,否则 Sharepoint 将不会提供选择适当的外部数据源驱动程序的选项:
www.layer2solutions.com(这不是免费的)
这将为您提供所有列表设置页面上的一个名为“连接到外部数据源”的新链接,然后您可以选择“Postegresql 的 .Net 数据提供程序”,并使用下面的连接字符串连接到 PostgreSQL。
用户ID=用户;密码=密码;主机=postgresql_host_ip;端口=5432;数据库=数据库名称;
作为数据提供者,我使用了 npgsql:
https://github.com/npgsql/Npgsql/releases
(下载 msi 安装程序)。
- 安装 npgsql
- 安装 layer2solutions
- 在 SharePoint 中添加列表
- 转到列表设置
- 点击“连接外部数据源”
- 使用连接字符串和你的数据库设置
- 保存设置
- 为了在 Sharepoint 中创建新的列表项,Postgresql 表中的 ID(主键)需要有一个默认的序列值,否则您将收到“非空”错误。