问题标签 [sharepoint-2016]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
566 浏览

sql-server - Database size increase after restoring

Recently my team did a sharepoint migration from 2013 to 2016. We used the Attach and Detach method for the database from SQL Server 2008r2 to SQL Server 2012. It was successful however the database size has increased by about 3 times.

When i take a look at the database files there is duplicated files. In 2008 database there is 2 files but in 2013 there is 6 files causing the increase of 3 times.The 2 files duplicated by 3 so now i have 6 files.

I would like to have an explanation. Is there anyone who know what cause the file to duplicate or a link to an article regarding this?

In addition i would also like to know how can i resize the database size back to how i was? Meaning i would like it to be back to its original size.

Thank you very much.

0 投票
0 回答
88 浏览

sharepoint - Sharepoint 文档库不尊重 If-None-Match

我正在以编程方式从 Sharepoint 2016 文档库下载文件。网址是:

https://hostname.com/Site/Folder/_layouts/15/download.aspx ?{long, long URL}

该站点发出 ETag 标头,但是当我发送带有 If-None-Match 的请求时,提供我刚刚得到的 ETag ,没有304 Not Modified响应,它是 200 和整个文档。

我收到的 ETag 标头是:

然后请求标头变为:

我正在针对 IIS 中的静态文件测试相同的设置 - 它按预期工作,304 来了。

请问我错过了什么?会不会是 Sharepoint API 的疏忽?

编辑:一个不令人满意的解决方法是首先触发 HEAD 请求并手动匹配客户端上的 ETag 值。

0 投票
1 回答
160 浏览

sharepoint - 连接到 SharePoint 服务器端

请注意,我说的是将我的代码注入 SharePoint 服务器端(通过包/加载项等),而不是使用Microsoft.SharePoint.dllWeb 服务或 Web 服务来访问 SharePoint。

所以我的问题是,我需要自定义文档库的工作方式,包括自定义权限管理。我一直在浏览Microsoft.SharePoint.dll分析其工作的内部结构。以下是我的观察:

  1. SPDocumentLibrary提供管理文档库的核心逻辑。然而,它WebPart本身并不是一个。
  2. 文档库的实际 Web 部件呈现可能由ListViewWebPart派生类处理。
  3. 实际上有一个SPPictureLibrary类让我假设可以继承SPDocumentLibrary类以在文档库上提供自定义行为。
  4. WebPartAdder.SiteWebPartGalleryProvider以某种方式连接SPDocumentLibrary到它的WebPart内部Microsoft.SharePoint.WebPartPages.WebPartAdder.AddSources方法。

现在所有这些都是客户端,这些都不会发生在 SharePoint 服务器本身 (afaik) 上。但是我在SPSecurableObject那个SPDocumentLibrary/SPList覆盖上看到了可覆盖的方法,特别是:

  1. CheckPermissions
  2. GetUserEffectivePermissionInfo
  3. GetUserEffectivePermissions
  4. EffectiveBasePermissions, ETC。

我真正想做的是能够在 SharePoint 服务器内部覆盖CheckPermissions/EffectiveBasePermissionsSPDocumentLibrary注入我的自定义逻辑。

我现在将我的研究转移到 SharePoint 服务器端 dll 并理解它们。但我很想就这是否可行/指向正确的方向获得一些专家意见。Microsoft 的标志(特别是考虑将 ASP.NET 2.0 / ASP.NET MVC 作为基准)是可扩展性/提供程序框架。它们为开箱即用的“事物”提供了出色的提供者,但您可以通过继承/实现某些东西来替换默认提供者来创建类。所以:

  1. 我可以注入 SharePoint 服务器端吗?我理想的解决方案是创建一个SPDocumentLibrary派生类(服务器端),并将其注入,以便在任何时候实例化文档库时,都会创建我的类对象(而不是SPDocumentLibrary,假设这也是服务器端的类。我仍然需要“反映” SharePoint 服务器端类)。
  2. 如果 1) 不正确,我是否可以创建一个自定义WebPart以使用 SharePoint 文档库,使其具有原生文档库的感觉,但SPDocumentLibrary在访问该 Web 部件时仍允许我使用派生类(请再次注意,我所有的讨论都围绕 SharePoint 服务器端,即我的代码在 SharePoint 的地址空间/w3wp 进程中执行)。
  3. 为什么我们有逻辑SPSite.EffectiveBasePermissions。我的意思是它应该是 CSOM,它应该只负责对服务器返回/发送的内容进行序列化/反序列化。但是,我在这个被覆盖的属性中看到了围绕权限推导的复杂逻辑。
  4. 如果 1) 和 2) 都是无操作(字面意思是:)),在 SharePoint 基于这些权限采取任何操作之前,我是否可以在 SharePoint 的地址空间中操作时操纵 SharePoint 有效权限。

