我正在尝试将使用1.1版企业库缓存块的应用程序转换为2.0版本.我认为我真正遇到的问题是,不同EntLib部件的配置被拆分为多个文件.显然,这曾经由ConfigurationManagerSectionHandler处理,但现在已经过时,支持.NET 2.0中的内置配置机制.
我很难找到一个如何进行配置文件拆分的好例子,特别是在EntLib的上下文中.还有其他人处理过这件事吗?
我们有几种登录.NET(C#)服务器应用程序的选择.我们将使用企业库.所以这里有方法:
1)同步向MSMQ写入日志,然后用Win Service读取MSMQ.队列位于服务器应用程序的本地计算机上.
2)同步写入磁盘(即滚动文本文件).
3)同步将日志写入数据库(Oracle,在我们的应用程序中).
日志量可能相当高.那么哪一个是最高效的?我猜订单是1,2,3.我是对的吗?除了写入速度之外,在这种特定情况下还有其他性能因素吗?还有其他选择,我在这里没有指出,这可能是更好的方法吗?
我有一个相对基本的问题,但实际上只需要一些清晰度,我一直在使用Prism(复合应用指南)在C#中创建一个WPF MVVM桌面应用程序,这一点我都清楚(或者我认为)沿着与IoC和基于模块的架构等.同时我开始使用MEF并意识到两者之间存在一种灰色区域(我已经发现并阅读了许多关于在IoC容器中托管MEF扩展的文章/博客类似.
但是......最近我开始关注企业库5,这是什么导致了我的困惑.它们在哪里组合在一起?所以Prism使用DI和基于模块的架构...... EntLib使用Di和应用程序块类型架构...... MEF根本不使用DI?这是否意味着EntLib和Prism是完全独立的架构方法,或者一个是另一个的子集?MEF也可以和/两者一起使用吗?
任何解释都是最受欢迎的.
非常感谢
我最近开始使用现有项目,它与Microsoft.Practices.EnterpriseLibrary.Data对象一起使用.
现在我想在一个事务中执行多个存储过程(1:n插入必须全部失败或成功)
但我不知道如何......
谁能帮我吗?
在这个项目中执行sp的典型代码如下所示:
Database oDatabase = DatabaseFactory.CreateDatabase(CONNECTION_STRING_KEY);
DbCommand oDbCommand = oDatabase.GetStoredProcCommand("upCustomer_Insert");
Int32 iCustomerKey = 0;
oDatabase.AddInParameter(oDbCommand, "Firstname", DbType.String, p_oCustomer.FirstName);
oDatabase.AddInParameter(oDbCommand, "Lastname", DbType.String, p_oCustomer.LastName);
oDatabase.ExecuteNonQuery(oDbCommand);
Run Code Online (Sandbox Code Playgroud) 我正在使用企业库日志记录和异常处理.
目前我在配置文件中添加连接字符串,这意味着它是静态的.
我的问题是用户可能每次都连接到不同的数据库,具体取决于他的用户名.有没有办法在运行时更改连接字符串?
我正在尝试为Enterprise Library Logging编写一个自定义跟踪侦听器,它将所有日志消息发送到任意WCF端点.这背后的想法是我可以在另一端设置一个简单的控制台应用程序,它可以实时打印出所有日志消息.
我的问题分为两部分:
在我的样本中RemoteClient派生自ClientBase<T>.
[ConfigurationElementType(typeof(CustomTraceListenerData))]
public class RemoteTraceListener : CustomTraceListener
{
public override void Write(string message)
{
RemoteClient client = new RemoteClient();
client.Open();
client.Write(message);
client.Close();
}
public override void WriteLine(string message)
{
RemoteClient client = new RemoteClient();
client.Open();
client.WriteLine(message);
client.Close();
}
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
{
if (data is LogEntry && this.Formatter != null)
{
WriteLine(this.Formatter.Format(data as LogEntry));
}
else
{
WriteLine(data.ToString()); …Run Code Online (Sandbox Code Playgroud) 我想知道iOS开发人员计划和iOS企业计划之间有什么不同,以及如何在iOS企业计划中公开我的应用程序.什么是可用的,我已经在iOS开发人员计划(Appstore)上传了其他我的应用程序,但我不知道知道如何在企业计划中发布.谁能帮帮我吗?
当我分析我的应用程序时,似乎有70%的时间花在了方法上:Microsoft.Practices.EnterpriseLibrary.Configuration.Storage.ConfigurationChangeWatcher.Poller()从我可以收集的内容来看,这个方法应该每50秒调用一次我发现很难相信它实际上占用了那么多时间.有谁知道如何降低调用此方法的频率?
我的ASP.NET 4.0生产应用程序遇到重新发生的问题,导致站点由于超时错误而无响应.
以下是该应用程序的简要概述.该应用程序驻留在3台服务器上; Web服务器,应用服务器和运行SQL Server 2008的数据库服务器.所有服务器都在Windows Server 2008上运行.Web服务器驻留在公共域中.应用服务器驻留在DMZ中,通过端口80和443通过WCF在Web服务器之间进行开放式通信.数据库服务器驻留在私有域中,通过端口1433与应用服务器进行开放式通信.该应用程序已经生产了一段时间,并且只在上周经常遇到这些问题.没有代码更改,托管服务提供商表示最近没有对服务器进行任何更改.
在Web服务器上,应用程序遇到下面发布的错误(错误1).快速修复解决方案是重新启动应用服务器IIS进程,但是,这是一个反复出现的问题,并导致业务所有者出现重大中断.
应用程序的DAL使用Enterprise Library v4.1打开与数据库的连接.我已经包含了2个代码片段,负责启动呼叫(代码1和代码2).以各种其他方法重复该方法.ExecuteReader方法可能没有正确关闭连接吗?没有覆盖允许我指定ConnectionBehavior来关闭连接的方法.
我们执行了SQL配置文件分析,并确定没有与DB的延迟打开连接.
在研究问题的同时,有人建议企业库可能存在连接未被妥善处理的错误,但是在帖子上没有验证.如何确定问题的原因?或者解决问题的适当行动方案是什么?我可以增加池大小,但这似乎只是一个临时解决方案.
错误1:
***System.ServiceModel.FaultException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Practices.EnterpriseLibrary.Data.Database.GetNewOpenConnection() at Microsoft.Practices.EnterpriseLibrary.Data.Database.GetOpenConnection(Boolean disposeInnerConnection) at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteReader(DbCommand command) at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteReader(String storedProcedureName, Object[] parameterValues) at CityStoreDAL.NavigationProvider.GetNavigator(Int32 navigatorID) in c:\TFS\CityStore\DEV\SRC\CityStoreDAL\NavigationProvider.cs:line 41 at CityStoreBLL.Navigation.GetNavigator(Int32 navigatorID) in …Run Code Online (Sandbox Code Playgroud)