我正在从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);
我做错了什么?
答案 0 :(得分:2)
您遇到的问题是您要拨打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
个对象。这就是我上面描述的方法。