首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器“Devart.Data.Linq”上的异常Devart.Data.Oracle.Linq.Provider

服务器“Devart.Data.Linq”上的异常Devart.Data.Oracle.Linq.Provider
EN

Stack Overflow用户
提问于 2013-08-07 11:24:57
回答 1查看 1.8K关注 0票数 0

我正在尝试在Windows服务器2007 32位上部署我的应用程序。我的申请给了我这个例外

打开DbConnection时出错。bei Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException (String message,Exception e) beDevart.Data.Linq.Provider.k.a.g()beDevart.Data.Linq.Provider.k.b(IConnectionUser A_0) bei Devart.Data.Linq.Provider.DataProvider.ExecuteQuery(CompiledQuery compiledQuery,Object[] parentArgs,Object[] userArgs,(对象Devart.Data.Linq.Provider.DataProvider.CompiledQuery.Devart.Data.Linq.Provider.ICompiledQuery.Execute(IProvider )( bei Devart.Data.Linq.Provider.DataProvider.CompiledQuery.Devart.Data.Linq.Provider.ICompiledQuery.Execute(IProvider compiledQuery,Object[] userArguments) bei Devart.Data.Linq.DataQuery1.i() bei System.Collections.Generic.List1..ctor(IEnumerable1 collection) bei System.Linq.Enumerable.ToList[TSource](IEnumerable1提供者,Object[] userArgs)

在我的程序中执行这一行时

var list = clientCustomers.ToList();

代码语言:javascript
复制
    public Repository(String Connection, String EventPackageName, String EventScopeName)
    {
        this.connectionDict = this.getConnectionInfo(Connection);

        //this.context = new DataContext(connection);//old way
        this.context = new DataContext(Connection, new Devart.Data.Oracle.Linq.Provider.OracleDataProvider());

        this.eventContext = new EventPacDataContext(Connection);
        this.eContext = new Context.EventPacDataContext(Connection, new Devart.Data.Oracle.Linq.Provider.OracleDataProvider());

        this.eventPackageName = EventPackageName;
        this.eventScopeName = EventScopeName;
        this.clientUserName = this.connectionDict["User Id"];
    }

    /// <summary>
    /// Collect all Customers from VIEW
    /// </summary>
    /// <returns>IQueryable<Customer></returns>
    public IQueryable<Customer> GetCustomers()
    {
        try
        {

            var result = from p in this.context.YDEVQUALIBASICs
                         join extended in this.context.YDEVQUALIBASICEXTENDEDs on
                         p.ACCOUNTID equals extended.ACCOUNTID
                         select
                         new Customer
                         {
                             Base = new Customer
                             {
                                 CustomerId = p.CUSTOMERID.ToString(),
                                 CustomerNo = p.CUSTOMERNO.ToString(),
                                 Geburtsdatum = p.DETGEBURTSDATUM.GetValueOrDefault(new DateTime(1900, 1, 1)),
                                 Email = p.DETEMAIL,
                                 BusinessArea = p.ACCBUSINESSAREA,
                                 ContractType = p.ACCCONTRACTTYPE,
                                 ContractTariff = p.ACCCONTRACTARIFF,
                                 SubscribeChannel = p.DETANMELDEKANAL,
                                 PaymentMethod = p.CUSCOLLECTIONIDENT,

                                 CustomerAddress = new Address
                                 {
                                     City = p.CUSCITY,
                                     Street = p.CUSSTREET,
                                     ExtendedInfo = p.CUSEHNR,
                                     StreetNumber = p.CUSHNR,
                                     LCountry = p.CUSCOUNTRYL,
                                     SCountry = p.CUSCOUNTRYS,
                                     ZipCode = p.CUSZIPCODE
                                 },

                                     AccountPerson = new Person
                                     {
                                         Salutation = p.ACCANREDE,
                                         Title = p.ACCAKADEM,
                                         Branche = p.ACCBRANCHE,
                                         Lastname = p.ACCTOMERNAME1,
                                         Firstname = p.ACCTOMERNAME2,
                                         Name3 = p.ACCTOMERNAME3
                                     }
                                 },
                                 CustomerPerson = new Person
                                 {
                                     Salutation = p.CUSANREDE,
                                     Title = p.CUSAKADEM,
                                     Branche = p.CUSBRANCHE,
                                     Lastname = p.CUSTOMERNAME1,
                                     Firstname = p.CUSTOMERNAME2,
                                     Name3 = p.CUSTOMERNAME3
                                 },

                             InternGeolocChecked = extended.DETINTERNGEOLOCCHECKED,
                             InternGeolocStatus = extended.DETINTERNGEOLOCSTATUS,
                         };

            return result;

        }
        catch (ReflectionTypeLoadException ex)
        {
            StringBuilder sb = new StringBuilder();
            foreach (Exception exSub in ex.LoaderExceptions)
            {
                sb.AppendLine(exSub.Message);
                if (exSub is FileNotFoundException)
                {
                    FileNotFoundException exFileNotFound = exSub as FileNotFoundException;
                    if (!string.IsNullOrEmpty(exFileNotFound.FusionLog))
                    {
                        sb.AppendLine("Fusion Log:");
                        sb.AppendLine(exFileNotFound.FusionLog);
                    }
                }
                sb.AppendLine();
            }
            string errorMessage = sb.ToString();
            //Display or log the error based on your application.
            logger.Fatal("Aha: " + errorMessage);
            return null;
        }

        catch (Exception ex)
        {
            logger.Fatal("Customer failed: " + ex.Message + ex.StackTrace);
            throw new DataAccessException("Customer failed", ex);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2013-08-09 09:22:20

当部署在LinqConnect帮助下编写的应用程序时,您应该在全局程序集缓存(GAC)上注册运行时程序集Devart.Data.Oracle.dll、Devart.Data.dll、Devart.Data.Oracle.Linq.dll和Devart.Data.Linq.dll,或者将它们放在应用程序的文件夹中。在部署ASP.NET应用程序时,还必须有可用的Devart.Data.Oracle.Web.dll和App_Licenses.dll程序集。

如果项目可用所有必需的程序集,请执行下列步骤:

  1. 确保您的计算机上安装了Oracle客户端软件;
  2. 在Home连接字符串参数中显式地指定Oracle Home的名称。
  3. 将ORACLE_HOME变量的内容放在操作系统路径变量的第一个位置上;
  4. 确保应用程序的容量(x86或x64)与Oracle的容量相同。

如果在这些步骤之后问题仍然存在,请与我们联系提供有关此问题的更多详细信息,例如:

  • 异常的完整堆栈跟踪;
  • 所述连接线;
  • Oracle客户端的版本;
  • Oracle服务器的版本;
  • 数据库表和相应的实体类的定义等。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18102140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档