I just ran into an issue with the SalesLogix web client where I was getting an error “No application is associated with the specified file for this operation”.
After spending a lot of time trying to figure out where this was coming from I finally found the answer. In the new Sage.SalesLogix.BusinessRules.dll there is an OnAfterChange event defined for the Ticket entity’s StatusCode property that looks like this:
public static void OnAfterStatusCodeChanged(ITicket ticket, ExtendedPropertyChangedEventArgs args)
{
if (SendEmailOnStatusChange(ticket))
{
try
{
string email = string.Empty;
string oldValue = new string('"', 1);
if (ticket.Contact != null)
{
email = ticket.Contact.Email;
}
string str3 = string.Format(Resources.EmailMessageSubject, ticket, args.NewValue);
string str4 = FormatEmailBody(ticket);
str3 = str3.Replace(Environment.NewLine, "%0A").Replace(oldValue, "%22").Replace("&", "%26");
str4 = str4.Replace(Environment.NewLine, "%0A").Replace(oldValue, "%22").Replace("&", "%26");
Process.Start(string.Format("mailto:{0}?subject={1}&body={2}", email, str3, str4));
}
catch (Exception exception)
{
log.Error(exception.Message);
throw;
}
}
}
Calling that Process.Start is what is causing the error since it is relying on a mail client being on the web server. If one is not there it goes into the catch and presents the error. Worse, if one was there it would spawn a new email window on the server and sit there. What is this?
I would strongly recommend disabling that OnAfterChnageEvent.



