基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

时间:2021-10-05 07:34:13

需要在SharePoint online 显示 CRM online的数据,并且有交互。需要开发是肯定的。由于我的本性能有限,

所以不太可能使用本机开发,使用虚拟机发现速度太慢,于是我选择了使用 Azure。结果顺利完成任务。开发分享。

实现方案一,Azure 环境安装了完成的share point平台  二,必须有读取CRM DynamicS的权限。三,VS开发工具 开发webpart。

如果想部署到SharePoint online上,开发的项目必须是Sandbox。

使用的开发环境是:VS2013  framework 4.0 

首先在webpart 里写代码,调用CRM里的数据,是Dynamic代码,以下是webpart代码和从Dynamics 读取数据的代码。是从 SDK的示例代码里取到,当然我是获得MS CRM协助完成的。


    protected void SDKCRM()
{
Uri orgServiceUri = new Uri("https://xxxxxxxxx.crm5.dynamics.com/XRMServices/2011/Organization.svc");

var clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = "jasondct@microsoft.com"; \\这里是CRM登录管理员的账号,如果有AD策略则可以省略
clientCredentials.UserName.Password = "@#@#!@#$**(&&&"; \\ 这里是密码


IOrganizationService orgService = new OrganizationServiceProxy(orgServiceUri, null, clientCredentials, null); \\获得CRM的服务
//get current Name
//WhoAmIRequest whoAmIReq = new WhoAmIRequest();
//WhoAmIResponse whoAmIResponse = (WhoAmIResponse)orgService.Execute(whoAmIReq); \\获得当前用户的
//throw new Exception(whoAmIResponse.UserId.ToString());
QueryExpression query = new QueryExpression("contact");
query.ColumnSet = new ColumnSet(true);
query.Criteria.AddCondition("createdon", ConditionOperator.NotNull);

EntityCollection contactCol = orgService.RetrieveMultiple(query);
var contactList = contactCol.Entities;


DataTable mydt = GetContact("jasondct@163.com", orgService); \\根据这个条件 获得用户数据
string GetGUID = mydt.Rows[0]["contactid"].ToString();
TextBox1.Text = contactCol.Entities.Count.ToString();

DataTable myDetail= GetIncident(GetGUID, orgService);
GridView1.DataSource = myDetail;
GridView1.DataBind(); \\显示数据

}


读取CRM的方法。

