09.05.2013, 18:26 | #1 |
Участник
|
Axapta 2009 напрямую из ASP.NET
Наверное, всем, кто поупражнялся в использовании Портала, в какой-то момент приходила мысль о возможности использования Аксапты как источника данных и бизнес-логики для создания легкого сайта, не отягощенного SharePoint-ом.
Как мне показалось, единственным способом получить данные из Аксапты на asp-странице является использование контрола AxDataSource, для которого нужно выбрать заранее созданный в Аксапте DataSet. Аксаптовский DataSet чем-то очень похож на DataSet в web-проекте на С#. Такой же набор таблиц со связями. Только на C# DataSet нужно собирать в web-проекте, а, еcли использовать Аксаптовский, то он уже готов и нужно просто прицепиться к нему AxDataSource-ом. И все, вроде, замечательно работает внутри Visual Studio 2008 на встроенном веб-сервере, но, как только мы размещаем приложение на IIS, то присутствие на asp-странице AxDataSource сразу же приводит к ошибке, выскакивающей в браузере: Цитата:
Server Error in '/' Application. No .NET Business Connector session could be found. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: Microsoft.Dynamics.Framework.BusinessConnector.Session.Exceptions.NoKernelSessionException: No .NET Business Connector session could be found. Source Error: Line 43: <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />Line 44: Line 45: <dynamics:AxDataSource ID="AxDataSource1" runat="server" Line 46: DataSetName="EPReferral" ProviderView="Referral">Line 47: </dynamics:AxDataSource> Source File: c:\A5\Default.aspx Line: 45 Stack Trace: [NoKernelSessionException: No .NET Business Connector session could be found.] Microsoft.Dynamics.Framework.BusinessConnector.Session.DynamicsSession.get_AxaptaAdapter() +55 Microsoft.Dynamics.Framework.Metadata.Ax.MetadataCache.GetDataSetMetadata(ISession session, String dataSetName) +42 Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxDataSource.GetMetadata(String dsName, Boolean reThrow) +286 Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxDataSource.ValidateDataSetNameAndProviderView(String dsName, String providerName, DataSetMetadata& metadata) +103 Microsoft.Dynamics.Framework.Portal.UI.WebControls.AxDataSource.set_DataSetName(String value) +105 ASP.default_aspx.__BuildControlAxDataSource1() in c:\A5\Default.aspx:45 ASP.default_aspx.__BuildControlform1() in c:\A5\Default.aspx:18 ASP.default_aspx.__BuildControlTree(default_aspx __ctrl) in c:\A5\Default.aspx:1 ASP.default_aspx.FrameworkInitialize() in c:\A5\Default.aspx.cs:912307 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +55 System.Web.UI.Page.ProcessRequest() +91 System.Web.UI.Page.ProcessRequest(HttpContext context) +240 ASP.default_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\bc314b82\d1cf965\App_Web_goaoiejq.0.cs:0 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171 Version Information: Microsoft .NET Framework Version:2.0.50727.5466; ASP.NET Version:2.0.50727.5456 Дело в том, что сама сессия с Аксаптой, вроде бы, предварительно создается методом logon( ",",",") класса Axapta в нэйм-спейсе Microsoft.Dynamics.BusinessConnectorNet и существование сессии проверяется выводом ее номера и количества подключений, но AxDataSource упорно эту сессию видеть не хочет. Очень хотелось бы знать, - кто-нибудь занимался программированием на asp.net напрямую без SharePoint, используя в качестве источника данных Аксапту и каким образом обходил описанную сложность? Ах, да, самое интересное! Если для созданного легокого сайта пул приложений заменить с родного для сайта, на пул приложений работающего Портала на SharePoint, то все начинает работать. AxDataSource видит сессию и нормально таскает данные из Аксапты. Но, при этом любые попытки натаскать настройки из web.config Портала в web.config легкого сайта ни к чему не приводят! |
|
Теги |
asp.net |
|
|