标签: enterprise-library

使用Enterprise Library 4.1从多个进程记录到同一文件

我有几个并发运行的进程,我想要登录到同一个文件.

我们一直在使用Enterprise Library 4.1 Logging Application Block(带有a RollingFlatFileTraceListener),它工作正常,除了它在两个进程同时尝试写入日志文件时为日志文件名添加GUID这一事实(a System.Diagnostics.TextWriterTraceListener我相信的怪癖).

我尝试了各种各样的事情,包括Logger.Writer.Dispose()写入日志文件后调用,但每次写入日志条目时都不适合进行阻塞调用.

EntLib论坛建议将MSMQ与分销商服务一起使用,但这不是一个选项,因为我的公司不允许使用MSMQ.

有没有其他方法可以快速轻松地从多个线程/进程登录到同一个文件?

c# logging multithreading enterprise-library

8
推荐指数
1
解决办法
8699
查看次数

记录到文件或事件查看器?

我想知道记录信息消息的"正确"方法是什么; 到文件,或在事件查看器中的特殊日志?

我喜欢记录到文件,因为我可以使用滚动平面文件监听器并查看每天的新记录,而且在事件查看器中我一次只能看到一条消息 - 在文件中我可以很容易地扫描一天.我的同事争辩说,文件占用空间,他喜欢在一个地方发出警告,错误和信息消息.你怎么看?有首选方式吗?如果是这样,为什么?

此外,任何方法中是否存在并发问题?我已经读过entlib是线程安全的,如果监听器不是线程安全的话,会生成一个Monitor.Enter,但我想确定(我们只是使用Logger.Write).我们正在使用entlib 3.1.

先感谢您.

.net c# logging enterprise-library thread-safety

8
推荐指数
1
解决办法
2617
查看次数

企业库验证块

我刚开始使用ms验证块,我觉得很棒.但是有关层之间数据验证的几个问题.

目前我正在使用存储库模式作为数据访问层的桥梁.在我的逻辑层中,我正在填充我的业务对象,然后使用验证块进行验证,然后将其传递到我的存储库层,然后将其传递到数据访问层以进行插入.我应该在存储库中再次验证它吗?如果是这样,我再次使用该块验证还是有更好的方法在此级别执行此操作?

c# architecture asp.net validation enterprise-library

8
推荐指数
1
解决办法
389
查看次数

如何从企业库(c#)中的ExecuteNonQuery获取输出参数值?

我的存储过程是:

create Procedure spSetUser
(
    @Name NVarchar(50),
    @OrganicTitle NVarchar(30),
    @UserName NVarchar(20),
    @Password NVarchar(16),
    @Result Int Output
)
As
Begin
    Set @Result = -1    
    If Not Exists(Select UserId From dbo.Users Where UserName=@UserName)
    Begin
        Insert Into dbo.Users (Name,OrganicTitle,UserName,[Password]) 
        Values(@Name,@OrganicTitle,@UserName,@Password) 
        Set @Result = SCOPE_IDENTITY()
    End
    Return
End
Go
Run Code Online (Sandbox Code Playgroud)

我的班级是(在microsft企业库中):

[DataObjectMethod(DataObjectMethodType.Insert)]
public Int32 SetUser(UserFieldSet Data)
{
    Int32 Result = 0;
    object[] values = new object[] { Data.Name, Data.OrganicTitle, Data.UserName, Data.Password, Data.UserId };
    Result = Db.ExecuteNonQuery("spSetUser", values);
    return Result;
}
Run Code Online (Sandbox Code Playgroud)

结果是执行存储过程的行受影响,但我想得到@Result的值(过程的输出参数),我该如何得到它?

UserFieldClass是:

public class UserFieldSet …
Run Code Online (Sandbox Code Playgroud)

c# enterprise-library

8
推荐指数
1
解决办法
2万
查看次数

无法解析符号'EnterpriseLibraryContainer'

我刚刚开始试用新的MS Enterprise Library 6.0 Logger块.当我尝试创建LogWriter时,我收到错误:

无法解析符号'EnterpriseLibraryContainer'

我有所有的参考和使用,但不能通过这个错误.

这个问题有解决方案吗?

c# enterprise-library

8
推荐指数
1
解决办法
7679
查看次数

命名空间"Microsoft"中不存在类型或命名空间名称"Practices"

我正在使用Microsoft Visual Studio 2005进行c#我的代码上有以下命名空间

using Microsoft.Practices.EnterpriseLibrary;
using Microsoft.Practices.EnterpriseLibrary.AppSettings;
using Microsoft.Practices.EnterpriseLibrary.Data;
Run Code Online (Sandbox Code Playgroud)

我继续得到这个错误:

- 命名空间"Microsoft"中不存在类型或命名空间名称"实践"(您是否缺少程序集引用?)

我该怎么办?

提前致谢.:)

c# enterprise-library namespaces visual-studio

8
推荐指数
1
解决办法
3万
查看次数

await/async Microsoft Practices企业库数据

我有一个较旧的应用程序,我在那里用来Microsoft.Practices.EnterpriseLibrary.Data从数据库中获取数据.我最近升级到.NET 4.5并希望利用await/async.

根据命名标准,我没有看到任何以"Async"结尾的方法,即使在最新版本的软件包中也是如此.是否可以在不手动使其异步的情况下对此ADO .NET库使用await/async?

c# ado.net enterprise-library async-await asp.net-4.5

8
推荐指数
2
解决办法
3216
查看次数

从EnterpriseLibrary获取LONG RAW数据(字节)

我有问题从oracle获取图像字节数据.reader("image")总是返回0长度.他们的任何解决方法?如果我使用oledb它然后它的工作但不工作Microsoft EnterpriseLibrary.

using (IDataReader reader = ExecuteNonQueryOracle(Query)) 
    {
            while (reader.Read) {
                dict("image") = reader("image");
            }
    }
public object ExecuteNonQueryOracle(string Query)
{

        using (dbCommand == CurrentDatabase.GetSqlStringCommand(Query)) {
            dbCommand.CommandType = CommandType.Text;
            return CurrentDatabase.ExecuteReader(dbCommand);
        }

}
Run Code Online (Sandbox Code Playgroud)

c# oracle enterprise-library oracle11g

8
推荐指数
1
解决办法
224
查看次数

Microsoft企业库中Unity应用程序块的用途?

有人可以向我解释Unity应用程序块的用途是什么?我试着查看文档,但它非常抽象.

Unity块有哪些实际用途?

enterprise-library unity-container

7
推荐指数
1
解决办法
4363
查看次数

企业图书馆的利弊

我正在开发一个复杂的业务应用程序,其中将有一个数据访问层.截至目前,我们有两个选择 - 要么创建我们自己的自定义数据访问层,要么使用Microsoft内置库.我正在寻找一些基本的理由来选择其中一种.

任何回复将受到高度赞赏.

c# asp.net enterprise-library data-access-layer

7
推荐指数
2
解决办法
4089
查看次数