小编bar*_*ker的帖子

为什么在Log4Net中命名了logger?

我一直在研究使用Castle Windsor将Log4Net ILog注入类的方法.在大多数例子中,我看到Castle Windsor可以提供一个提供属性注入的"辅助器",并注入ILogger(而不是ILog).我只找到了一个使用构造函数注入的示例,并且未使用辅助方法(请参阅Castle Windsor依赖注入:使用调用方类型作为参数)

在所有这些示例中,似乎Log4Net想要一个命名的记录器.大多数示例引用Log4Net静态方法LogManager.GetLogger(此处为类名).这使得在不使用反射或辅助方法的情况下定义CastleWindsor的依赖性是一个挑战(可以将辅助方法与ctor注入一起使用).在查看Ilya Kogan的问题(上面的URL ...)时,我想我不明白为什么需要,甚至想要一个命名的记录器.我不能在任何地方使用同名的记录器吗?

例如,我不能只用硬编码的XXX名称注册记录器吗?(它似乎工作正常,最后,我只想记录 - 我不关心哪个记录器记录它...)是否存在范围问题?是否存在内存泄漏问题?为什么记录器不能/不应该是单件?

public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Register(
                Component.For<log4net.ILog>().UsingFactoryMethod(() => log4net.LogManager.GetLogger("xxx"))
                );
        }
Run Code Online (Sandbox Code Playgroud)

更新:

经过一些研究,可以使用硬编码的命名记录器 - 例如上面示例中的XXX,但是如果记录器的配置将记录器名称输出到日志文件,并且记录器名称是动态分配给与方法相同的名称,或者class,您可以自动获取对日志来源的引用.日志文件中的上下文可能非常有用.

当专门针对ctor注射时,似乎有5种可能的选择......

  • 使用单例而不使用命名记录器(因此不会在日志文件中报告)
  • 使用ctor注射反射(如Ilya Kogan的例子中所示)
  • 使用财产注入(通过协调人)
  • 使用后尖锐的AOP IL Injection进行记录
  • 使用CTOR注射(通过促进者)

c# reflection log4net dependency-injection castle-windsor

4
推荐指数
2
解决办法
2406
查看次数

是否允许多个XML默认命名空间?

考虑以下xml

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns="mycompany.com.myservice">
<soap:Header>
<To xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://mycompany.com/myservice</To>
<Action xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">mycompany.com/myservice/dosomething</Action>
</soap:Header>
<soap:Body>
<mypayload>hello world</mypayload>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

是使用多个无别名的默认名称空间有效吗?

xml soap namespaces

4
推荐指数
1
解决办法
2353
查看次数

如何在SQL Server中为表创建复合候选键?

请考虑以下表格定义...

表定义

