AWS Turk NotifyWorker method not working with .NET SDK when switching from Sandbox to Production
<p>I created a small app in .NET C# that allows me to send emails to workers using their Worker ID. I sent an email to my own personal Worker ID and it worked fine when I have my service endpoint set as <a href="https://mechanicalturk.sandbox.amazonaws.com?Service=AWSMechanicalTurkRequester" rel="nofollow">https://mechanicalturk.sandbox.amazonaws.com?Service=AWSMechanicalTurkRequester</a> in the App.config file.</p>

<p>However when I switch the service endpoint to <a href="https://mechanicalturk.amazonaws.com?Service=AWSMechanicalTurkRequester" rel="nofollow">https://mechanicalturk.amazonaws.com?Service=AWSMechanicalTurkRequester</a> the email never arrives.</p>

<p>It also doesnt seem like the NotifyWorker method has any response method in the SDK like it does in the normal URI request in the form of an XML response, so its getting pretty infuriating to debug.</p>

<p>Does anyone have any ideas why when I switch the service endpoint, the message never arrives?</p>

<p>(Requested Edit) Here is the code that runs the main function:</p>

<pre><code>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&lt;string&gt; workers = CSVProcessor.GetUniqueWorkers(args.FileName);
            for (int i = 0; i &lt; 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&lt;string&gt;(new string[] { args.WorkerID }));
        }

    }

class CSVProcessor
{
    public static List&lt;string&gt; GetUniqueWorkers(string fileName)
    {
        //WorkerCollection workers = new WorkerCollection();

        List&lt;string&gt; workers = new List&lt;string&gt;();

        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&lt;string&gt; workerIDs) {
        SimpleClient client = new SimpleClient();
        client.NotifyWorkers(subject, messageText, workerIDs);
    }

}
</code></pre>