title: the server responded with a status of 500 (Internal Server Error) when calling webservice
body: <p>I do not have much experience with web applications and just when I thought I have it working something is going wrong. I studied a demo online in C# and then created my own simple version which seems to work fine. All it does is take some input and pass it to the webservice. 
  I then tried implementing a similar webservice in a more complex application and I get the following error with no clear indication as to why it does not work:</p>
  
  <pre><code>the server responded with a status of 500 (Internal Server Error) 
  </code></pre>
  
  <p>This is within the browser debugger and it does not clarify why.</p>
  
  <p>webservice url :hostlocal:xxxxx/SVC/contact.asmx/ContactMessage</p>
  
  <p>my webservice code as follows:</p>
  
  <pre><code>&lt;System.Web.Services.WebService(Namespace:="http://tempuri.org/")&gt; _
  &lt;System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)&gt; _
   &lt;ToolboxItem(False)&gt; _
  Public Class contact
  Inherits System.Web.Services.WebService
  
  &lt;WebMethod()&gt; _
  Public Function ContactMessage(ByVal clientProj As String, email As String, message As String) As String
  
  
      Dim insert_succes As Integer = load_data("", clientProj, "", "", "", "", "", "", "", "", email, message, "")
      Dim passedValidation As Boolean = True
  
      ' here you can return a flag which you can handle on client side accordingly
      ' if you need to
  
      Return If(passedValidation, "1", "0")
  
  End Function
  </code></pre>
  
  <p>and the javascript that calls it:</p>
  
  <pre><code>var dojoXhr;
  
   require(["dojo/parser", "dojo/query", "dojo/dom-class", "dojo/dom-style", 
      "dojo/on", "dojo/_base/event",
  "dojo/request/xhr", "dijit/form/ValidationTextBox", "dojo/domReady!"],
  function (parser, query, domClass, domStyle, on, event, xhr) {
  
      parser.parse();
  
      var btnSubmit = document.getElementById('btnSubmit');
  
      function correctInput(div, td, msg) {
          domStyle.set(div, 'display', '');
          td.innerHTML = msg;
      }
  
      on(btnSubmit, 'click', function (e) {
          event.stop(e);
          var clientProj = dijit.byId("clientName").get("value");
          var clientKey = dijit.byId("clientKey").get("value");
          var accessToken = dijit.byId("accessToken").get("value");
          var lusername = dijit.byId("lusername").get("value");
          var lpassword = dijit.byId("lpassword").get("value");
          var provid = dijit.byId("provID").get("value");
  
  
  
  
          var feedback = document.getElementById('feedback');
          var feedbackTD = query('td.feedback')[0];
  
          domStyle.set(feedback, 'display', 'none');
  
          if (!validateEmail(lusername)) {
              correctInput(feedback, feedbackTD, 'Please enter a valid email.');
              return;
          }
  
          var port = document.location.port;
          var xhrPath = '//' + document.location.hostname + (port == (80 || 443) ? '/' : ':' + port + '/') + 'SVC/contact.asmx/ContactMessage';
  
          var msgbody = {
              clientProj: clientProj,
              clientKey: clientKey,
              accessToken: accessToken,
              lusername: lusername,
              lpassword: lpassword,
              provid: provid
          };
  
          xhr(xhrPath, {
              headers: { "Content-Type": "application/json; charset=utf-8" },
              method: 'post',
              data: JSON.stringify(msgbody)
          }).then(function (data) {
              if (data == "0") {
                  correctInput(feedback, feedbackTD, 'Your message could not be sent.');
                  return;
              }
              alert('Bcrap STILL NOT WORKING NOW!');
              // show feedback to the user
              domStyle.set(feedback, 'display', '');
              domStyle.set(document.getElementById('msgBodyOutter'), 'display', 'none');
              feedbackTD.innerHTML = "Message was sent successfully.";
          });
      })
  });
  </code></pre>