小编gre*_*mac的帖子

将PEM转换为PPK文件格式

有没有办法将PEM文件转换为PPK文件?(你可能猜到Amazon EC2给了我一个PEM文件,我需要使用PPK格式进行SSH连接).

ssh putty pem

110
推荐指数
7
解决办法
26万
查看次数

msbuild.exe保持打开状态,锁定文件

我使用TeamCity,后者又调用msbuild(.NET 4).我有一个奇怪的问题,在构建完成后(如果它是一个成功的构建似乎没关系),msbuild.exe保持打开状态,并锁定其中一个文件,这意味着每次TeamCity尝试要清除其工作目录,它会失败,并且无法继续.

几乎每次都会发生.

我真的迷失了这个,所以我会尽量提供尽可能多的细节.

  • 服务器是英特尔酷睿i7,2 GB内存,带有Windows Server 2008标准的64位SP2.
  • 在TeamCity中,msbuild运行器配置了/m命令行参数(这意味着使用多个核心)
  • 有问题的文件总是与路径中的一个.NET项目中引用的外部DLL相同External Tools\Telerik\Telerik.Reporting.Dll.(External Tools在类似的路径结构中,dir中还包含其他几个.DLL文件,这些文件永远不会导致此问题).目前,这是Telerik报告的试用版,以防万一.
  • 当问题发生时,总有几个msbuild.exe *32在任务管理器中列出的过程:我相信有7.使用Process Explorer中,他们看起来都像顶级工艺(无父母).它们全部使用20-50MB RAM和0.0%CPU.
  • 如果我等待1-3分钟,msbuild.exe进程自行退出,然后TeamCity可以正确更新工作目录.
  • 如果我手动终止msbuild进程,TeamCity的更新将立即再次运行.
  • 在Windows中关闭索引服务(虽然之前的两点几乎确认它是导致问题的msbuild.exe).
  • Telerik.reporting.dll没有特殊属性.唯一的SVN属性是svn:mime-type = application/octet-stream

以前有人碰过这个吗?

msbuild teamcity

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

使用UriTemplate在WCF中组合SOAP/JSON/XML

我正在尝试使用WCF构建一个通用的Web服务接口,以允许第三方开发人员加入我们的软件.经过多次努力和阅读(这个问题有很多帮助),我终于让SOAP,JSON和XML(POX)一起工作了.

为了简化,这里是我的代码(为了使这个例子简单,我没有使用接口 - 我确实尝试了这两种方式):

<ServiceContract()> _
Public Class TestService
    Public Sub New()
    End Sub

    <OperationContract()> _
    <WebGet()> _
    Public Function GetDate() As DateTime
        Return Now
    End Function


    '<WebGet(UriTemplate:="getdateoffset/{numDays}")> _
    <OperationContract()> _
    Public Function GetDateOffset(ByVal numDays As Integer) As DateTime
        Return Now.AddDays(numDays)
    End Function

End Class
Run Code Online (Sandbox Code Playgroud)

和web.config代码:

<services>
  <service name="TestService" 
           behaviorConfiguration="TestServiceBehavior">
    <endpoint address="soap" binding="basicHttpBinding" contract="TestService"/>
    <endpoint address="json" binding="webHttpBinding" behaviorConfiguration="jsonBehavior" contract="TestService"/>
    <endpoint address="xml" binding="webHttpBinding" behaviorConfiguration="poxBehavior" contract="TestService"/>
    <endpoint address="mex" contract="IMetadataExchange" binding="mexHttpBinding" />
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
      <enableWebScript/>
    </behavior>
    <behavior …
Run Code Online (Sandbox Code Playgroud)

.net rest wcf soap web-services

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

从父/子的平面列表构建层次结构对象

我有一个层次结构中的项目列表,我正在尝试将此列表解析为实际的对象层次结构.我正在使用修改的预订树遍历来存储/遍历此列表,因此我所拥有的是树的子集,包括所有子节点,按其"左"值排序.

例如,给定树:

  • 项目A.
    • 项目A.1
    • 项目A.2
      • 项目A.2.2
  • 项目B.
    • 项目B.1
  • 项目C.

我得到了清单:

  • 项目A,项目A.1,项目A.2,项目A.2.2,项目B,项目B.1,项目C.

(这是来自修改的预订树设置的"左"值的顺序).

我想要做的是将其解析为包含树的实际结构的对象,例如:

Class TreeObject {
    String Name;
    Guid ID; 
    Guid ParentID;
    List<TreeObject> Children;
}
Run Code Online (Sandbox Code Playgroud)

