问题一:安装EP并创建EP网站集后,试图打开EP站点时提示503 Service Unavailable错误。
解决办法:检查IIS EP站点相应的Application pool发现启动失败,在系统日志中发现应用池账户登录失败,登录类型为4(批处理),该应用池账户使用的是AX Business Connector proxy account,到域组策略管理中将该账户添加到本地策略->用户权限分配->作为批处理作业登录,同时验证该账户也在“作为服务登录”,重启EP服务器或者强制刷新组策略后重启应用池,EP站点成功访问。
问题二:系统日志中出现大量10016,DistributedCOM错误,大概内容是某账户没有CLSID和APPID为{000C101C-0000-0000-C000-000000000046}的COM服务器具有本地激活权限,账户可能是EP所用的AX连接代理账户,也可能是Sharepoint管理站点的服务账户。
解决办法:Class ID {000C101C-0000-0000-C000-000000000046}是安装服务的COM组件,Sharepoint试图使用该组件检查某个程序功能是否安装,但是因为没有组件的本地激活权限出错,可以在组件服务管理工具中找到该COM组件,在属性中添加相应账户的本地激活权限,但是在Windows 2008R2中组件属性是灰化的不允许修改,即使你是使用管理员账户登录。在2008中引入了TrustedInstaller的内建账户,默认只有该账户拥有安装COM组件的Full control权限,转到Regedit搜索该Class ID和APP ID,在属性-权限中修改Owner为管理员账户,并设置管理员为full control权限,回到组件服务器中可以看到该组件权限已经可以修改,添加相应服务账号的本地权限即可。需要注意由于变更了注册表项的owner,可能会带来一定的风险。
问题三:在Sharepoint central administration站点中使用“Microsoft Dynamics Enterprise Portal”模板创建新的EP网站集是提示错误“The remote server returned an error: (401) Unauthorized.”,网站集创建失败。
解决方法:在系统事件管理器中可以看到相应的出错日志:“The Web site http://aep/sites/testep was not created correctly. The remote server returned an error: (401) Unauthorized.”,并提示参照http://support.microsoft.com/kb/896861解决,两种方法,一是新建DWORD类型的注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck并设置数值1来禁止回环检查,重启计算机生效;二是新建多字符串类型的注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\BackConnectionHostNames,设置其值为访问本地计算机网站时要键入的主机名,可以简单设置为计算机名称。测试第二种有效。
问题四:打开EP站点后“Bussiness overview”和“KPI List”下提示错误“An error has occured while establshing a connection to the analysis server.”
解决办法:出现这个错误的原因是因为AX的分析服务没有安装或者没有配置。分析服务的安装配置信息可以在System administration->Setup->Analysis services->Analysis servers下看到,确认是否已经成功部署OLAP服务器(SQL server的分析服务)以及OLAP database(AX的分析服务数据库),AX分析服务的部署本身也是比较复杂的,具体参照http://msdn.microsoft.com/EN-US/library/dd309720.aspx,需要特别注意一些账号权限的配置,比如AX连接代理服务账号需要有访问AX分析服务(注意不是分析数据库)的权限。另外一个需要注意的是更新报表服务器下的DynamicsAXOLAP数据源的连接字符串为相应的服务器和分析服务数据库名称,显示在EP站点上的KPI等是通过报表连接分析服务来显示的。
问题五:在已安装EP的服务器Sharepoint上创建一个新的Application,在这个新的Application上使用“Microsoft dynamics enterpise portal”模板创建新的网站集,整个过程可以成功,但是在打开这个新的站点时看到的是“Unkown server tag 'Dynamics:MasterPageControl‘”的错误,在系统日志中有很多类似“The Web Part page http://server:port/Enterprise%20Portal/default.aspx was not created correctly on the site. ”的错误,给出的原因是“A Web Part or Web Form Control on this Page cannot be displayed or imported. The type is not registered as safe.”。
解决办法:把新Application的web.config和其他成功运行的EP站点web.config对比,你会发现有很多的不同,通过EP安装工具部署的EP站点web.config中除了注册一系列EP的程序集(包括Webpart的程序集)为safe control外,还有其他一些变动,需要做的就是将相应差异的部分更改到新Application的web.config中。不能直接使用正常运行EP站点的web.config,因为其中一些内容比如machineKey的部分是因应用各异的。修改完新Application的web.config,重启IIS后重新创建EP的网站集就能正常浏览了。如果是在已成功运行EP的Application上创建新的EP网站集当然是不需要修改web.config的,使用EP安装工具在新的Application上安装EP应该也是可以的,有兴趣的可以自行测试下。
问题六:这个问题是和问题5有关的,在问题5中使用EP模板在一个Application成功创建EP网站集,网站集能成功浏览,但是在AX开发工具中试图部署一个Managed web content(web part)到这个网站集站点时得到错误“Microsoft Dynamics AX could not locate the Web server. Verify that Enterprise Portal is installed on the Web server. If Enterprise Portal is installed, verify that the server is available on the network.”,这和通过System administration>Setup>Enterprise Portal>Deployments部署所有WEB内容到这个站点时得到的错误也是一样的。
解决办法:在AX Client中部署站点或者Web part等都要用到X++类SysEPDeploymentProxy,比如它的方法deployWebComponent()就是将AOT中一个web的部件部署到EP站点上,它的功能实际上使用了托管类Microsoft.Dynamics.Framework.Deployment.Services.EPDeploymentService,而后者又是对类 SoapHttpClientProtocol的封装,实际上就是调用Web service的代理类,而要调用的Web service是什么呢?这是在X++类SysEPDeploymentProxy.setServiceUrl()设置的,相应的URL可能是:http://epserver:port/_layouts/EPDeploymentService/EPDeploymentService.asmx。问题就在这里,在IIS中检查一下从EP模板创建的站点,这个路径的应用程序是不存在的,要做的就是参照正常的站点在_layouts下新建一个名为EPDeploymentService的应用程序,物理路径C:\Program Files\Microsoft Dynamics AX\60\Setup\EPDeploymentService,回到AX Client重新部署你的Web元素就能成功了。
问题七:使用System administration>Setup>Enterprise Portal>Web sites>Create site创建新的EP站点时可能会遇到错误“服务器无法处理请求。 ---> 系统找不到指定的路径。 (异常来自 HRESULT:0x80070003)”;或者错误“服务器无法处理请求。 ---> The argument you passed is not valid”,你所用的URL可能是http://epserver:port/testsite
解决办法:首先确认在Sharepoint管理站点中成功创建应用http://epserver:port,出现第一个错误的原因是在这个Sharepoint应用中没有可用的EP站点,换句话说,在这个应用中没有问题六中讲到的AX的部署Web服务,在AX的client创建EP站点是通过这个Web service来实现的,所以在这个Sharepoint应用的根路径下要首先有一个可用的EP站点。第一个问题搞清楚了,第二个问题就好理解了,既然应用上的第一个EP站点我们可能部署在根路径/下,那么你要创建的新站点URL应该是/sites/testsite这样的,因为默认Sharepoint只注册根“/”和“Sites”两个管理路径,当然你可以在Sharepoint管理站点上为应用添加额外的管理路径。
问题八:AX2012 R2的EP站点Role center页上显示KPI数据时错误“Unable to retrieve company's currency: Cubes could not be found using the specified connection. Verify that the connection string is correct and that the cubes have been processed.”
解决办法:确认Report server上DynamicsAXOLAP数据源是否有误,需要注意的是R2版本中不再是普通的OLEDB数据源(连接字符串),而是使用数据源类型为“Microsoft Dynamics AX AdoMd”同时连接字符串为空,这主要是因为R2引入了Partitions,在分析服务中会为每个partition创建一个分析数据库,单一的OLEDB连接字符串是不能同时链接到这些数据库的。也正是因为这个原因,如果对应Partition的分析数据库没有处理,就会产生上面的错误,最简单的在SQL Management studio中处理所有的分析数据库。
问题九:AX2012 R2 EP站点的一些Role center页在打开时出现错误“The type 'Microsoft.SharePoint.Portal.Analytics.UI.ReportViewerMessages, Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' could not be found”
解决办法:产生这个错误的原因不清楚,大概是因为Report server和EP使用同一个端口(默认80)引起的问题,解决的方法却是比较简单,找到EP站点的web.config,注释掉相应的行“<!– <add key="ReportViewerMessages" value="Microsoft.SharePoint.Portal.Analytics…… /> –>”,或者在appSettings节中添加“<remove key="ReportViewerMessages" />”也是一样的效果。