U2 Toolkit for .NET - 实体框架示例“EntityFramework_CodeFirst2”未连接
Posted
技术标签:
【中文标题】U2 Toolkit for .NET - 实体框架示例“EntityFramework_CodeFirst2”未连接【英文标题】:U2 Toolkit for .NET - Entity Framework Sample "EntityFramework_CodeFirst2" not connecting 【发布时间】:2012-05-25 22:10:14 【问题描述】:我在尝试修改 EntityFramework_CodeFirst 和 EntityFramework_CodeFirst2 项目时收到此错误:
打开连接 [U2][UCINET-UO] [U2][UCINET-UO]WIN32 API 错误:10053 已建立的连接被主机中的软件中止[Rocket U2][UCINET - UNIRPC][ErrorCode=81009] RPC 失败套接字发送和数据长度错误:36
内部异常:无法将数据写入传输连接:已建立的连接被主机中的软件中止。内部异常:WIN32 API 错误:10053已建立的连接被主机中的软件中止[Rocket U2][UCINET - UNIRPC][ErrorCode=81009] RPC 失败 套接字发送和数据长度错误:36
我已将连接字符串设置为:
<add name="CustomerContext" connectionString="Database=dbPath;UserID=userId;Password=password;Server=serverIp;Pooling=false;ServerType=universe;ConnectTimeout=500;PersistSecurityInfo=true" providerName="U2.Data.Client" />
使用相同的凭据,我可以在 ADO.NET 和 UniObjects 连接上使用 U2 DB Provider for .NET 测试连接程序成功连接。我只是无法让它为 EntityFramework_CodeFirst 项目工作。
UNIRPC 正在主机上运行。端口 31438 正在侦听。防火墙已关闭。
编辑: 我已经设置了环境变量 UCINETTRACE 和 UCINETTRACESWITCH 并且有一个 DataAdapter Sample 的跟踪日志。这是有趣部分的 sn-p。 Full trace here
2012 年 5 月 30 日上午 10:56:53:线程 ID:线程 ID:11 线程名称:光标 #1--UciStatement::OpenServerCursor() 和 SQL String::call *HS.OLEDBINFO('ACCTS', ' ', '', '', '', '1', '', 0, 1) 2012 年 5 月 30 日上午 10:56:53:线程 ID:退出:线程 ID:11 线程名称:UciStatement::OpenServerCursor() 2012 年 5 月 30 日上午 10:56:53:线程 ID:输入:线程 ID:11 线程名称:UciStatement::AssociateServerCursor() 2012 年 5 月 30 日上午 10:56:53:线程 ID:退出:线程 ID:11 线程名称:UciStatement::AssociateServerCursor() 2012 年 5 月 30 日上午 10:56:53:线程 ID:输入:线程 ID:11 线程名称:UciStatement::()ServerExecute 2012 年 5 月 30 日上午 10:56:53:线程 ID:输入:线程 ID:11 线程名称:UciStatement::ServerExecuteSql() 2012 年 5 月 30 日上午 10:56:53:线程 ID:线程 ID:11 线程名称:[U2][UCINET][UNIVERSE]:错误:无法从 @TMP 执行直接选择
编辑 2: 我有 HS.SALES 示例工作,我在 UniVerse 11.4(当前)上。我与 Rocket Support 进行了交谈,但我不知道我需要使用 HS.ADMIN 授权个人 UV 帐户,这可能是问题所在。我认为与数据库的牢固连接会切断它,特别是因为 HS.SALES 正在工作。我仍然需要“SQLize”我的 DICT 文件以允许它们在 ADO.NET (& EF) 上工作,但我现在几乎拥有它。
【问题讨论】:
【参考方案1】:您是否尝试过使用相同连接字符串的 DataAdapter Sample?这管用吗? 你能提供TRACE LOG吗?您需要设置以下内容:
跟踪和调试 要为 .NET 应用程序调试 U2 数据库提供程序,您可以使用 U2 跟踪工具。要激活跟踪工具,请设置以下环境变量:
设置 UCINETTRACE=c:\temp
设置 UCINETTRACESWITCH=4
【讨论】:
对不起,我不熟悉在 Visual Studio 中以这种方式设置环境变量(我使用的是 2010 SP1)。我在网上搜索,发现this way of doing it。我不确定这是否正确,但是当我运行它时,我在日志文件中得到“'U2.Data.Client.Common.UniTrace' 的类型初始化程序引发异常” : "ImageFileMachine:ImageFileMachine.I386I386 U2.Data.Client, Version=1.1.0.0, Culture=neutral, PublicKeyToken=9ab9148678f4f448 Assembly 独立于平台。" 您需要打开控制面板->系统->高级系统设置->环境变量->系统变量。但是您首先关闭了 Visual Studio 2010。当您运行代码时,将生成一个日志文件。例如:c:\temp\ucinet*****.txt。阅读windows7hacker.com/index.php/2010/05/… 还有一个问题。您是否尝试过 DataAdapter 示例代码? 是的,我现在转而尝试使用 DataAdapter,只是为了让连接正常工作。 DataAdapter 示例代码也失败了。 感谢您为我提供日志/跟踪文件。我正在做。我会尽快更新你。【参考方案2】:可以试试U2NETDK v1.2.0吗?我希望它能解决上面提到的问题。
U2NETDK v1.2.0 BETA 包含用于 Visual Studio 2010 的 U2 数据库插件。现在您可以使用 VS2010 Server Explorer 来填充 U2 表、视图和子例程。
它将允许您创建数据集和实体数据模型。
【讨论】:
以上是关于U2 Toolkit for .NET - 实体框架示例“EntityFramework_CodeFirst2”未连接的主要内容,如果未能解决你的问题,请参考以下文章
使用 Microsoft Teams Toolkit for Visual Studio 高效构建一个指示板
使用 Microsoft Teams Toolkit for Visual Studio 高效构建一个指示板
使用 Microsoft Teams Toolkit for Visual Studio 高效构建一个指示板
使用 Microsoft Teams Toolkit for Visual Studio 高效构建一个指示板