CREATE TABLE [dbo].[Folders](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [UserId] [int] NOT NULL,
    [ParentFolderId] [int] NULL
PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

其他表与此表的主键列具有外键关系[id]

我希望添加一个自引用外键约束,其中父文件夹ID引用同一Folders表中另一条记录的ID字段,但UserId也必须匹配...

自引用外键约束

ALTER TABLE [dbo].[Folders]  WITH CHECK ADD  CONSTRAINT [FK_Folders_ParentFolder] FOREIGN KEY([UserId], [ParentFolderId])
REFERENCES [dbo].[Folders] ([UserId], [Id])
GO
ALTER TABLE [dbo].[Folders] CHECK CONSTRAINT [FK_Folders_ParentFolder]
GO
Run Code Online (Sandbox Code Playgroud)

...但是我遇到了错误...

失误

Msg 1776, Level 16, State …
Run Code Online (Sandbox Code Playgroud)

sql-server candidate-key

4
推荐指数
1
解决办法
4385
查看次数

allowDiskUse 对 mongodb 中的 find() 方法有效吗?

我正在尝试测试一些关于运行缓慢的查询的理论 - 因此我希望我的查询运行缓慢。因此,我在我的收藏中省略了索引。当我运行db.mycollection.find({myfield: /.abc./}).sort({myfield2: 1}, {allowDiskUse: true})方法时,我收到以下错误...

Error: error: {
        "ok" : 0,
        "errmsg" : "Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.",
        "code" : 96,
        "codeName" : "OperationFailed"
}
Run Code Online (Sandbox Code Playgroud)

好的。我想继续在磁盘上排序,但似乎聚合框架命令“allowDiskUse:”对 find() 方法没有执行任何操作。我收到同样的错误。

“allowDiskUse”在与 find() 一起使用时有效,还是仅在与聚合框架一起使用时有效?

我似乎找不到任何说明它是特定于框架的文档,但话又说回来,它似乎不适用于 find()。也许这是一个宽松的答案。我想我正在寻求更具体的答案。

mongodb

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

Installshield文件夹权限不起作用

使用InstallShield 2012 Professional安装ASP.NET网站,以及在网络服务帐户的安全上下文中运行的自定义应用程序池.当我测试网站时,我遇到了权限问题(文件权限),并且网站失败并显示消息"错误:访问被拒绝.".

使用InstallShield,我为每个文件设置权限,以便对用户"Authenticated Users"进行读取访问.我通过导航到"应用程序数据" - >"文件和文件夹"在InstallShield ISM文件中设置权限

  • 选择"目标计算机的文件夹"中的每个文件夹
  • 右键单击"目标计算机的文件夹"中的每个文件夹
  • 选择上下文菜单"属性"
  • 点击"权限"按钮
  • 在"名称:"部分为用户"已验证用户"添加条目,并且域为空(选择"读取和执行","列出文件夹内容","读取")

...然后对每个文件夹反复执行此操作,然后为每个文件执行此操作.

一旦我测试,我发现我有问题.如果我导航到服务器上安装的实际文件并进行检查,它们看起来是正确的,但无法正常运行.事实上,我 - 作为经过身份验证的用户 - 没有权限导航文件夹结构,但因为我是管理员,我可以调整权限并进入.如果我手动重置这些文件(和相关文件夹)的这些权限网站功能正常.这意味着应用程序池设置,文件副本和网络服务帐户都正常运行,并且问题严格与IIS尝试访问的文件的权限相关.

有没有人有这个问题,并克服它?如果是这样,怎么样?(我宁愿避免使用InstallScript来设置权限.)

permissions installshield file

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

需要旧版本的TypeScript安装程序(.MSI或.VSIX) - 0.9.1.1 - 在哪里可以找到?

任何人都知道如何获得旧版本的Typescript的.MSI安装程序 - 版本0.9.1.1的官方URL下载不再可用.

似乎有更新版本1.01.0.1.0可用,但该版本与我试图支持的客户端软件不兼容.

知道如何获得我需要的特定版本吗?

visual-studio-2012 typescript

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

jQuery UI 布局是否与 jQuery 3.3.1 不兼容?

jQuery UI 布局适用于较旧的 jquery 但不适用于较新的 jquery...

工作示例:

<html>
<head>
    <script src="http://layout.jquery-dev.net/lib/js/jquery-1.4.2.js"></script>
    <script src="http://layout.jquery-dev.net//lib/js/jquery-ui-1.7.2.js"></script>
    <script src="http://layout.jquery-dev.net//lib/js/jquery.layout-1.2.0.js"></script>

    <script type="text/javascript">

    var myLayout;

    $(document).ready(function () {
        myLayout = $('body').layout({applyDefaultStyles: true });
     });

    </script>

</head>
<body>

<div class="ui-layout-west">west</div>
<div class="ui-layout-center">center</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

不工作的例子 - 较新的 jQuery

<html>
<head>
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <script
			  src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"
			  integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30="
			  crossorigin="anonymous"></script>
        <script src="https://layout.jquery-dev.net//lib/js/jquery.layout-1.2.0.js"></script>

    <script type="text/javascript">

    var myLayout;

    $(document).ready(function () {
        myLayout = $('body').layout({applyDefaultStyles: true });
     });

    </script>

</head>
<body>

<div class="ui-layout-west">west</div>
<div class="ui-layout-center">center</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是 jQuery 中的重大变化还是 jQuery UI 布局中的问题?

javascript jquery

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

JQuery设置下拉列表框选择选项 - 不是按值,而是按显示文本

这可能已经回答了,但我无法在任何地方找到已回答的问题......

假设我们有以下HTML ...

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Dropdown Test</title>
    </head>
    <body>
        <select name="myDropDownListName" id="myDropDownListID" class="dropdown">
            <option selected="selected" value="0">Please select a value...</option>
            <option value="1">My Custom Value 1</option>
            <option value="2">My Custom Value 2</option>
            <option value="3">My Custom Value 3</option>
        </select>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我不知道索引的"值"值,那么JQuery命令将"我的自定义值2"设置为下拉列表框中当前选择的选项是什么样的,并且只能通过文本"我的"识别项目自定义价值2'?

html javascript jquery

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

如何让 mongodb-compass 的多个实例并行运行

我正在使用 Ubuntu 18.04、mongodb 4.0.3 社区和 mongodb-compass 1.15.4 - 试图让两个 mongodb-compass 实例并排运行。当我双击我的启动器图标时,它会打开 mongodb-compass 的第一个实例。当我第二次双击我的启动器时,它会将焦点设置在 mongodb-compass 的当前运行实例上,但不会打开第二个实例。

我尝试使用命令行调用,并且再次将焦点设置为当前正在运行的实例。

如何启动另一个 mongodb-compass 实例与第一个实例并行运行?

mongodb mongodb-compass

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

如何对 SQLServer 数据库执行 SELECT 查询并使用 PowerShell 迭代结果

假设我有一个包含 3 列的表——“Column1”、“Column2”和“Column3”——所有 3 列的数据类型都是 varchar(100)。

使用 PowerShell,如何连接到 SQL Server 并使用 SqlDataReader 和 ForEach 运算符查看“Column2”的内容?

sql-server powershell foreach sqldatareader

0
推荐指数
1
解决办法
6594
查看次数