【发布时间】:2015-01-10 14:27:09
【问题描述】:
我们正在将我们的大部分网络存在转移到我们在云中的 SharePoint 服务器。我们当前的设置使用 MVC Web API 从 DB 检索数据。我们不想将 API 托管在单独的域下,因此也需要将 API 移动到 SharePoint 域下。这个要求没有放宽。
有没有办法将我的 API 发布到 SharePoint?或者 Visual Studio 中是否有特定于 SharePoint 的 API 项目模板?如果不是,我有什么选择?
编辑 最初,我要求 MVC API 需要成为 SharePoint 2013 的一部分。但现在,API 可以驻留在 SharePoint 内部或外部的任何位置,只要它是可从根域访问 - 到目前为止似乎不允许(错误消息:不允许在没有应用上下文的情况下调用 WebProxy。”)。仍在尝试查看这是否可行,如果可以,怎么做?
【问题讨论】:
-
您拥有/控制共享点场,还是托管在 my-company.sharepoint.com(“在他的云中”)?
-
@danludwig my-company.sharepoint.com(但这是否意味着我不控制 sp 农场?)
-
您不能将 WebAPI 发布到 sharepoint.com 租户。你不放松的要求根本不可行。您只能使用@IAfanasov 在他的回答中提到的应用模型。
-
需求其实是基于避开CORS路由。满足此要求的另一种方法(无论 API 托管在何处)可以在 SP 中创建一个代理页面,该页面采用 URL,发送到 SP 之外的 API 并简单地返回 API 回复的任何内容。我尝试遵循这个想法,但没有找到创建包含代码的代理页面的方法。在 VS 2013 中有一个“Sharepoint 应用程序”模板(就像@IAfanasov 提到的那样),但这看起来像是一个用户交互应用程序的模板。尝试添加模块和客户端 Web 部件,但仍然没有代码隐藏!
-
您不会在应用程序中使用 CORS 来获取共享点。您不能编写在 SharePoint 服务器上运行的任何代码。对于 SharePoint 托管的应用程序,您根本无法编写任何服务器端代码。对于提供商托管的应用程序,您只能使用 CSOM 编写在提供商 Web 中运行的服务器端代码。听起来您的解决方案可能是仅限 javascript 的解决方案。有一个 API 可让您通过让服务器调用通过已托管在 sharepoint.com 中的代理来解决跨域问题。
标签: sharepoint asp.net-web-api asp.net-mvc-5 sharepoint-2013