Skip to main content

Business connector error On EP page Deployment in Axapta

Error Description:

While deploying EP page form Ax AOT getting business connector error.

Error  “The Web Part page  was not created correctly on the site. No .NET Business Connector session could be found.”

 Session Release for Microsoft Dynamics failed.  
 No .NET Business Connector session could be found.  
 Microsoft.Dynamics.Framework.BusinessConnector.Session.Exceptions.NoKernelSessionException  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsSession.get_AxaptaAdapter()  
   at Microsoft.Dynamics.Framework.Portal.AxWebSession.WebSessionClientRemove()  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsSession.Release(ICacheContext context)  
 Session log on for Microsoft Dynamics failed.  
 Dynamics Adapter LogonAs failed.  
 Microsoft.Dynamics.Framework.BusinessConnector.Session.Exceptions.FatalSessionException  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsSession.HandleException(String message, Exception exception, HandleExceptionCallback callback)  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsAdapter.LogonAs(String user, String domain, NetworkCredential bcProxyCredentials, String company, String language, String objectServer, String configuration)  
   at Microsoft.Dynamics.Framework.Portal.AxWebSession.OnLogon(IAxaptaAdapter axaptaAdapter)  
   at Microsoft.Dynamics.Framework.Portal.AxSharepointWebSession.OnLogon(IAxaptaAdapter axaptaAdapter)  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsSession.Init(ICacheContext context)  
 Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException  
   at Microsoft.Dynamics.BusinessConnectorNet.Axapta.Logon(BC_PROXY_ACCOUNT_INFO* pBCProxyAccountInfo, String company, String language, String objectServer, String configuration)  
   at Microsoft.Dynamics.BusinessConnectorNet.Axapta.LogonUsingBCProxyAccount(_SEC_WINNT_AUTH_IDENTITY_W* pImpersonatedUserAccount, NetworkCredential bcProxyCredentials, String company, String language, String objectServer, String configuration)  
   at Microsoft.Dynamics.BusinessConnectorNet.Axapta.LogonAs(String user, String domain, NetworkCredential bcProxyCredentials, String company, String language, String objectServer, String configuration)  
   at Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsAdapter.LogonAs(String user, String domain, NetworkCredential bcProxyCredentials, String company, String language, String objectServer, String configuration)  

Solution:
1.First thing to check is whether the business connector on your IIS machine is set up and pointing to the correct AOS.
2.Check Ax Client configuration for business connection .
3. Open Dynamics AX, Go to AOT->Classes->SysDevelopmentProxy and compile it .

4 Verify the following task.
The Business Connector proxy exists in Active Directory.
The Business Connector is a member of the dbcreator role in SQL Server.
The Business Connector proxy is a member of the Performance Monitor Users,
Power Users, IIS_WPG, and WSS_WPG Windows groups.
The IIS application pool identity for your SharePoint 80 site uses the
Business Connector proxy (see “Configure IIS for SharePoint Services and Enterprise portal”
in this white paper).
You are a member of the Admin group in Microsoft Dynamics AX and a member
of the Administrators group on the server.

5.Full compile AOT in last

6.Check for domain setting for bcproxy account.
its should be never expired password type account.

7. Install .net Framework 2.0,3.5,4.0 etc.

8.Uncheck  the Anonymous user of "IIS \ Directory Security \ Authentication and access control
"Add the BCProxy user to the local Administration group on the IIS server.
Then restart IIS and AX.


Popular posts from this blog

Code to get customer Primary Address in Ax 2012

Below Code to get customer Primary Address in Ax 2012. CustTable custTable_P; DirPartyTable dirPartyTable_P; DirPartyLocation dirPartyLocation_P; DirPartyLocationRole dirPartyLocationRole_P; LogisticsLocation logisticsLocation_P; LogisticsLocationRole logisticsLocationRole_P; LogisticsPostalAddress logisticsPostalAddress_P; LogisticsPostalAddress primaryAddress_P; while select custTable_P where custTable_P.AccountNum =='ED_01029' join dirPartyTable_P where dirPartyTable_P.RecId == custTable_P.Party join dirPartyLocation_P where dirPartyLocation_P.Party == custTable_P.Party && dirPartyLocation_P.IsPrimary==NoYes::Yes join dirPartyLocationRole_P where dirPartyLocationRole_P.PartyLocation == dirPartyLocation_P.RecId join logisticsLocationRole_P where logisticsLocationRole_P.RecId == dirPartyLocationRole...

Table lists which can have large number of records in Ax 2012

If you are facing database or application performance issue then you can check these tables that may have large number of records. ECORESPRODUCTVARIANTDIMENSIONVALUE INVENTBATCH ECORESPRODUCTMASTERDIMENSIONVALUE ECORESPRODUCTMASTERDIMENSIONVALUE ECORESPRODUCT ECORESPRODUCTTRANSLATION ECORESPRODUCT ECORESPRODUCTVARIANTDIMENSIONVALUE INVENTDIMCOMBINATION ECORESRELEASESESSIONPRODUCT ECORESRELEASEPRODUCTLEGALENTITY INVENTSUMLOGTTS INVENTCOSTLISTPARM GENERALJOURNALACCOUNTENTRY GENERALJOURNALACCOUNTENTRYZAKAT_SA SMMTRANSLOG LEDGERENTRYJOURNALIZING DIMENSIONFOCUSBALANCE MARKUPTRANS INVENTTRANSPOSTING INVENTREPORTDIMHISTORY SALESPARMLINE SOURCEDOCUMENTLINE INVENTTRANS TRANSACTIONLOG INVENTTRANSORIGIN INVENTSETTLEMENT SALESPARMSUBTABLE SALESPARMTABLE SOURCEDOCUMENTHEADER SALESPARMUPDATE SQLSYNCINFO GENERALJOURNALENTRY SUBLEDGERVOUCHERGENERALJOURNALENTRY CUSTSETTLEMENT SMMACTIVITYPARENTLINKTABLE INVENTSUMDATETRANS LEDGERTRANSSTATEMENTTMP DIMENSIONFOCUSLE...

Code to get Invoice settlement data for customer in ax 2012

This is simple Code to get Invoice settlement amount data for customer payment in ax 2012. This data is after posting of data. select sum(SettleAmountCur) from custSettlement where custSettlement.TransRecId == custtrans.RecId If you want get settlement amount before posting than you can refer spectrans table.The table SpecTrans contains all the transactions marked for settlement for payment journal. while select spectrans join custtransopen join custtrans where spectrans.SpecCompany == ledgerjournaltrans.DataAreaId && spectrans.SpecTableId == ledgerjournaltrans.TableId && spectrans.SpecRecId == ledgerjournaltrans.RecId && spectrans.RefCompany == custtranssopen.DataAreaId && spectrans.RefTableId == custtranssopen.TableId && spectrans.RefRecId == custtranssopen.RecId && custtransopen.RefRecId == custtrans.RecId && custtransopen.AccountNum == custtrans.AccountNum { info...