控制台应用程序进程被调用两次
Console Application Process Getting Called Twice
我正在从发送电子邮件群发的 Web 窗体调用控制台应用程序。在控制台代码的 finally 块中,发送了一封确认电子邮件,其中包含成功电子邮件的计数。
在运行期间,生成了两封确认邮件,而不是一封;第一个始终有 0 个电子邮件计数,第二个具有实际计数。
Web 表单中的调用代码如下:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
Process process = Process.Start(info.FileName, arguments);
Process.Start(info);
我做错了什么?
您遇到的问题是您调用了 Process.Start
两次;一次使用 info
对象(但没有参数),下一次使用文件名和参数重载。
您有两种启动进程的方法;你应该选择一个并坚持下去:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
info.Arguments = arguments;
Process.Start(info);
ProcessStartInfo
包含一个名为 Arguments
的 属性,您可以向其添加参数;并且 Process.Start
的重载只需要一个 ProcessStartInfo
对象。这就是我上面描述的方法。
我正在从发送电子邮件群发的 Web 窗体调用控制台应用程序。在控制台代码的 finally 块中,发送了一封确认电子邮件,其中包含成功电子邮件的计数。
在运行期间,生成了两封确认邮件,而不是一封;第一个始终有 0 个电子邮件计数,第二个具有实际计数。
Web 表单中的调用代码如下:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
Process process = Process.Start(info.FileName, arguments);
Process.Start(info);
我做错了什么?
您遇到的问题是您调用了 Process.Start
两次;一次使用 info
对象(但没有参数),下一次使用文件名和参数重载。
您有两种启动进程的方法;你应该选择一个并坚持下去:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
info.Arguments = arguments;
Process.Start(info);
ProcessStartInfo
包含一个名为 Arguments
的 属性,您可以向其添加参数;并且 Process.Start
的重载只需要一个 ProcessStartInfo
对象。这就是我上面描述的方法。