【问题标题】:SharePoint Hosted App 2013 - ASPX with c# code behindSharePoint 托管应用程序 2013 - ASPX,后面带有 c# 代码
【发布时间】:2015-11-24 18:24:32
【问题描述】:

我有一个小问题,以一个大话题结束。 是否可以 - 以及如何 - 在 SharePoint 2013 托管应用程序中使用 C# 代码?

我试图在我的项目中包含一个 .asmx 文件。 然后我得到这个错误。

  @"Error 1
        CorrelationId: 9c1ea930-a131-4f5b-bff5-8a1a61fe34d9
        ErrorDetail: There was a problem with activating the app web definition.
        ErrorType: App
        ErrorTypeName: App Related
        ExceptionMessage: Microsoft.SharePoint.SPException: Exception from HRESULT: 0x81070964 ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x81070964

然后我尝试了一些教程,例如...

http://chuvash.eu/2012/02/13/custom-httphandler-in-sharepoint-for-getting-dynamic-javascript-code/
http://blogs.msdn.com/b/kaevans/archive/2010/08/04/deploying-an-asp-net-httphandler-to-sharepoint-2010.aspx
http://social.technet.microsoft.com/wiki/contents/articles/24194.sharepoint-2013-create-a-custom-wcf-rest-service-hosted-in-sharepoint-and-deployed-in-a-wsp.aspx

但有时我没有正确理解,或者有时我在编译所有内容时遇到其他问题。 我在获取程序集 ID/名称时也遇到了问题。因为项目没有编译好的 DDL 文件。

我一般想要什么? 一个 .app 文件,其中包含一个 SP 托管应用程序(适用于 SP 2013),其中包括一个用于 SP 客户端对象模型的 Web 服务。

所以我考虑在 CodeBehind 中使用“default.aspx”。所以我可以在 aspx 的“后面”执行脚本。但是后来它找不到程序集......或者还有别的东西。

谁能帮助我?如果你有一些想法,你可以!拜托!提供给我。谢谢!

【问题讨论】:

    标签: c# asp.net sharepoint sharepoint-2013 hosted-app


    【解决方案1】:

    SharePoint 托管应用程序不允许在服务器上执行服务器端代码,这是 SharePoint 应用程序的全部理念,不应在 SharePoint 前端服务器中执行任何操作。与 Farm 解决方案不同,SharePoint 托管应用程序在客户端上运行,并且只能通过可使用 REST 或 JSOM 调用的一组预定义服务访问 SharePoint 资源。

    如果您需要自定义代码,您可以创建 WCF 服务,将其部署在 ISAPI 下并从您的应用程序中调用它,但这在 SharePoint Online 中不可行。

    至于你的问题,你当然可以使用 ASPX 页面,但你永远不会为它添加代码,因为这些页面存储在页面库中,并且按照设计,它存储在内容数据库中,所以任何代码执行被拒绝。

    只有像 _layouts 页面这样存储在硬盘上的 aspx 页面才能有代码。

    【讨论】:

      【解决方案2】:

      SharePoint 应用程序在客户端上下文中运行。您可以仅使用 JS、HTML、CSS、JSOM 来创建 SharePoint 应用程序。您不能将 C# 用于 App(不包括 CSOM,您可以将其用于创建远程事件接收器)

      如果您需要为本地版本的 SharePoint 实施某些功能,请使用传统的服务器端解决方案,而不是应用程序。

      【讨论】:

      • 但这并不是真的……或者?我可以使用 ASPX... 那也不是正常的 HTML/CSS/JS/JSOM/CSOM。那么为什么我不能将它与 CodeBehind 或其他东西一起使用呢? :(
      【解决方案3】:

      了解 SharePoint 托管应用程序和提供商托管应用程序之间的区别很重要:

      SharePoint 托管的应用程序

      SharePoint 托管的应用程序,或所有组件都托管在本地或 Office 365 SharePoint 场上的应用程序。 SharePoint 托管的应用程序安装在称为主机 Web 的 SharePoint 2013 网站上。他们将资源托管在主机 Web 的隔离子站点上,称为应用程序 Web。该应用程序是使用带有 CSOM 或 REST 调用的 HTML/JavaScript 创建的

      提供商托管的应用程序

      提供程序托管的 SharePoint 应用程序包括在 SharePoint 场之外部署和托管的组件。它们安装在主机 web 上,但它们的远程组件托管在另一台服务器上。该应用程序在 SharePoint 外部的服务器中运行。它有自己的基础设施,提供者负责保持其运行。它们允许您使用服务器端代码并​​使用 .NET CSOM。

      此图片将为您提供不同托管解决方案的概览:

      访问以下链接了解更多信息: https://msdn.microsoft.com/en-us/library/office/fp179887(v=office.15).aspx

      【讨论】:

      • 听起来很有趣。谢谢。它不能解决问题:(但由于您的图像解释,可能没有解决方案...... :(
      【解决方案4】:

      SharePoint 加载项模型使用 ASPX 页面,该页面还可以包含 ASPX 控件。但是,任何调用的方法都仅限于客户端脚本 - 即 JavaScript 和 SharePoint 的 JSOM(JavaScript 对象模型),它是客户端对象模型的子集。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-28
        • 1970-01-01
        • 2014-07-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        相关资源
        最近更新 更多