小编pet*_*ter的帖子

使用subversion网桥下载trunk

我正在使用git to subversion bridge来检查一个subversion存储库.最初我使用这个命令,

get svn clone -s svn://repositoryName/etc
Run Code Online (Sandbox Code Playgroud)

但我们的颠覆存储库是庞大的,多年的开发,许多分支等.

结果是进程经常死亡,当它压缩存储库时,内存使用量超过1.5 GB,并且它就会死掉.

所以我想也许我会尝试检查后备箱,因为这是我将要使用的主要内容.所以我试过这个,

get svn clone -trunk svn://repositoryName/etc
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,在模式匹配中使用未初始化的值.

有人可以告诉我正确的命令只用于检查主干.还有一个已知的错误/内存泄漏?我在Windows上使用Git版本1.7.3.1-preview20201002.

有关于git和命令行选项的官方文档吗?

svn git git-svn

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

Silverlight内存泄漏

我们有一个相当大的silverlight 4应用程序.我们正在寻找应用程序中的内存泄漏,这已经变成了一项艰巨的任务.

对于那些看过原帖的人来说,事情已经彻底改变了!

我意识到ANTS内存分析器并没有向我展示正确的东西.那是因为内存泄漏不在托管代码中,而是在本机代码中.我确实解决了ANTS的一些问题 - 它是托管代码内存泄漏的好工具.

所以我找到了这个博客,

http://blogs.msdn.com/b/slperf/archive/2010/08/19/analyzing-silverlight-memory-usage-part-1-obtaining-measurements.aspx

哪个很棒.我使用xPerf和xPerfViewer来查看本机堆,看看我怀疑是实际的内存泄漏.

所以我可以看到一个看起来像这样的堆栈跟踪,

CCoreServices::Draw
    CCoreServices::Tick
    CUElement::Render
        CUIElement::Render
        CUIElement::RenderWithTransform
        CUIElement::RenderVisual
        CUIElement::RenderChildren
            {Repeat of the above in a recursive fashion}
Run Code Online (Sandbox Code Playgroud)

所以在这个'Render'方法的某个地方,它分配了大约520字节的内存,据我所知它并没有释放它.

我还可以看到一个叫做的方法或类

SDBitmapCreate
Run Code Online (Sandbox Code Playgroud)

也在泄漏记忆.

有意思,因为我似乎找到了什么,但我不确定是什么.

还有其他建议吗?

谢谢.

c# silverlight red-gate-ants

6
推荐指数
2
解决办法
6024
查看次数

如何计算质心

我正在使用地理空间形状并在这里查看质心算法,

http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon

我已经在C#中实现了这样的代码(这只是这个改编),

找到多边形的质心?