平面列表作为TreeObjects列表返回 - 每个TreeObject都具有ID,ParentID,Left和Right属性.我正在寻找的是一个功能:

List<TreeObject> FlatToHeirarchy(List<TreeObject> list); 
Run Code Online (Sandbox Code Playgroud)

获取平面列表,并返回嵌套列表.

换一种说法:

List<TreeObject> flatSet = LoadTreeObjectsFromDatabase(); 
// flatSet.count == 7; flatSet(0).Children == null
List<TreeObject> nestedSet = FlatToHeirarchy(flatSet);
// nestedSet.count == 3; nestedSet(0).Children.count == 2
Run Code Online (Sandbox Code Playgroud)

我不知道如何做到这一点 - 跟踪父母,并能够处理更大的跳跃(例如,项目A.2.2 - >项目B).


编辑:我在这里寻找一个非暴力解决方案(例如,不循环几次,将项目移动到子节点,直到只剩下顶级父级).我猜测有一个优雅的方法可以循环一次,只需根据需要放置项目.

请记住,它们总是处于层级顺序(因为我正在使用MPTT),因此给定项目将始终是前一项目的子项或兄弟项目,或者至少与前一项目共享父项.它永远不会来到树的其他地方.

.net hierarchy mptt nested-sets

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

如何将MiniProfiler与单页Web应用程序/ REST后端一起使用?

我有一个单页javascript应用程序(使用JavascriptMvc完成)和一个后端,REST服务构建在ASP.NET MVC3之上(使用NServiceMVC完成).

REST服务安装并运行了MiniProfiler,并且每个AJAX请求都会返回X-MiniProfiler-Ids标头.我确实有miniprofiler运行和工作,但我找不到任何关于此的信息,所以我不确定我是否正确地做到了这一点.

这是一个受支持的方案,现在有一种特定的方法吗?


我目前正在做的是:

在HTML应用程序(这是所有静态代码,没有动态的东西),我有:

<script type="text/javascript" src="/api/profiler"></script>
Run Code Online (Sandbox Code Playgroud)

在我的MVC应用程序中,我有:

    public ActionResult Profiler()
    {
        if (!ControllerContext.HttpContext.IsDebuggingEnabled)
        {
            return new EmptyResult();
        }
        return new ContentResult() { 
            Content = StackExchange.Profiling.MiniProfiler.RenderIncludes(
                        position: RenderPosition.Right,
                        showControls: true
                      )
                      .ToString()
                      .Replace("<script type=\"text/javascript\">", "")
                      .Replace("</script>", "") 
        };
    }
Run Code Online (Sandbox Code Playgroud)

很明显,这里有一个黑客删除硬编码<script>标签.

除此之外,从MVC的其他方面来看,profiler与通常使用完全相同.当您在应用程序中执行导致REST调用的操作时,miniprofiler会在角落中显示它.使用该showControls:true参数在这里也非常有用所以清除按钮会显示,因为否则您只需获得一个常量的操作列表,因为整个页面基本上不会刷新.

这是"正确"的方式吗,还是有更好的方法?

javascriptmvc asp.net-mvc-3 mvc-mini-profiler

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

NHibernate配置用于单向一对多关系

我正在尝试建立如下关系.每个项目都有一个或多个详细信息项:

