我一直在努力在我的ASP.NET MVC 3应用程序上设置NLog v2,到目前为止它运行良好.(我使用的是来自官方的NuGet库包).然而,当我尝试更改日志布局包括任何aspnet-*布局渲染器,我得到一个配置错误.我已将问题减少到以下最小用例:
在configSections块中:
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
Run Code Online (Sandbox Code Playgroud)
Nlog块:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true">
<variable name="logDirectory" value="C:\Logs" />
<targets>
<target name="logFile" xsi:type="File" fileName="${logDirectory}\app.log"
layout="${aspnet-user-identity}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
Run Code Online (Sandbox Code Playgroud)
如果我改变布局中使用不属于ASPNET*家族的一部分渲染器的任意组合,这个效果很好(我没有测试过的每一个,但我已经看了不少).我得到的错误在这里:
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: An error occurred creating the configuration section handler for nlog: Exception occurred …
Run Code Online (Sandbox Code Playgroud) 我们很好地使用TeamCity部署了持续集成环境.当我们完成CI流程并转向持续部署时,我们遇到了管理生产密码的问题.对于配置中的其他更改,我们使用Web.Config转换.但是,我真的不想在构建配置文件中烘焙生产密码.
在CI/CD之前,我们将采用Web.config,使用aspnet_regiis解密连接字符串,更改密码,然后重新加密.显然,这很容易出错,完全没有CI/CD的精神.
我有几个其他的想法,基本上都是关于在部署脚本中使用某些东西重新编写然后加密文件的连接字符串部分,但似乎这必须是一个常见的问题,并且必须有一些接受解决方案 但到目前为止,我找不到它.有没有"正确的方法"?
谢谢!
我一直在为WCF服务创建自定义用户名/密码验证器,并在配置项customUserNamePasswordValidatorType上运行.我已经能够通过以下示例使我的代码工作,但我只是不明白发生了什么.不幸的是,MSDN文章没有提供太多细节.
这是Microsoft提供的示例:
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Microsoft.ServiceModel.Samples.CalculatorService.CustomUserNameValidator, service" />
</serviceCredentials>
Run Code Online (Sandbox Code Playgroud)
我正在尝试了解customUserNamePasswordValidatorType的两个参数:"Microsoft.ServiceModel.Samples.CalculatorService.CustomUserNameValidator"和"service".
有人可以帮我理解这些参数是什么意思吗?
谢谢!
在我的工作团队中,我们依赖两个 NuGet 提要:来自 NuGet.org 的官方提要用于公共包,而我们文件服务器上的一个文件夹用于内部包。
这对我们来说效果很好,但我认为我们有一个潜在的问题。看起来 NuGet 根据包名称和版本号解析依赖项。只有一个供稿在起作用,这似乎不是问题。使用多个提要时,存在名称冲突的风险。根据 NuGet 的解析规则,无论提要如何,它看起来都会选择最高版本号。
这让我们陷入了困境。这不太可能发生,但如果有人在 NuGet.org 提要上发布一个包,该包与我们内部提要上的包名称相同,我们最终可能会包含一个意外的包。
我可以想到两种方法来解决这个问题:
1) 将我们依赖的包拉入我们的私人提要。虽然这是可行的,但由于不断将软件包更新下载到我们的私人提要中的管理负担,它并不是很有吸引力。
2) 通过 NuGet.org 提要发布占位符包以保留包名称。这似乎可行,但对我来说感觉像是一种黑客攻击。
有没有更好的办法?
谢谢你的帮助!
我正在构建一个使用WCF调用多个外部端点的应用程序.除URI外,所有远程端点都相同.我想将它们视为一个池:通过配置添加和删除端点,让应用程序了解该做什么.
我最初的计划是在app.config中定义一个端点,然后迭代我的端点列表并动态更新client.Endpoint.Address以指向正确的位置.不幸的是,该属性是只读的,导致该计划不可行.
我有点难过.关于如何实现这一目标的任何建议?
我刚开始使用MVC并试图了解设计应用程序背后的最佳实践.在WebForms世界中,我通常只创建了一个Classes文件夹,其中存储了所有*.cs文件.但是,由于MVC使用文件夹结构创建不同命名空间的方式,我不确定再做什么是正确的.我似乎无法从微软那里找到关于这个主题的任何指导,所以我希望这里有人能指引我朝着正确的方向前进.
有没有一种正确的方法来组织MVC应用程序中的文件?而且,更一般地说,是否有权威的地方寻找这种最佳实践指导?
我最近碰到了几个实例,我无法确定给定应用程序或DLL引用哪个.config文件.我已经能够通过一些试验和错误来弄明白,但我希望有更好的方法.我真的很想听听一些建议.
谢谢!
我正在回顾一些关于登录.NET的旧问题.许多帖子提到使用日志记录外观在应用程序和所选日志框架之间创建松散耦合.这看起来很简单,直到我开始审查日志框架.我查看了Common.Logging,它有一些有趣的功能,但看起来开发已经停止了.我看着温莎城堡,但如果我只是想抽象出日志界面,这似乎有点过头了.
我发现的大多数问题都比较老,所以我希望景观有所改变.关于"正确"的立面使用是否有共识?或者我应该咬紧牙关并直接实施日志记录?
谢谢!
我有一个ASP.NET应用程序,它依赖于Random类来生成伪随机字符串.它使用以下代码(这是Google为应用程序SSO提供的更大范围的示例代码的一部分):
public static class SamlUtility
{
private static Random random = new Random();
private static char[] charMapping = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p' };
public static string CreateId()
{
byte[] bytes = new byte[20]; // 160 bits
random.NextBytes(bytes);
char[] chars = new char[40];
for (int i = 0; i < bytes.Length; i++)
{
int left = (bytes[i] >> 4) & 0x0f;
int right = bytes[i] & 0x0f;
chars[i …
Run Code Online (Sandbox Code Playgroud) 我主要从事小型个人项目.我的挑战之一是源代码存储库维护.我已经使用了我的MSDN许可证提供的Team Foundation Server的基本版本,虽然它工作得很好,但它并不理想(我不会像我应该那样进行备份等).我真的宁愿付钱让它托管.我喜欢TFS,但我也对其他选项持开放态度(因为托管的TFS看起来真的很贵).
有关提供商的任何建议吗?只要它们与Visual Studio很好地集成,我愿意考虑任何事情.
晚上好,
我正在努力解决单元测试问题,在确定单元测试进入集成测试之前,我有多大的麻烦.
我正在研究的项目的一个例子:它有一个类,它使用DirectorySearcher对Active Directory执行LDAP搜索,并将结果作为Person对象返回.我的第一个倾向是获取DirectorySearcher的接口,然后创建一个相当复杂的存根,我可以用它进行测试.但是,这证明是有问题的,因为DirectorySearcher似乎没有使用接口,并且需要大量代码才能成功地将其存根.
我的下一个想法是创建一个内部使用DirectorySearcher的Searcher类,它可以让我测试LDAP结果和Person对象映射之间的映射,但这不会让我受益匪浅,而且它还是另一个抽象层次.
所以我想底线是这样的:有没有一种结构方式,所以我可以完成单元测试的大部分工作?我真的宁愿保持集成测试套件尽可能小,因为我必须对不断变化的外部数据源进行测试.我怀疑有这样做的模式,但我一直无法找到它.
谢谢!