我知道这是一个很长的问题,但希望我的研究做得很好。

0 投票
1 回答
310 浏览

sharepoint-apps - 在 SharePoint 2016 中部署 SharePoint 托管应用程序

我正在开发 SharePoint 托管应用程序,并按照以下 Microsoft 链接中提到的步骤创建应用程序域。

https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/set-up-an-on-premises-development-environment-for-sharepoint-add-ins

这是安装插件后我的插件网址在我的开发盒上的样子

http://add-in-4566480226b84e.MachineName:1300/AddInName

Add-in_Prefix:加载项

加载项_ID:4566480226b84e

Add-in_Base_Domain: MachineName:1300

加载项名称:AddInName

当我从 Visual Studio 2017 部署插件时,它会在主机文件中添加以下条目,我理解为什么需要此条目。

127.0.0.1 插件 4566480226b84e.MachineName # 65ea9305-f44a-4aab-8fb3-b97f7f273177; http://机器名:1300/

::1 插件 4566480226b84e.MachineName # 65ea9305-f44a-4aab-8fb3-b97f7f273177; http://机器名:1300/

当我使用以下命令安装插件时,它不会添加主机文件条目,并且必须手动添加主机条目。

现在我必须将此插件移动到生产环境中,我猜下面是 url 的形成方式。

共享网址

http://product.companyname.com

插件网址

http://add-in-4566480226b84e.product.companyname.com/AddInName

我的问题是

  1. 我对生产插件网址的理解是否正确?

  2. url将如何解析?当我在我的开发环境中时,我的主机文件由 VS2017/manually 更新并解析了 url。现在我在生产中,url会自动解析还是我必须做一些特殊的附加配置。

0 投票
2 回答
889 浏览

javascript - 添加指向共享点套件栏的链接 - 首次加载时失败

我正在尝试使用 JavaScript 将自定义链接添加到 SharePoint 中的套件栏(前提是 SharePoint 2016)。代码工作正常,除了我第一次加载 SharePoint 网站。这里是:

当我刷新页面或浏览时,一切正常。当我从新窗口或标签打开页面时,它只是不起作用。(我禁用了 MDS 功能。)似乎套件栏在代码第一次运行时不可用,即使我使用 _spbodyOnLoadFunctions 技术延迟了我的代码。

有任何想法吗?

更新:根据 Matt 在评论中的建议,我输入了 try/catch 以获取任何错误。没有报告错误,但我确实注意到行为发生了变化。我连续做了大约 20 次测试,有时新链接添加得很好,有时不是,有时它会添加一秒钟然后消失。

我还尝试在此行之前的代码中添加警报:

延迟是执行使其工作如此清楚,这是一个时间问题。我假设有时代码运行时套件栏还没有准备好。我添加了一个超时作为测试:

这解决了这个问题,但我不喜欢每次页面运行时都使用超时的想法。

关于如何延迟代码执行直到套件栏准备好的任何想法?

0 投票
2 回答
837 浏览

sharepoint - SharePoint 2016 PWA 网站无法正常工作

我已经使用 SQL Server 2014 在 Windows Server 2012 上安装了 SharePoint 2016 Server。我已经创建了内容数据库并使用以下 cmd 启用了 SP 功能。

我收到成功消息,但是当我尝试使用站点主管理员帐户访问 URL 时,系统将我重定向到一个错误页面:

“抱歉,出了点问题发生了意外错误。”

我被这个问题困扰了几天,无法设置项目服务器 2016。

请帮助,在此先感谢

0 投票
1 回答
845 浏览

sharepoint-online - 使用 REST 从 SharePoint 加载项访问外部列表

我在加载项中使用 SharePoint REST API 来访问列表数据。当我查询“正常”列表时,我会得到结果。当我尝试查询外部列表时,我收到 401 错误。当我尝试在浏览器中访问 REST URL 时出现同样的错误:

http://add-in-6f1ecc432fad91.myaddins.com/sites/development/_api/lists/getbytitle ('TestExternalList')/items

当我尝试在应用程序之外访问它时,它工作正常:

http://sharepoint/sites/development/_api/lists/getbytitle ('TestExternalList')/items

我读到您无法从此处的加载项访问外部内容类型:

http://toddbaginski.com/blog/accessing-bcs-external-data-from-an-app-for-sharepoint-2013/

