sql server 2005 - Database query fails when called from controller method via Ajax in MVC5 on IIS 7.5 -
the following works when run in visual studio 2015 fails without error when run iis 7.5.
the ajax call:
$('#newweek').on('click', function (e) { e.preventdefault(); if ($('#userlist').length) { var selecteduseridlocal = $('#hidselecteduserid').val(); $.ajax({ url: baseurl + 'home/newworkflow', type: 'post', datatype: 'html', cache: false, async: false, data: { selecteduserid: selecteduseridlocal }, beforesend: function () { $('div#body').loadmask('please wait...'); } }).done(function (data, textstatus, jqxhr) { $('#divworkflow').empty(); $('#divworkflow').html(data); $('div#body').unmask(); the controller method (see ****** fails on line! ****** below):
public actionresult newworkflow(string selecteduserid) { if (!request.isajaxrequest()) { return null; } if (string.isnullorempty(selecteduserid)) { return null; } selecteduserid = httputility.urldecode(selecteduserid); guid selecteduserguid; if (guid.tryparse(selecteduserid, out selecteduserguid)) { string user = string.empty; try { bool isreadonly = true; if ((httpcontext.items != null) && (httpcontext.items.count > 0) && (httpcontext.items["userdata"] != null)) { code.globalsecurity rolemanagement = new code.globalsecurity(httpcontext.items["userdata"].tostring()); user = rolemanagement.username; guid loggedinsecurityid = rolemanagement.securityid; bool ismanager = rolemanagement.permissions.contains(code.globalconstant.wtf_manager); bool isuser = rolemanagement.permissions.contains(code.globalconstant.wtf_user); if (ismanager) { isreadonly = false; } else if (loggedinsecurityid == selecteduserguid) { isreadonly = false; } bool cancreatenew = !isreadonly; if (cancreatenew) { cancreatenew = !((ismanager) && (!isuser)); } // friday week end date next friday. datetime friday = datetime.now.sqlweekend().date; // store previous work flow working on , items if new week can automatically carry them forward them. list<appdata.workingon> workingonlist = new list<appdata.workingon>(); list<appdata.todo> todolist = new list<appdata.todo>(); // check see if work week friday exists. appdata.workweek workweek = null; using (appdata.workflowentities wf = new appdata.workflowentities(appdata.connectionstrings.workflowconnstring)) { using (var dbtrans = wf.database.begintransaction(code.globalconstant.select_connection_transaction_isolation_level)) { // see if there's work week week. // ****** fails on line! ****** workweek = wf.workweeks.where(w => w.vmisecurityid == selecteduserguid && dbfunctions.truncatetime(w.weekenddate) == friday).firstordefault(); // if current work week null, new 1 created , need carry on working on , last work week. if (workweek == null) { appdata.workweek lastworkweek = wf.workweeks.where(w => w.vmisecurityid == selecteduserguid).orderbydescending(o => o.weekenddate).firstordefault(); // if got last week, working on , week. if (lastworkweek != null) { workingonlist = wf.workingons.where(w => w.workweekid == lastworkweek.workweekid).orderby(o => o.orderby).tolist(); todolist = wf.todoes.where(w => w.workweekid == lastworkweek.workweekid).orderby(o => o.orderby).tolist(); } } } } calls database work fine, it's calls workflow database fail. took long time narrow down single line when hits line, bytes returned method 0. i've looked @ in firebug , makes call, indicates success 200, nothing returned , no errors thrown. if return before line, works fine. i've been trying figure out days. i've tried setting ajax async parameter true , false didn't help. app pool set networkservice login permissions on sql server. none of other databases or similar calls have issue , i've made every comparison can think of make sure they're same. said, works perfect visual studio hitting development database when move production if silently fails. use calls time in number of our intranet sites , i've never run across this. has else had experience , if so, how did resolve it?
Comments
Post a Comment