小编Mik*_*kke的帖子

PerformanceCounterCategory.GetCategories与Perfmon不一致

好的,所以我基本上试图创建一个已安装的性能计数器类别列表,就像你在PerfMon中获得的那样.为此,我正在使用

System.Diagnostics.PerformanceCounterCategory.GetCategories()
Run Code Online (Sandbox Code Playgroud)

这看起来很有效,直到你检查清单,并发现有些东西丢失了.我发现缺少的第一个是ReadyBoost Cache.这是因为该项目设置为在"x86"上编译.将此更改为"任何CPU"修复了该问题.

然而,仍然有一些缺失,例如,其中一个测试机器有一个"授权管理器应用程序"类别(我的没有,似乎没有人知道原因,或者它来自哪里)但是,在那台机器上,性能计数器类别显示在PerfMon中,但在GetCategories()从C#调用方法时则不显示.

有谁知道为什么?有更可靠的方法PerformanceCounterCategories吗?这是因为我正在使用.Net吗?我可以使用一些原生API吗?

编辑

对不起,我还是不明白.我编写这段代码或许可以更好地说明它:

using System;
using System.Diagnostics;
using System.Linq;
using System.Text.RegularExpressions;
using Microsoft.Win32;

namespace PccHack
{
    class Program
    {
        private static readonly Regex Numeric = new Regex(@"^\d+$");
        static void Main(string[] args)
        {
            var pcc1 = PerformanceCounterCategory.GetCategories();
            Console.Out.WriteLine("Getting automatically from the microsoft framework gave {0} results.", pcc1.Count());
            string[] counters;
            using (var regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009"))
            {
                counters = regKey.GetValue("Counter") as string[];
            }
            var pcc2 = counters.Where(counter => !Numeric.IsMatch(counter)).ToList();
            pcc2.Sort();
            Console.Out.WriteLine("Getting manually from …
Run Code Online (Sandbox Code Playgroud)

.net c# perfmon performancecounter

14
推荐指数
2
解决办法
2292
查看次数

自动路由过滤器拒绝远程请求 - Nexus

我正试图让netty-codec-hhtp进入我的maven项目.我有一个完全标准的Sonatype Nexus设置来代理Maven Central的请求.

<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-codec-http</artifactId>
  <version>4.0.9.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

使用maven构建时失败.如果我在Nexus中手动搜索它,我会找到它,但如果我去下载jar它会告诉我:

404 - Not Found
Automatic routing filter rejected remote request for path /io/netty/netty-codec-http/4.0.9.Final/netty-codec-http-4.0.9.Final.jar from M2Repository(id=central)
Run Code Online (Sandbox Code Playgroud)

这甚至意味着什么,为什么我得到它,也许更重要的是,我该如何解决它?我正在使用Nexus 2.5.0-04和Maven 3.0.4

下载其他工件似乎工作正常.

nexus maven netty

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

Nancy和/或TinyIoC不尊重AsSingleton()

设置:我有一个几乎开箱即用的Nancy + TinyIoC设置运行web服务工作正常.它取决于各种(AsSingleton)服务类.然而,这些不作为单身人员注入,每次都会创建一个新实例.

我按如下方式设置了Nancy bootstrapper:

class MyBootStrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
        var cp = new CertificateProvider();
        container.Register(cp).AsSingleton();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# nancy tinyioc

5
推荐指数
2
解决办法
1750
查看次数

iOS MDM配置文件签名,使用哪个证书?

好的,请看这个图.

有两个小框,表示应如何签署给定的配置文件.

在第2阶段,第1步,它显示"Apple颁发的证书",但它没有说明哪个苹果颁发了证书(他们签发的证书不止一个).我已经尝试过我的开发人员证书和MDM(APNS)证书.这不是其中之一.是否有我需要的第三个魔法证书(我怎么得到它)?

在阶段3,第2步,它显示"身份证书",但同样在细节上有点粗略.我所知道的唯一身份证书是使用设备的私钥安装在设备上的,服务器应该如何使用它来签署配置文件?

我实现这一目标的唯一方法是创建自己的自签名证书,并在设备上预先安装它.显然,这不是一种优雅或特别安全的做事方式.

跟进问题

我的服务器证书由"DigiCert High Assurance EV Root CA"颁发,并在列表中:http://support.apple.com/kb/ht5012,但iOS 6设备在签署配置文件时认为它"不受信任",但就好了对于很奇怪的SSL.iOS 5设备很好.知道为什么吗?

我也不太了解加密位.从MDM文档:"每个设备必须具有唯一的客户端身份证书.您可以将这些证书作为PKCS#12容器或通过SCEP提供.建议使用SCEP,因为协议确保身份的私钥仅存在于设备."

虽然我同意最终只有设备本身知道其私钥才更安全,但它有点问题,因为2048位公钥只能用于加密大约100字节的数据,这对于即使是最小的数据也是不够的有效载荷.

certificate x509 mdm ios

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

使用Nancy + TinyIoC通过Quartz JobFactory注入依赖项

所以我使用Nancy + TinyIoC来运行一个小型的Web服务.这有效.现在我需要创建一个需要一些相同依赖关系的Quartz作业,理想情况下我想使用Nancy的TinyIoC注入这些,如Quartz Tutorial中所述.

我已经找到了一个使用Windsor的例子,他们直接访问了IoC Container,但是根据这里提出的类似问题,南希显然是粗暴的,不必要的.

那么我的问题就是,这样做的正确方法是什么?我的JobFactory的代码如下所示:

public class MyJobFactory : IJobFactory
{
    public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
    {
        return (IJob) TinyIoCContainer.Current.Resolve(bundle.JobDetail.JobType);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这不会返回正确注入实例的作业,而是返回具有新依赖项实例的作业.(这应该是Singletons,这让我相信TinyIoCContainer.Current返回的TinyIoCContainer与Nancy使用的容器不同).

更新
我通过Nancy Bootstrapper设置IoC容器:

public class MyBootStrapper : DefaultNancyBootstrapper
{
    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
        var push = new PushService();
        // object initialization and Event Registration snipped
        container.Register(cp);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net quartz.net nancy tinyioc

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

将十进制转换为精度较低的整数作为字符串

因为有些人显然认为千兆字节作为十进制是准确存储可用存储空间的好方法,我现在有以下代码将其转换为字节表示:

Convert.ToString(Convert.ToInt64(Math.Floor(someDecimal * 1024 * 1024)));
Run Code Online (Sandbox Code Playgroud)

现在虽然这有效(as-in返回预期的结果),但它并不完全优雅.

有没有更优雅的方式来进行这种转换?(地板是必要的).

c# formatting

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