小编ang*_*son的帖子

在IIS7上托管Mercurial

请注意,这可能最适合serverfault.com,但由于它是关于托管程序员源代码存储库,我不完全确定.我先在这里发帖,相信它会在必要时进行迁移.

我正在尝试在我自己的服务器上托管我的Mercurial存储库的克隆(我在其他地方有主要的repo),并且我正在尝试在IIS下设置Mercurial.

我在这里按照指南,但我收到一条错误消息.

解决:有关详细信息,请参阅此问题的底部.

错误消息是:

mercurial.error.RepoError:找不到存储库/路径/到/ repo /或/ config

这就是我做的.

  1. 我安装了Mercurial 1.5.2
  2. 我创建了c:\ inetpub\hg
  3. 我按照网页的说明下载了hg源代码,并将hgweb.cgi文件复制到了c:\ inetpub\hg(注意,网页说hgwebdir.cgi,但是这个特定的文件不存在hgweb.cgi,但是,这可能是问题的根源?)
  4. 我添加了一个hgweb.config,其中包含以下内容:

    [paths]
    repo1 = C:/hg/**
    [web]
    style = monoblue
    
    Run Code Online (Sandbox Code Playgroud)
  5. 我创建了c:\ hg,创建了一个子目录测试,并在其中创建了一个存储库

  6. 我从网站上安装了python 2.6.5,最新的2.6版本(网页提到我需要安装正确的版本,否则我会收到一条特定的错误信息,因为我没有收到类似于上面提到的错误消息,我认为2.6.5不是问题)
  7. 我添加了一个新的虚拟主机hg.vkarlsen.no,将其指向c:\ inetpub\hg
  8. 对于这个主机,我在Handler Mappings部分下添加了一个脚本映射,根据c:\python26\python.exe -u %s %s网站上的说明将*.cgi映射到.

然后我通过导航到http://hg.vkarlsen.no/hgweb.cgi测试它,但是我收到一条错误消息.

为了更容易测试,我下载到命令提示符,导航到c:\ inetpub\hg,并执行以下命令(错误消息是下面文本的一部分):

C:\inetpub\hg>c:\python26\python.exe -u hgweb.cgi
Traceback (most recent call last):
  File "hgweb.cgi", line 16, in <module>
    application = hgweb(config)
  File "mercurial\hgweb\__init__.pyc", line 12, in hgweb

  File "mercurial\hgweb\hgweb_mod.pyc", line …
Run Code Online (Sandbox Code Playgroud)

mercurial iis-7 windows-server-2008

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

将元信息附加到.NET中的对象

我很确定这是一个重复的问题,但我找不到原文.

我得到一些我需要"附加"一些信息的对象.基本上,如果该对象回到同一段代码,我需要看到我以前见过它.

即.这样的事情:

Dictionary<WeakReference<ObjectType>, string> _Cache;
Run Code Online (Sandbox Code Playgroud)

注意那里的弱引用(我知道WeakReference不是通用的btw),我需要使缓存的键成为弱引用,以处理对象被GC控制掉的事实.

现在,我可以使缓存充满弱引用,但我似乎回想起.NET中已经存在的类似类型的系统,它与对象一起自动GC.

请注意,我不记得这样的开销,所以在确定这是一个比我自己的缓存更好/更好的解决方案之前,我将确保阅读有关主题.不幸的是我无法更改有问题的对象,所以我需要在其他地方跟踪这个元信息.

我的局限:

  • 对象不是我的,所以我不能以任何可能的方式改变它
  • 我不能从对象继承,因为它是密封的,此外,我了对象,我没有构造它们,所以我必须能够用一个后代类型的新对象替换一个实例有用
  • 对象是GC控制的,所以我不能只使用一个字典,它将慢慢填满,或者通过"引用"到非对象的对象,或者将保持对象,我需要一个弱的字典引用键(因此:自定义词典)
  • 这些对象,虽然我可以将它们封装在我自己的代码中并因此随身携带所需的信息,然后传递回我自己控制的框架,并从同一个回馈给我,因此我需要能够检索/仅使用相关对象查找旧信息

基本上,像:

PropertyAttacher.Attach(instance, "Name", name);
Run Code Online (Sandbox Code Playgroud)

我记得没错吗?涉及的课程是什么?

.net

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

如何让Visual Studio 2012正确呈现等宽字体?

在我的Visual Studio 2012中,等宽字体无法正确呈现,特别是它们无法正确呈现"等宽",即.字符的宽度不均匀.

这是一个例子,这个:

// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// -|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
Run Code Online (Sandbox Code Playgroud)

使用Consolas 10点,100%缩放渲染:

consolas 10点100%变焦

这是101%缩放:

consolas 10点101%变焦

101%变焦时还有其他小问题,因此两者都不好.有没有办法让我配置Visual Studio以正确呈现等宽字体?

我试过以下字体:

索拉
consolas 10点100%变焦

信使
快递10点100%变焦

快递新
快递新10点100%变焦

终奌站
终端10点100%变焦

显然,我尝试在Visual Studio中无法正确呈现等宽字体.

如果我在Notepad2中使用完全相同的字体和字体大小,如Consolas: notepad2 consolas 10点

将notepad2和Visual Studio与Consolas进行比较

notepad2 consolas 10点
consolas 10点100%变焦

有什么我能做的吗?

细节:

  • Windows 7的
  • Cleartype已启用
  • Windows中的字体大小设置为100%

Visual Studio 2012字体对话框:

Visual Studio 2012字体对话框

fonts monospace visual-studio-2012

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

LINQ中的嵌套'froms'

我是LINQ的新手,我遇到嵌套的问题:

using System;
using System.Linq;
class MultipleFroms
{
    static void Main()
    {
        char[] chrs = { 'A', 'B', 'C'};
        char[] chrs2 = { 'X', 'Y', 'Z' };
        var pairs = from ch1 in chrs
                    from ch2 in chrs2
                    select ch1+" "+ ch2;
        Console.WriteLine("For ABC and XYZ: ");
        foreach (var p in pairs)
            Console.WriteLine(p);
        Console.WriteLine();

        Console.WriteLine("For D and W: ");
        chrs = new char[] { 'D' };
        chrs2 = new char[] { 'W' };
        foreach (var p in pairs)
            Console.WriteLine(p);
    } …
Run Code Online (Sandbox Code Playgroud)

c# linq

10
推荐指数
2
解决办法
494
查看次数

DELETE语句在SQL Server上挂起,没有明显的原因

编辑:已解决,桌面上有一个带循环的触发器(请在下面进一步阅读我自己的答案).


我们有一个简单的删除语句,如下所示:

DELETE FROM tablename WHERE pk = 12345
Run Code Online (Sandbox Code Playgroud)

这只是挂起,没有超时,没有任何东西.

我们已经查看了执行计划,它包含许多相关表的查找,以确保没有外键可以删除,但我们已经验证其他表中没有任何行引用该特定行.

目前没有其他用户连接到数据库.

我们对它运行DBCC CHECKDB,并报告0错误.

综观结果sp_who,并sp_lock同时查询是挂,我发现我的spid有大量的PAG和KEY锁,以及偶尔的TAB锁.

该表有1.777.621行,是的,pk是主键,因此它是基于索引的单行删除.执行计划中没有表扫描,但是我注意到它包含了表Spool(Eager Spool)的内容,但是表示估计的行数1.这实际上是伪装的表扫描吗?它只是说它看着主键列.

在表上尝试了DBCC DBREINDEX和UPDATE STATISTICS.两者都在合理的时间内完成

不幸的是,这个特定的表上有很多索引.它是我们系统中的核心表,包含大量列和引用,包括传出和传入.确切的数字是48个索引+主键聚集索引.

我们还应该注意什么?

另请注意,此表之前没有此问题,今天突然出现此问题.我们还有许多具有相同表设置的数据库(客户数据库的副本),并且它们的行为与预期一致,只是这个有问题.

sql sql-server sql-server-2005

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

在makefile中使用带有通配符的nmake

我正在尝试设置一个nmake makefile来自动将我们的balsamiq模型文件导出到png文件中,但是我担心如何制作一个通用规则无法做到这一点,而无需明确列出所有文件我想出口.

此页面详细介绍了导出文件的命令行语法,此页面包含一个示例,其中包含.obj文件到.exe文件的通用规则.

我到目前为止尝试过的makefile看起来像这样:

.bmml.png:
    "C:\Program Files\Balsamiq Mockups\Balsamiq Mockups.exe" export $< $@
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

如果我只是运行nmake(带有一些过时的png文件),nmake就是这样做的:

[C:\Temp] :nmake

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


[C:\Temp] :
Run Code Online (Sandbox Code Playgroud)

如果我要求它构建一个特定的文件,它会这样做:

[C:\Temp] :nmake "TestFile.png"

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make '"TestFile.png"'
Stop.

[C:\Temp] :
Run Code Online (Sandbox Code Playgroud)

在那里任何一个可以让我直截了当的nmake大师?

一个示例makefile,通过复制它们来简单地从.txt文件生成.dat文件,以进行试验,如下所示:

.txt.dat:
    copy $< $@
Run Code Online (Sandbox Code Playgroud)

这没什么用,所以显然我不明白这些通用规则是如何运作的.我是否需要指定一个目标,以某种方式列出我想要的文件?


编辑:回答新答案:

这个makefile:

{}.txt{}.dat:
    copy $** …
Run Code Online (Sandbox Code Playgroud)

png nmake export balsamiq

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

多核用法,线程,线程池

我对多线程编程和多核使用有一些疑问.

特别是我想知道操作系统和/或框架(这是.NET)如何处理大量使用的核心.

这是关于线程的问题:

  • 当产生新线程时,将线程分配给特定核心的算法是什么?
    1. 循环型算法
    2. 随机
    3. 目前使用最少的核心
  • 如果不是当前最少使用的核心,那么确定这种类型的代码是否会使线程的典型使用相形见绌,从而使事情变得更糟?
  • 线程在生命周期内是否从一个核心移动到另一个核心?如果是这样,这是否会处理由于某种原因"过度使用"的内核,因此操作系统会尝试将线程混洗到较少使用的内核以帮助系统?如果不是,为什么不呢?

我的最后一个问题,基本上是上面的重用,是关于.NET ThreadPool类,它处理诸如.BeginInvoke之类的东西.这堂课有没有做过这些?如果没有,为什么不,或者应该呢?

有没有办法调整这个处理,在操作系统上提示这个特定的线程,当你为它分配一个核心时请多关注它,因为我知道它会使用很多cpu.那会有意义吗?或者"很多cpu"只是相对的,因此不够好?

.net multithreading multicore

9
推荐指数
2
解决办法
3914
查看次数

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

用C#实现Box-Mueller随机数发生器

这个问题:随机数发生器将数字吸引到范围内的任何给定数字?我之前做过一些研究,因为我之前遇到过这样一个随机数发生器.我记得的只是"穆勒"的名字,所以我想我找到了,在这里:

我可以在其他语言中找到它的大量实现,但我似乎无法在C#中正确实现它.

例如,这个页面,用于生成高斯随机数的Box-Muller方法表示代码看起来应该是这样的(这不是C#):

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

double gaussian(void)
{
   static double v, fac;
   static int phase = 0;
   double S, Z, U1, U2, u;

   if (phase)
      Z = v * fac;
   else
   {
      do
      {
         U1 = (double)rand() / RAND_MAX;
         U2 = (double)rand() / RAND_MAX;

         u = 2. * U1 - 1.;
         v = 2. * U2 - 1.;
         S = u * u + v * v;
      } while …
Run Code Online (Sandbox Code Playgroud)

c# random non-uniform-distribution

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

Task.ContinueWith(...,TaskScheduler.FromCurrentSynchronizationContext())在UI线程上运行的任何场景?

我们正在观察一些奇怪的东西,代码如下:

var task = new Task(...); // run in the background, do something lengthy work
task.ContinueWith(..., TaskScheduler.FromCurrentSynchronizationContext());
task.Start();
Run Code Online (Sandbox Code Playgroud)

第二个任务调用一个事件,然后尝试更新GUI,我们得到了可怕的跨线程异常.

Thread.CurrentThread.ManagedThreadId从第二个任务中的方法检查表明它实际上没有在UI线程上运行.

这催生了任务的代码在UI线程上运行.

有什么情况会出错吗?

c# multithreading task synchronizationcontext

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