class Program
{
    static void Main(string[] args)
    {
        List<Point> vertices = new List<Point>();

        vertices.Add(new Point() { X = 1, Y = 1 });
        vertices.Add(new Point() { X = 1, Y = 10 });
        vertices.Add(new Point() { X = 2, Y = 10 });
        vertices.Add(new Point() { X = 2, Y = 2 });
        vertices.Add(new Point() { X = 10, Y = 2 });
        vertices.Add(new Point() { X = 10, Y = 1 });
        vertices.Add(new Point() { …
Run Code Online (Sandbox Code Playgroud)

c# geospatial centroid

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

使用DLLImport时,异常如何工作

我正在使用DLLImport从C#应用程序调用GhostScript库.

所以我有一些这样的代码,

[DllImport("gsdll32.dll", EntryPoint = "gsapi_init_with_args")]
private static extern int gsapi_init_with_args(IntPtr instance, int argc, IntPtr argv);

try 
{ 
    intReturn = gsapi_init_with_args(intGSInstanceHandle, intElementCount, intptrArgs); 
}
catch (Exception ex)
{
    throw new ApplicationException(ex.Message, ex);
}
Run Code Online (Sandbox Code Playgroud)

我将看一下用C或C++编写的GhostScript源代码,但总的来说我想知道如果GhostScript代码抛出未处理的异常会发生什么?会不会被那里的捕获物捕获,或者它必须看起来像这样,

catch
{
    // blah
}
Run Code Online (Sandbox Code Playgroud)

c# c++ exception

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

UseShellExecute有什么区别?

我从我的IIS Web应用程序中启动一个小型控制台应用程序.代码是使用这样的代码从应用程序池中启动的,

Process process = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo();

processStartInfo.CreateNoWindow = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;

// ..

process.Start();
Run Code Online (Sandbox Code Playgroud)

我曾经间歇性地得到一个错误,

Win32Exception exception has occured  Message: No such interface supported
ErrorCode: 80004005  NativeErrorCode: 80004002
Run Code Online (Sandbox Code Playgroud)

我证明了当发生这种情况时,控制台应用程序根本无法启动.

我在上面的代码中添加了

processStartInfo.UseShellExecute = false;
Run Code Online (Sandbox Code Playgroud)

问题已经消失(到目前为止,手指交叉).我知道通过进行此更改它不需要运行有效的桌面上下文,但这究竟是什么意思.如果这意味着如果没有桌面(适用于与系统用户一起运行的IIS应用程序池),我们就无法运行上面的代码,那么为什么以前有时会运行它而不是每次都失败?

有没有人知道为什么这会有所作为?在这种情况下,没有支持接口意味着什么?

更新:

我已经接受了人们所说的一切,并且自己做了更多的研究.总结一下,如果你有UseShellExecute = true(这是默认值),那么它将调用shell32.dll中的ShellExecuteEX来执行该过程.它实际上会这样做(使用ILSpy从System.dll复制),

public bool ShellExecuteOnSTAThread()
{
    if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
    {
        ThreadStart start = new ThreadStart(this.ShellExecuteFunction);
        Thread thread = new Thread(start);
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
        thread.Join();
    }
    else
    {
        this.ShellExecuteFunction();
    }
    return this._succeeded;
}
Run Code Online (Sandbox Code Playgroud)

如果您有UseShellExecute = false,那么它将调用kernel32.dll中的CreateProcess来启动该进程.

我想知道上面的代码ShellExecuteOnSTAThread创建一个新线程是否存在问题?应用程序池是否可以在线程上达到某些限制,这可能会间接导致Win32Exception?

c# iis-7.5

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

WIX MSI包卸载

我正在使用WIX作为安装程序包.当我通过双击原始的msi包卸载包时,一切都很好.

当我从控制面板卸载它时,它给我一个miminal UI卸载.我已经在MSI中写入了一个自定义操作,询问用户是否要卸载某些数据库等.这在最小的UI卸载时不会发生.

如何通过完整的UI使控制面板上的uinstall工作?

windows-installer wix

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

WCF服务失败,方法不允许

我有一个JSON WCF服务,我写了一些javascript来访问这样的服务,

function stuffClick2() {
        $.ajax({
            url: "http://192.168.54.98/JsonWCFService/Service1.svc/Post",
            type: "POST",
            contentType: "application/json",
            data: '{"x":"1","y":"2","message":"The answer is: "}',
            dataType: "html",
            success: function(data) { $('body').html(data); }     
        });
    }
Run Code Online (Sandbox Code Playgroud)

我写了一个HTML页面,里面有上面的javascript.HTML页面使用IIS提供.

当我在PC上使用chrome访问HTML页面时,我看到这些操作按此顺序发送到WCF JSON服务,

OPTIONS /JsonWCFService/Service1.svc/Post HTTP/1.1
POST /JsonWCFService/Service1.svc/Post HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

OPTIONS以前失败了,但我让OPTIONS调用返回这个标题然后使它工作,

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

但我上面定义的回调不起作用,

success: function(data) { $('body').html(data); } 
Run Code Online (Sandbox Code Playgroud)

我知道WCF服务已经返回了这样的东西,

<b> The answer is 3 </b>
Run Code Online (Sandbox Code Playgroud)

但是当调用回调时,data的值是一个空字符串.

当我在不同的浏览器(IE)中运行html页面时,它只会导致POST调用,而不是OPTIONS调用,那么它可以工作.我注意到IE警告我它存在安全隐患,并询问我是否要继续.

wcf jquery

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

PhoneGap使用了多少

是否有任何数据可以说明在开发iOS和Android应用程序时使用了多少PhoneGap?

应用程序的数量是数百,还是数千等,或者是一个跨平台的解决方案太过于让人们认真对待它的妥协?

其他跨平台解决方案的任何其他数据,关于它们的使用量或它们的受欢迎程度如何?

cordova

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

如何在Web Worker中使用其他库?

我有一些这样的javascript代码,

var worker = new Worker("javascript/worker.js");

worker.onmessage = function(evt)
{
    // stuff
}
Run Code Online (Sandbox Code Playgroud)

worker.js看起来像这样,

importScripts("base.js");

function getImage()
{
    $.ajax({
    url: 'URL'
    dataType: "text/plain; charset=x-user-defined",
    mimeType: "text/plain; charset=x-user-defined",
    success: function(data, textStatus, jqXHR)
    {
        callback();
    }
});
}
Run Code Online (Sandbox Code Playgroud)

worker.js文件没有包含jQuery,因此不起作用.如果我将它添加到worker.js,

importScripts("jQuery.js");
Run Code Online (Sandbox Code Playgroud)

然后我收到消息,

Uncaught ReferenceError: window is not defined
Run Code Online (Sandbox Code Playgroud)

我对工人并不熟悉.我是否正确地认为它是在一个完全独立的环境(基本上是后台线程)中加载worker.js代码,因此它无法访问窗口.

javascript web-worker

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

如何取消 RIA 服务加载操作

我在 Silverlight 项目中使用 RIA 服务。我在客户端使用 LoadOperation 类从服务器加载一些数据。

在加载该数据的过程中,该请求可能会被对不同数据的较新请求所取代。这是基于对服务器进行的多个 LoadOperations,然后用户单击取消按钮。

如果我使用 LoadOperation 并在其上调用 'Cancel' 方法,则操作似乎取消,但服务器端代码并​​未停止,使用 fiddler 可以看到操作完成并返回 HTTP 状态代码 200。

当您调用“取消”时,服务器上会做什么,我希望它调用 ThreadAbortException 或类似的东西?这可以改进吗?

.net c# silverlight wcf-ria-services

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