我希望在应用程序崩溃时向管理员发送邮件.所以我只是这样做global.asax:
void Application_error(object sender, EventArgs e)
{
SendMessageToAdministarator(Server.GetLastError().ToString());
}
Run Code Online (Sandbox Code Playgroud)
但实际上很多次都Application_Error被调用,即使应用程序不会崩溃.
我希望在应用程序崩溃时只向管理员发送邮件.
另外,我有一个简单的方法来重新启动应用程序吗?
我正在寻找最简单的解决方案.
我想从非托管C++调用我的.NET代码.我的进程入口点是基于.NET的,所以我不必担心托管CLR.我知道可以使用.NET包装器来完成.NET对象,但是我想访问托管类的各个静态方法,因此COM不是我最短/最简单的路径.
谢谢!
我阅读了一些有关我的高级安装程序6.5.1的帮助,但无法找到更改版本字符串的方法.
我使用[Dllimport("DllName.dll")],我确定在进程PATH环境变量中存在我的dll的路径,但仍然得到"无法找到DllName.dll"
寻找标准的防错方法将"长名称"(如"C:\ Documents and settings")转换为等效的"短名称""C:\ DOCUME~1"
我需要这个来运行我的C#应用程序的外部进程.如果我用"长名称"中的路径提供它,它就会失败.
我需要PIL在我的python2.5.4-32bit上的Ubunto10.4-32bit(EDIT:64bit)机器上安装(python映像库).这个问题也与我猜测的任何其他源包有关(在我需要的那些中RPyC,psyco和numpy).
我下载了源代码,因为我找不到任何整洁的包来完成这项工作并做了一个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) 我有一个使用dll的原生VC++项目(不在项目中).现在,我必须将dll放在"Windows用来查找DLL的搜索路径" 链接中
但我不希望dll位于exectuable或current或windows或system目录中.
所以我唯一的选择就是添加%PATH%环境变量的路径.
还有其他方法吗?
是否有一种优雅的方式(添加到PATH)?我应该在安装时这样做吗?如果我这样做,我应该担心吗?
考虑这个代码块
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)
这一切都很好,但我想了解为什么对象(工作者,视图和更新)不会收集垃圾
在我的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)
我在哪里可以找到更详细的文档?
在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.