/// <summary>
/// 根据邮件地址获取联系人信息
/// </summary>
/// <param name="sEmail">邮件地址</param>
/// <param name="service">CRM组织服务</param>
/// <returns></returns>
protected DataTable GetContact(string sEmail, IOrganizationService service)
{
ConditionExpression conexp1 = new ConditionExpression();
conexp1.AttributeName = "emailaddress1";
conexp1.Operator = ConditionOperator.Equal;
conexp1.Values.Add(sEmail);
FilterExpression filexp1 = new FilterExpression();
filexp1.Conditions.Add(conexp1);
QueryExpression quexp = new QueryExpression("contact");
quexp.ColumnSet.AddColumns("firstname"); // 名
quexp.ColumnSet.AddColumns("lastname"); // 姓
quexp.ColumnSet.AddColumns("fullname"); // 全名
quexp.ColumnSet.AddColumns("jobtitle"); // 职务
quexp.ColumnSet.AddColumns("contactid"); // 联系人主键
quexp.ColumnSet.AddColumns("department"); // 部门
quexp.ColumnSet.AddColumns("emailaddress1"); // 电子邮件
quexp.ColumnSet.AddColumns("parentcustomerid"); // 公司名称
quexp.ColumnSet.AddColumns("mobilephone"); // 移动电话
quexp.ColumnSet.AddColumns("telephone1"); // 商务电话
quexp.Criteria.AddFilter(filexp1);
EntityCollection entcolTep = service.RetrieveMultiple(quexp);
DataTable dtContact = new DataTable("contact");
System.Type tyString = System.Type.GetType("System.String");
System.Type tyGuid = System.Type.GetType("System.Guid");
DataColumn dcTep = new DataColumn("firstname", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("lastname", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("fullname", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("jobtitle", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("contactid", tyGuid);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("department", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("emailaddress1", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("parentcustomerid", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("mobilephone", tyString);
dtContact.Columns.Add(dcTep);
dcTep = new DataColumn("telephone1", tyString);
dtContact.Columns.Add(dcTep);
int iCount = entcolTep.Entities.Count;
for (int i = 0; i < iCount; i++)
{
DataRow drTep = dtContact.NewRow();
if (entcolTep.Entities[i].Attributes.Contains("firstname"))
{
drTep["firstname"] = entcolTep.Entities[i].Attributes["firstname"];
}
if (entcolTep.Entities[i].Attributes.Contains("lastname"))
{
drTep["lastname"] = entcolTep.Entities[i].Attributes["lastname"];
}
drTep["fullname"] = entcolTep.Entities[i].Attributes["fullname"];
if (entcolTep.Entities[i].Attributes.Contains("jobtitle"))
{
drTep["jobtitle"] = entcolTep.Entities[i].Attributes["jobtitle"];
}
if (entcolTep.Entities[i].Attributes.Contains("department"))
{
drTep["department"] = entcolTep.Entities[i].Attributes["department"];
}
if (entcolTep.Entities[i].Attributes.Contains("mobilephone"))
{
drTep["mobilephone"] = entcolTep.Entities[i].Attributes["mobilephone"];
}
if (entcolTep.Entities[i].Attributes.Contains("telephone1"))
{
drTep["telephone1"] = entcolTep.Entities[i].Attributes["telephone1"];
}
if (entcolTep.Entities[i].Attributes.Contains("parentcustomerid"))
{
drTep["parentcustomerid"] = ((EntityReference)entcolTep.Entities[i].Attributes["parentcustomerid"]).Name;
}
drTep["contactid"] = (Guid)entcolTep.Entities[i].Attributes["contactid"];
drTep["emailaddress1"] = entcolTep.Entities[i].Attributes["emailaddress1"];
dtContact.Rows.Add(drTep);
}
dtContact.AcceptChanges();
return dtContact;
}


下面是详细介绍了如何在Azure 安装 Sharepoint 2013 系统

一、在Windows Azure中创建地缘组

“地缘组”是在您的 Windows Azure 订阅中对需要一起工作以便实现最佳性能的服务进行分组的方式。 简单点说,Windows Azure有很多数据中心,你所创建的VM有可能会运行在不同的数据中心的不同集群上。试想一下,如果你的SharePoint Farm的数据库服务器和App服务器分别运行的南美和东亚的数据中心,这时的性能肯定好不了。为能保证这两台VM能运行在同一个数据中心的同一个集群上,以提高性能,就需要有“地缘组”这样的一个东西能把你创建的VM打包成一个整体,并把这一个整体的服务同时运行在一个集群上。

1. 登录 Windows Azure 管理门户

2. 在左则导航栏选中设置

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 地缘组 -> 添加

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

4. 输入名称、描述、数据中心,并点击确实

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

Note: 东亚数据中心在香港,推荐选东亚数据中心

二、在Windows Azure中创建存储账户

1. 登录 Windows Azure 管理门户

2. 在左则导航栏选中存储

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 新建存储账户

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

4. 输入如下信息,创建存储账户

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

Note: 取消“启用地域复制”能提高性能,如在生产环境下,请保留

三、在Windows Azure中注册DNS服务

Windows Azure 中虚拟机的IP都是动态分配的,如果不注册DNS的话,它将使用Windows Azure默认提供的DNS服务, 动态为我们分配一个DNS。在东亚数据中心,它和DHCP是同一个服务器(168.63.129.16)。这对于我们搭建自己的AD,DNS,非常不利。通过注册DNS服务,Windows Azure将动态DNS指向我们指定的IP地址(10.0.0.4),而10.0.0.4就正好是我即将安装的DNS服务器的IP。Windows Azure默认为第一台机器分配.4 IP,所以在此注册的IP地址为10.0.0.4。

1. 登录 Windows Azure 管理门户

2. 在左则导航栏选中网络->DNS服务器->新建

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 在左则导航栏选中网络->DNS服务器->新建,并输入如下信息,点击创建

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

四、创建虚拟网络

虚拟网络和我们在本地创建虚拟机时,创建的虚拟网络是一样的,主要是为了能将我们自己的vm放到同一个自定义的IP段。

1. 登录 Windows Azure 管理门户

2. 在左则导航栏选中网络->虚拟网络->新建

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 新建->虚拟网络->自定义创建

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

4. 输入名称,地缘组

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

5. 选择已经注册的DNS服务

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

6. 选中”CIDR”,保持默认的IP地址

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

五、在 Windows Azure中创建虚拟机

1. 在左则导航栏选中虚拟机->虚拟机实例->新建

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

2. 选择从库中创建虚拟机

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 选择SharePoint Server 2013 Trial

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

4. 输入如下信息,并继续

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

参照以上步骤,创建虚拟机: OffWebApp

名称

模板

DNS

OffWebApp

SQL Server 2012 SP1 Enterprise On Windows Server 2008 R2 SP1

OffWebApp2013. cloudapp.net

创建完成后,虚拟机状态如下:

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

六、为Windows Azure VM附加额外硬盘(可选)

默认VM只有一个系统盘及一个临时数据盘(D盘),通过此操作可增加额外磁盘,以便存放数据库数据文件

1. 在Windows Azure 管理门户 附加磁盘(类似于给电脑添加新的物理磁盘)

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

2. 远程到服务器后,添加新磁盘并格式化

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

七、在Windows Azure VM中配置AD

1. 下载RDP文件,打开并远程连接到服务器(推荐使用Remote Desktop Connection Manager管理多台远程服务器)

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

2. 安装Active Directory Domain Services

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

安装完后,重启服务器,AD便已经安装成功.

参考: http://social.technet.microsoft.com/wiki/contents/articles/12370.step-by-step-guide-for-setting-up-windows-server-2012-domain-controller.aspx

3. 创建SharePoint 服务账户

- CONTOSO\spfarm – SharePoint Farm 管理员

- CONTOSO\sp_serviceapps – 运行SharePoint服务的账户

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

八、在Windows Azure VM中配置Sql Server 2012

由于这台OffWebApp VM的镜像中,已经预安装了Sql Server 2012了,故在此省略其安装步骤

1. 连接VM: OffWebApp

2. 启用命名管道

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

3. 修改默认的数据库数据文件,日志文件的路径

3.1. 在F盘新建如下目录

· F:\MSSQL Sql相关文件根目录

· F:\MSSQL\DATA Sql 数据文件目录

· F:\MSSQL\LOGS Sql日志文件目录

· F:\MSSQL\BACKUP Sql备件文件目录

3.2. 在 Sql管理器中设置默认文件路径

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

Note: 需要重启后,才能生效

4. 配置防火墙

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

5. 加入域: contoso.com

可能出现以下错误,可以忽略

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

6. 将域账户添加到Sql的管理员组

6.1. 用本机管理员: offwebapp\vmadmin登录(此时域管理员还没有权限操作数据库)

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

6.2. 将域管理员:contoso\vmadmin, SharePoint服务账户(contoso\spfarm,contoso\sp_serviceapps)加入sysadmin组

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

九、在Windows Azure VM中安装配置SharePoint 2013

由于VM本身已经预安装了SharePoint 2012,此处只需运行配置向导即可.

9.1 关闭“IE增强的安全配置

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

9.2 运行配置向导

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

9.3 运行管理中心配置向导

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。

访问http://sharepoint , 一切正常, SharePoint 2013安装完毕

基于Windows Azure 安装SharePoint 2013和如何实现与CRM(Dynamics)的数据交互。