部署 Web 服务简介

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

此部署服务允许您创建解决方案以充分利用对多个组织的支持 — 也称为多租户支持。Microsoft Dynamics 365 则允许您在单个部署中承载多个客户组织。 对于托管解决方案或需要区分组织内部数据的企业而言,此功能非常有用。 由于使用部署服务需要访问 Dynamics 365 服务器,它只能用于 Microsoft Dynamics 365 内部部署。

使用多组织支持,Microsoft Dynamics 365 Web 应用程序和 Web 服务支持跨多个业务组织存储和检索数据,同时维护各个组织的安全性和隐私。 单个 Microsoft Dynamics 365 配置数据库存储所有客户组织的元数据和位置信息。 但是,每个客户组织在运行 Microsoft SQL Server 的服务器上具有其自己的数据库。 有关部署服务控制的实体和配置设置的详细信息,请参阅部署实体和部署配置设置。

Microsoft Dynamics 365 不支持部署服务的向后兼容端点,所以针对 Microsoft Dynamics CRM 4.0 部署服务编写的所有代码都必须使用新的程序集进行更新和重新编译。

将部署服务添加到您的项目

可以通过添加对程序集 Microsoft.Xrm.Sdk.Deployment.dll 的引用来使用部署服务,可在 SDK\bin 文件夹中找到该程序集。 您可以选择向解决方案添加以下服务引用。

  http://myservername/xrmdeployment/2011/deployment.svc
  svcutil.exe http:// myservername/XRMDeployment/2011/Deployment.svc?wsdl

这样会生成一个配置文件和一个包含客户端类的代码文件。 将这两个文件添加到您的客户端应用程序并使用生成的客户端类调用服务。

部署服务安装

要针对 Microsoft Dynamics 365 部署实体执行调用,必须在 Microsoft Dynamics 365 服务器中正确安装部署服务服务器角色。 确保部署服务安装中满足以下条件:

  • 为了使用诸如创建或升级等组织操作,您必须使用域用户安装部署服务服务器角色。 域用户帐户必须在将承载组织数据库的 SQL Server 上拥有本地管理员和系统管理员权限。

  • 部署服务应使用不同于其他 Microsoft Dynamics 365 服务和应用程序服务器的服务标识来运行。 如果您使用的是 Network Service,则服务器角色应由其安装在一台单独的服务器上,并且该服务器上未安装任何其他 Microsoft Dynamics 365 服务器角色。 将部署服务角色与其他服务器角色一起安装可能会导致安全风险,因为两台服务器都在 Network Service 帐户下运行。 如果您使用 Network 服务帐户,则您将无法使用 Windows PowerShell 或部署 Web 服务执行组织操作。

关于安装部署服务的更多信息,请参阅 Microsoft Dynamics CRM 服务器角色

Microsoft Dynamics 365 有两个主要服务器组件:Microsoft Dynamics 365 应用程序服务器和 Microsoft Dynamics 365 服务器。 每个都包括一组单独的服务器角色,这些角色都是在运行安装程序时安装的。 使用安装向导安装 Microsoft Dynamics 365 平台服务器时,会自动安装部署服务角色。

部署服务身份验证和模拟

部署服务身份验证通过 Active Directory(也称为 Windows 集成身份验证)进行处理。 您还可以使用模拟,其可以让您代表另一个经过身份验证的用户调用 Web 服务方法,以便提供所需功能或服务。 要调用部署 Web 服务,您必须是 Microsoft Dynamics 365 部署管理员。 有关详细信息,请参阅 添加部署管理员

以下示例演示如何使用 ProxyClientHelper 类通过默认凭据来验证和使用部署服务。

DeploymentServiceClient service = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri("http://MyServerName/XRMDeployment/2011/Deployment.svc"));
RetrieveAllRequest request = new RetrieveAllRequest()
{   
   EntityType = DeploymentEntityType.DefaultOrganization};   
   RetrieveAllResponse response = (RetrieveAllResponse) service.Execute(request);
}

Microsoft Dynamics 365 Web 服务可由各种客户端和服务代表 Microsoft Dynamics 365 用户进行调用。 每一次调用都必须是经过身份验证的调用。 模拟用于代表经过身份验证的 Microsoft Dynamics 365 用户执行调用。 使用模拟时,请避免在 Web 服务 (ASP.NET) 代码中处理身份验证和授权问题。 而应该使用 Internet Information Services (IIS) 验证用户并将经过身份验证的令牌传递给 Web 服务。 如果无法验证用户,则 IIS 传递一个未经过身份验证的令牌。

以下示例代码演示如何在部署服务中使用模拟。

DeploymentServiceClient service = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri("http://myservername/XRMDeployment/2011/Deployment.svc"));
service.ClientCredentials.Windows.ClientCredential = new NetworkCredential("administrator", "myp@ssword!", "myservernamedom");
RetrieveAllRequest request = new RetrieveAllRequest() 
{   
   EntityType = DeploymentEntityType.DefaultOrganization};   
   RetrieveAllResponse response = (RetrieveAllResponse) service.Execute(request);
}

部署服务功能

部署服务遵循与主 Microsoft Dynamics 365 Web 服务类似的开发模型。 提供了可用来与部署服务进行交互的实体、方法和消息。 有关主 Microsoft Dynamics 365 Web 服务的详细信息,请参阅在代码中使用 Microsoft Dynamics 365 服务

有两种类型的实体可用于部署服务:部署实体和部署配置设置。 可以通过同一组方法对两者进行访问。 有关这些实体的详细信息,请参阅部署实体和部署配置设置。

除了核心部署实体,部署服务还提供读取和编辑元数据驱动的高级设置的功能。 这些高级设置提供对于存储在配置数据库中信息的访问权限。

部署服务同时支持 Execute 方法的同步和异步消息。 有关详细信息,请参阅部署 Web 服务消息

下表列出了部署服务中可用的方法:

方法名称

说明

IDeploymentServiceDelete

从部署实体中删除记录。

IDeploymentServiceExecute

执行部署服务的请求。 有关详细信息,请参阅部署 Web 服务消息

IDeploymentServiceRetrieve

从部署实体或部署配置设置检索记录。

IDeploymentServiceRetrieveAll

检索部署实体或部署配置设置的所有记录。

IDeploymentServiceUpdate

从部署实体或部署配置设置更新记录。

另请参阅

IDeploymentService
Microsoft.Xrm.Sdk.Deployment.Proxy
ProxyClientHelper
使用部署 Web 服务管理部署
部署实体和部署配置设置。
部署 Web 服务消息

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权