因此,我尝试根据站点打包我的 BCS 模型,但出现以下错误:

无法通过沙盒解决方案中的功能部署项目项“TestBDC”。

所以我的问题是,是否可以通过加载项访问外部列表?

我正在使用 SharePoint 2016。

0 投票
1 回答
2397 浏览

sharepoint-online - 适用于 2016 On-Premise 和 Online 的 SharePoint API

各位同事您好,

我开始编写一个 SharePoint 适配器,它应该适用于:支持 SharePoint 2016 On-Premise/ Online 和 365。到目前为止,我已经了解 Office365 使用 Online,因此它将支持的版本缩小到:SharePoint 2016 On-Premise 和 SharePoint在线的。

我为每个支持的版本找到了两个不同的 API:

根据信息(https://dev.office.com/blogs/using-correct-csom-version-for-sharepoint-customizations)如果您可以保证您的代码不会触及尚未启用的属性-本地版本,理论上您也可以将 SharePoint Online CSOM 与本地一起使用。我的用户故事似乎很简单:文件和文件夹的 CRUD 操作、结帐/覆盖/下载/结帐。

我的问题:我能否使用 Microsoft.SharePointOnline.CSOM 在 OnPremise 和在线服务器上满足我简单的用户故事?我无法在 On-Premise 和 Online 之间找到任何信息或一些比较映射表。

如果需要任何其他信息,请告诉我。

最好的问候, SVG

0 投票
1 回答
167 浏览

sharepoint-online - SharePoint Online UserInfo 端点 URL

我正在尝试使用 Microsoft.SharePointOnline.CSOM 版本 16.1.7018.1200 构建 SharePoint Online 适配器

我正在努力为这个 REST API 寻找正确的端点 URL。其中一些可能与 GDrive 中的相同(因为它们都使用 OAuth2),但我仍然有点困惑。我的问题是关于: - 范围、LoginBaseUrl、AccessTokenBaseUrl 和 UserInfoEndpointUrl

作为 GDrive 情况的一个例子是:

PS:如果有人有一些文档或代码示例,将非常感谢!到目前为止,我只能找到用于读取操作的代码示例。

如果需要任何其他信息,请告诉我。

最好的问候,SVG

0 投票
1 回答
1410 浏览

sharepoint - Sharepoint 2016 和 Nintex Workflows Scheduler 从不运行

Nintex Workflow Scheduler 在尝试从中央管理启动时不会运行。我曾多次就该问题联系 Nintex 以使其运行但没有成功,因此我希望与可能了解更多信息的其他人联系。这是背景和已经尝试过的修复:

我们的拓扑包括 2 个 wfe、2 个应用程序、1 个 sql 和 1 个工作流服务器。wfe 不是负载平衡的,但我们确实有两台服务器的 Nintex 许可证。

我已按照 Nintex 提供的这些步骤操作:

在 APP、WFE 和搜索服务器的计时器实例上启用 AllowServiceJobs 属性 以下命令应在上述每个服务器上运行。

(Get-SPFarm).TimerService.Instances | ?{$_.Server.Name -eq $env:COMPUTERNAME} | %{[Microsoft.SharePoint.Administration.SPTimerServiceInstance].GetMember("set_AllowServiceJobs", [Enum]::GetValues([System.Reflection.BindingFlags])).Invoke($_,$true) }

  1. 更新定时器服务实例

获取-SPServiceInstance -All | ?{$ .TypeName -match "Foundation Timer"} | %{$ .Update()}

  1. 重启定时器服务实例

获取-SPServiceInstance -All | ?{$ .TypeName -match "Foundation Timer"} | %{$ .Server.Name;$ .Stop ();sleep 5;$. Start ();sleep 5;"完成"}

还遵循此文档:https ://community.nintex.com/docs/DOC-1254-scheduled-workflows-and-the-nintex-workflow-scheduler-timer-job

这: https: //support.nintex.com/SharePoint/Workflow/2016/Scheduler_Job_Does_Not_Run_After_Upgrading_Nintex_Workflow_for_SharePoint_2016

我还反弹了整个农场。我还遵循了 Nintex 建议的附加信息:

附加信息

如果问题仍未解决,: 1. 确保场中仅存在一个 Nintex 调度程序作业,并且它与管理中心 Web 应用程序相关联。2. 在管理中心和通过 PowerShell 运行计时器作业。3. 执行上述推荐操作后提供 ULS 日志。

关于如何让 Nintex Scheduled 工作流程在我的环境中运行,还有其他建议吗?