public class Detail {
    public virtual Guid DetailId { get; set; }
    public virtual string Name { get; set; }
}
public class Master {
    public virtual Guid MasterId { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Detail> Details { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和映射:

public class MasterMap : ClassMap<Master> 
{
    public MasterMap() 
    {
        Id(x => x.MasterId);
        Map(x => x.Name);
        HasMany(x => x.Details).Not.KeyNullable.Cascade.All();
    }
}
public class DetailMap : …
Run Code Online (Sandbox Code Playgroud)

nhibernate one-to-many fluent-nhibernate

18
推荐指数
2
解决办法
5687
查看次数

什么是重写Windows代理设置(插入"vsts-proxy-installed-indicator")以及如何将其关闭?

我有许多机器,所有机器都安装了Visual Studio,其中某些东西(可能是视觉工作室)覆盖了代理设置:为HTTP和HTTPS设置localhost和一些随机端口.在"不要使用代理服务器"框中,它放置<vsts-proxy-installed-indicator>可能是标签,因此它知道它已完成.

VSTS代理设置

这有时会阻止浏览器在我的桌面上工作,最近,在我们的构建服务器上更改了它,这导致代码签名步骤(连接到外部时间戳服务器)整天失败,直到我最终发现此代理问题.

什么在改变这些设置?为什么要改变它们?我该如何关闭它?


请注意,还有一个关于此问题的服务器故障问题:什么是插入"vsts-proxy-installed-indicator"?但由于这是一个特定于Visual Studio的问题,我认为在这里提问可能会更好.

visual-studio tfs2010

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

有没有办法在jQuery $ .ajax调用中获取所有请求标头?

我正在为AJAX请求构建一个调试工具,我想显示请求/响应头(就像Firebug一样).我可以使用jqXHR.getAllResponseHeaders获取响应头,但请求头是否等效?


如果没有,我知道我可以自己重建一下:

GET /blah  // this part is easy
Host: servername.com  // pretty easy
Accept:  ???
Referer: ??? // just use current page url?
User-Agent:  // easy from navigator.userAgent
X-Requested-With: XMLHttpRequest   // hardcoded, $.ajax always does this?
Accept-Charset: ???
Accept-Encoding: ??? 
Accept-Language: ???
Connection: ???  
Run Code Online (Sandbox Code Playgroud)

我最关心的是Accept.似乎浏览器或其他东西正在改变这一点,因为我正在设置 $.ajax({dataType:'json'})并且在我看到的萤火虫中Accept application/json, text/javascript, */*; q=0.01.我希望能够捕获正在发送的实际标头.

因为Referer,使用window.url是安全的,还是可能是其他东西?

我不知道如何得到Accept-*Connection值.

jquery http-headers

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

如何安全地配置CI服务器以对二进制文件进行数字签名?

有许多站点可以解释如何signtool.exe.pfx证书文件上运行,该文件归结为:

signtool.exe sign /f mycert.pfx /p mypassword /t http://timestamp.server.com \
  /d "My description"   file1.exe file2.exe
Run Code Online (Sandbox Code Playgroud)

我有一个持续集成的CI流程设置(使用TeamCity),它像大多数CI流程一样,完成所有工作:检查源代码,编译,签署所有.exes,将软件包签入安装程序,然后签署安装程序.exe.目前有3个构建代理程序,运行相同的VM,其中任何一个都可以运行此过程.

不安全的实施

为了实现这一目标,就安全性而言,我做了一些Bad Things(TM):.pfx文件在源代码管理中,并且它的密码在构建脚本中(也在源代码管理中).这意味着任何能够访问源代码存储库的开发人员都可以获取pfx文件并执行他们喜欢的任何恶意内容.(我们是一个相对较小的开发商店,相信每个人都可以访问,但显然这仍然不好).

最终的安全实施

我能找到"正确"做到这一点,就是你:

  • 将pfx和密码保存在某些安全介质上(如带有手指解锁的加密USB驱动器),可能不在一起
  • 仅指定几个人可以访问签名文件
  • 只签署一个非连接的专用机器上的最终版本,该机器保存在一个锁定的保险库中,直到您需要将其带出来进行此代码签名仪式.

虽然我可以看到这个安全性的优点..这是一个非常繁重的过程,并且在时间方面很昂贵(运行此过程,安全地保留证书备份,确保代码签名机器处于工作状态等) ).

我确信有些人会跳过步骤,只需手动签署存储在他们个人系统上的证书的文件,但这仍然不是很好.

它也与安装程序中使用的签名文件(也由构建服务器构建)不兼容 - 当您安装了具有UAC提示以获得管理员访问权限的.exe时,这一点很重要.

中间地带?

我更关心的是没有向用户提供可怕的"不受信任的应用程序"UAC提示,而不是证明它是我的公司.同时,将私钥和密码存储在每个开发人员(以及QA和高级技术支持)都可以访问的源代码存储库中显然不是一个好的安全实践.

我想要的是CI服务器在构建过程中仍然像今天一样签名,但没有密码(或证书的私钥部分)可供访问源代码存储库的每个人访问.

有没有办法将密码保留在构建之外或以某种方式保护?我应该告诉signtool使用证书存储区(我如何使用3个构建代理程序和构建作为非交互式用户帐户运行)?别的什么?

teamcity continuous-integration code-signing authenticode signtool

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

查找最终/有效的web.config值(来自继承的配置)

是否有任何应用程序可以显示应用于特定应用程序目录的最终配置?我想象的是FireBug的CSS查看器.

基本上,它应该显示等效的单个web.config文件(就好像你只有一个),其中包含适用于相关目录的所有值,每个元素(甚至属性)都使用其源(真正的.config)进行注释.文件来自).

这将极大地帮助将应用程序部署到外部环境(例如,客户站点),在那里他们有时会有奇怪的配置,添加全局包含(例如,他们将include包含在machine.config中,而不是该应用程序的web.config)或有allowOverride = false等

asp.net iis web-config

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