Я создал небольшое приложение в .NET C#, которое позволяет отправлять письма рабочим, используя их идентификатор рабочего лица. Я отправил электронное письмо на свой личный идентификатор рабочего лица, и он отлично работал, когда у меня установлена конечная точка службы https://mechanicalturk.sandbox.amazonaws.com?Service=AWSMechanicalTurkRequester в файле App.config.Метод AWS Turk NotifyWorker, не работающий с .NET SDK при переключении с песочницы на производство
Однако, когда я переключаю конечную точку обслуживания на https://mechanicalturk.amazonaws.com?Service=AWSMechanicalTurkRequester, письмо не приходит.
Он также не кажется, что метод NotifyWorker имеет какой-либо метод ответа в SDK, как в обычном запросе URI в форме ответа XML, поэтому его довольно неприятно отлаживать.
Есть ли у кого-нибудь идеи, почему при переключении конечной точки службы сообщение никогда не появляется?
(Запрошенный Edit) Вот код, который запускает основную функцию:
public class WorkerArgs
{
public string FileName { get; set; }
public bool Mass { get; set; }
public string WorkerID { get; set; }
public string Message { get; set; }
public string Subject { get; set; }
public WorkerArgs(string fileName, bool mass, string message, string subject)
{
this.FileName = fileName;
this.Mass = mass;
this.Message = message;
this.Subject = subject;
}
public WorkerArgs(bool mass, string workerId, string message, string subject)
{
this.Mass = mass;
this.WorkerID = workerId;
this.Message = message;
this.Subject = subject;
}
}
private void bwRun_DoWork(object sender, DoWorkEventArgs e)
{
WorkerArgs args = (WorkerArgs)e.Argument;
if (args.Mass)
{
List<string> workers = CSVProcessor.GetUniqueWorkers(args.FileName);
for (int i = 0; i < workers.Count(); i += 100) {
MessageSender.SendMessage(args.Subject, args.Message, workers.Skip(i).Take(100).ToList());
}
}
else
{
MessageSender.SendMessage(args.Subject, args.Message,new List<string>(new string[] { args.WorkerID }));
}
}
class CSVProcessor
{
public static List<string> GetUniqueWorkers(string fileName)
{
//WorkerCollection workers = new WorkerCollection();
List<string> workers = new List<string>();
using (TextFieldParser tfp = new TextFieldParser(fileName))
{
tfp.Delimiters = new string[] { "," };
tfp.ReadFields();
while (!tfp.EndOfData)
{
string[] values = tfp.ReadFields();
if (!String.IsNullOrWhiteSpace(values[21])) { workers.Add(values[15]); } //{ workers.addUniqueWorker(values[15]); }
}
}
return workers.Distinct().ToList();
}
}
class MessageSender
{
public static void SendMessage(string subject, string messageText, List<string> workerIDs) {
SimpleClient client = new SimpleClient();
client.NotifyWorkers(subject, messageText, workerIDs);
}
}
WinForms или WPF? Пожалуйста, отправьте код, который отправит вашу электронную почту. – StepUp
WinForms, я разделил его на несколько классов. Позвольте мне попытаться сломать это в редактировании – JSArrakis