将服务应用程序与管理服务应用程序页集成

上次修改时间: 2010年4月20日

适用范围: SharePoint Foundation 2010

本文内容
向"新建"按钮添加服务应用程序菜单项
启用"连接"按钮
启用"删除"按钮
启用"管理"按钮
启用"管理员"按钮
启用"属性"按钮
启用"发布"按钮
启用"权限"按钮

管理员使用 SharePoint 2010 管理中心内的"管理服务应用程序"页来管理服务应用程序和代理。

"管理服务应用程序"页包含一些可用于执行以下操作的功能区按钮:

  • 新建 创建服务应用程序。

  • 连接 连接到由其他服务器场发布的服务应用程序。

  • 删除 删除选定的服务应用程序或服务应用程序连接。

  • 管理 管理选定服务应用程序的设置。

  • 管理员 为选定服务应用程序指派管理员。

  • 属性 编辑常见属性。

  • 发布 使选定的服务应用程序对其他服务器场可用。

  • 权限 决定可访问选定服务应用程序的帐户。

若要能从"管理服务应用程序"页访问您的服务应用程序,您需要执行以下几个操作:将服务应用程序添加到可用服务应用程序的列表中,修改"管理服务应用程序"页上功能区中的按钮以及创建服务应用程序管理页以处理任何用户输入。

向"新建"按钮添加服务应用程序菜单项

"管理服务应用程序"页功能区中的"新建"按钮始终处于启用状态。单击"新建"会显示一个服务器场管理员可创建的服务应用程序的列表。可以将您自己的服务应用程序包含在此列表中。

将服务应用程序包含在可用服务应用程序的列表中

  1. 创建一个用于收集任何所需的用户输入的页面,并创建一个具有匹配的本地代理的服务应用程序。

  2. SPService 派生类上实现 IServiceAdministration 接口。

  3. 重写 SPService::GetCreateApplicationLink 以返回指向步骤 1 中创建的页面的链接。

以下示例说明如何向可用服务应用程序的列表中添加一个服务应用程序。

//Placeholder for the actual GUID.
[Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")]
public sealed class SampleWebService
    : SPIisWebService, IServiceAdministration
{
    public Type[] GetApplicationTypes()
    {
        return new Type[] { typeof(SampleWebServiceApplication) };
    }
 
    public SPPersistedTypeDescription GetApplicationTypeDescription(
        Type serviceApplicationType)
    {
        if (serviceApplicationType != typeof(SampleWebServiceApplication))
        {
            throw new NotSupportedException();
        }
 
        return new SPPersistedTypeDescription(
            "Sample Web Service",
            "A sample web service.");
    }
 
    public override SPAdministrationLink GetCreateApplicationLink(
        Type serviceApplicationType)
    {
        // NOTE: Because there can be only one instance of this service,
        // and there is only one application type, the target page 
        // does not require any query string parameters.
        return new SPAdministrationLink("/_admin/SampleCreate.aspx");
    }
}
// Placeholder for your actual GUID <System.Runtime.InteropServices.GuidAttribute("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")>
Public NotInheritable Class SampleWebService
    Inherits SPIisWebService
    Implements IServiceAdministration
    Public Function GetApplicationTypes() As Type()
        Return New Type() {GetType(SampleWebServiceApplication)}
    End Function

    Public Function GetApplicationTypeDescription(ByVal serviceApplicationType As Type) As SPPersistedTypeDescription
        If serviceApplicationType IsNot GetType(SampleWebServiceApplication) Then
            Throw New NotSupportedException()
        End If

        Return New SPPersistedTypeDescription("Sample Web Service", "A sample web service.")
    End Function

    Public Overrides Function GetCreateApplicationLink(ByVal serviceApplicationType As Type) As SPAdministrationLink
        ' NOTE: Because there can be only one instance of this service,
        ' and there is only one application type, the target page 
        ' does not require any query string parameters.
        Return New SPAdministrationLink("/_admin/SampleCreate.aspx")
    End Function
End Class

启用"连接"按钮

可使用"管理服务应用程序"页功能区中的"连接"按钮连接到服务应用程序。此操作会在内部创建一个服务应用程序代理。

单击"连接"按钮下方的箭头会显示当前运行的代理和服务的列表。

单击"连接"按钮本身会启动"连接到远程服务应用程序"向导。利用此向导,管理员可通过浏览从服务器场发布的服务应用程序来创建连接。

若要在选定服务应用程序时启用此按钮,请在 SPServiceApplication 派生类上实现 ISharedServiceApplication

备注

由于 SPIisWebServiceApplication 基类实现 ISharedServiceApplication,因此默认情况下将启用发布。

启用"删除"按钮

在"管理服务应用程序"页上选择任意项时,将启用"管理服务应用程序"页功能区中的"删除"按钮。对于选定的项,此操作将:

  • 调用 Unprovision 方法,如果应删除与选定项相关的数据,则值为 true;否则,值为 false。

  • 调用 Delete 方法。

启用"管理"按钮

使用功能区中的"管理"按钮可管理选定的服务应用程序或代理。

在选择服务应用程序或代理时启用"管理"按钮

  1. 在管理中心内创建一个用于管理服务应用程序或代理的页。

  2. 重写 SPServiceApplication 或 SPServiceApplicationProxy 派生类的 ManageLink 属性以链接到在步骤 1 中创建的页面。

    以下代码示例说明如何为选定的服务应用程序启用"管理"按钮。

    public override SPAdministrationLink ManageLink
    {
        get
        {
            return new SPAdministrationLink(
                "/_admin/SampleManage.aspx?id=" + this.Id.ToString());
        }
    }
    
    Public Overrides ReadOnly Property ManageLink() As SPAdministrationLink
            Get
                Return New SPAdministrationLink("/_admin/SampleManage.aspx?id=" & Me.Id.ToString())
            End Get
    End Property
    

启用"管理员"按钮

在从"管理服务应用程序"页选择一个服务应用程序时,将启用"管理服务应用程序"页功能区中的"管理员"按钮。可使用此按钮控制哪些用户具有针对此服务应用程序的委托管理访问权。

启用"属性"按钮

可使用"属性"按钮编辑选定项的设置。

备注

此页上的设置仅供服务器场管理员使用。

在选择服务应用程序或代理时启用"属性"按钮

  1. 在 SharePoint 2010 管理中心内创建一个用于编辑服务应用程序或代理的属性的页。

  2. 重写 SPServiceApplication 或 SPServiceApplicationProxy 派生类上的 PropertiesLink 属性以链接到在步骤 1 中创建的页面。

启用"发布"按钮

如果"管理服务应用程序"页功能区中的"发布"按钮已启用,则可使用此按钮将服务应用程序发布到其他服务器场。在发布一个服务应用程序之后,其他服务器场的管理员可使用功能区中的"连接"按钮来发现该服务应用程序。

若要在选择服务应用程序时启用"发布"按钮,请在 SPServiceApplication 派生类上实现 ISharedServiceApplication。

备注

由于 SPIisWebServiceApplication 基类实现 ISharedServiceApplication,因此默认情况下将启用发布。

启用"权限"按钮

可使用"管理服务应用程序"页功能区中的"权限"按钮控制对服务应用程序的访问权。通常,使用此按钮可使远程服务器场能够连接到服务应用程序。

在选择服务应用程序时启用"权限"按钮

  1. 在 SharePoint 2010 管理中心内创建一个页面,以指定有权调用服务应用程序或代理的帐户或其他主体。

  2. 重写 SPServiceApplication 或 SPServiceApplicationProxy 派生类的 PermissionsLink 属性以链接到在步骤 1 中创建的页面。