小编Han*_*nan的帖子

处理ASP.NET应用程序的global.asax中的Application_Error

我希望在应用程序崩溃时向管理员发送邮件.所以我只是这样做global.asax:

void Application_error(object sender, EventArgs e)
{
    SendMessageToAdministarator(Server.GetLastError().ToString());
}
Run Code Online (Sandbox Code Playgroud)

但实际上很多次都Application_Error被调用,即使应用程序不会崩溃.

我希望在应用程序崩溃时只向管理员发送邮件.

另外,我有一个简单的方法来重新启动应用程序吗?

我正在寻找最简单的解决方案.

asp.net

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

从非托管代码调用托管代码

我想从非托管C++调用我的.NET代码.我的进程入口点是基于.NET的,所以我不必担心托管CLR.我知道可以使用.NET包装器来完成.NET对象,但是我想访问托管类的各个静态方法,因此COM不是我最短/最简单的路径.

谢谢!

.net clr interop unmanaged

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

增加高级安装程序中的版本号

我阅读了一些有关我的高级安装程序6.5.1的帮助,但无法找到更改版本字符串的方法.

windows installer windows-installer advanced-installer

7
推荐指数
3
解决办法
1921
查看次数

即使它在PATH中,dllimport也未能找到dll

我使用[Dllimport("DllName.dll")],我确定在进程PATH环境变量中存在我的dll的路径,但仍然得到"无法找到DllName.dll"

dll pinvoke path dllimport

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

在.net中转换为短路径的标准方法

寻找标准的防错方法将"长名称"(如"C:\ Documents and settings")转换为等效的"短名称""C:\ DOCUME~1"

我需要这个来运行我的C#应用​​程序的外部进程.如果我用"长名称"中的路径提供它,它就会失败.

.net quotes path

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

无法从源代码安装python包

我需要PIL在我的python2.5.4-32bit上的Ubunto10.4-32bit(EDIT:64bit)机器上安装(python映像库).这个问题也与我猜测的任何其他源包有关(在我需要的那些中RPyC,psyconumpy).

我下载了源代码,因为我找不到任何整洁的包来完成这项工作并做了一个
sudo python2.5 setup.py install.
输出:

Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
  File "setup.py", line 9, in <module>
    import glob, os, re, struct, string, sys
  File "/usr/lib/python2.5/struct.py", line 30, in <module>
    from _struct import Struct, error
ImportError: No module named _struct
Run Code Online (Sandbox Code Playgroud)

echo $ PYTHONHOME
/ usr

那么,在文件中struct.py就行了from _struct import Struct, error 这是python源代码本身的一部分所以我真的很想知道python安装有什么问题,因为代码无法导入模块.
我通过以下方式安装了py2.5.4:

./configure --prefix=/usr …
Run Code Online (Sandbox Code Playgroud)

python linux

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

原生VC++使用外部(非项目)dll引用如何指定dll的路径

我有一个使用dll的原生VC++项目(不在项目中).现在,我必须将dll放在"Windows用来查找DLL的搜索路径" 链接中

但我不希望dll位于exectuable或current或windows或system目录中.

所以我唯一的选择就是添加%PATH%环境变量的路径.

还有其他方法吗?

是否有一种优雅的方式(添加到PATH)?我应该在安装时这样做吗?如果我这样做,我应该担心吗?

c++ dll native visual-studio-2005

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

什么时候我的BackgroundWorker实例将被垃圾收集

考虑这个代码块

public void ManageInstalledComponentsUpdate()
        {
            IUpdateView view = new UpdaterForm();
            BackgroundWorker worker = new BackgroundWorker();
            Update update = new Update();
            worker.WorkerReportsProgress = true;
            worker.WorkerSupportsCancellation = true;
            worker.DoWork += new DoWorkEventHandler(update.DoUpdate);
            worker.ProgressChanged += new ProgressChangedEventHandler(view.ProgressCallback);
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(view.CompletionCallback);            
            worker.RunWorkerAsync();
            Application.Run(view as UpdaterForm);     
        }
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想了解为什么对象(工作者,视图和更新)不会收集垃圾

.net c# events garbage-collection backgroundworker

3
推荐指数
1
解决办法
2557
查看次数

如何从7z commandLine进程获取扩展错误信息

在我的C#app中,我运行一个7z进程将存档提取到它的目录中

例如,存档位于%TEMP%目录中的随机命名目录中

C:\ Documents and Settings\User\Local Settings\Temp\_ vtugoyrc.fd2

(fullPathFilename ="C:\ Documents and Settings\User\Local Settings\Temp\_ vtugoyrc.fd2\xxx.7z")

我的代码是:

sevenZipProcessInfo.FileName = SEVEN_ZIP_EXECUTABLE_PATH;
sevenZipProcessInfo.Arguments = "x " + fullPathFilename;
sevenZipProcessInfo.WindowStyle = ProcessWindowStyle.Hidden;
sevenZipProcessInfo.UseShellExecute = true;
sevenZipProcessInfo.WorkingDirectory = Path.GetDirectoryName(fullPathFilename);
Process sevenZipProcess = Process.Start(sevenZipProcessInfo);
if (sevenZipProcess != null)
{
    sevenZipProcess.WaitForExit();
    if (sevenZipProcess.ExitCode != 0)
         ...exit code is 2 (fatal error by the 7z help)
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到更详细的文档?

c# 7zip

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

Windows无法将args传递给python脚本

在py_script.py中:

import os
import sys

l = len(sys.argv) 
if  l == 1:
    print 'no args'
else:
    if l > 1: 
        print 'first arg is %s'%sys.argv[1]
    if l > 2:
        print 'second arg is %s'%sys.argv[2]
Run Code Online (Sandbox Code Playgroud)

现在我的winXP平台上的命令行:

d:\path\py_script.py 1 2
Run Code Online (Sandbox Code Playgroud)

产量

first arg is 1
second arg is 2
Run Code Online (Sandbox Code Playgroud)

但是在我的Win7平台上,我得到了

no args
Run Code Online (Sandbox Code Playgroud)

如果我做

d:\path\python py_script.py 1 2
Run Code Online (Sandbox Code Playgroud)

我明白了

first arg is 1
second arg is 2
Run Code Online (Sandbox Code Playgroud)

如何让Win7环境按预期运行?

一些细节:
win7是64bit.
win7上的py2.6.6,winXP上的py 2.6.4.

python windows command-line windows-7

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