Webservice works on localhost but not on production server

Discussion in 'ASP.NET WebServices' started by billmweber, Jul 31, 2008.

  1. I am having a problem in implementing an webservice. I have created this webservice ? here is the code:
    </o:p>
    Server Code:
    using System;</o:p>
    using System.Data;</o:p>
    using System.Web;</o:p>
    using System.Collections;</o:p>
    using System.Web.Services;</o:p>
    using System.Web.Services.Protocols;</o:p>
    using System.ComponentModel;</o:p>
    using System.Data.SqlClient;</o:p>
    </o:p>
    namespace MicrosoftPartner.Webservice</o:p>
    {</o:p>
    /// <summary></o:p>
    /// Summary description for WebService</o:p>
    /// </summary></o:p>
    [WebService(Namespace = "http://tempuri.org/MicrosoftPartner/WebService")]</o:p>
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]</o:p>
    [ToolboxItem(false)]</o:p>
    public class WebService : System.Web.Services.WebService</o:p>
    {</o:p>
    </o:p>
    [WebMethod(EnableSession=false, Description="Verifies Zip Code", BufferResponse=true)]</o:p>
    public AJAXResult CheckZipcode(string Zipcode, string City, string State)</o:p>
    {</o:p>
    Zipcode=Zipcode.Trim();</o:p>
    string ZipcodeBase="";</o:p>
    string ZipcodeExtension="";</o:p>
    AJAXResult retVal = new AJAXResult();</o:p>
    </o:p>
    if (Zipcode.IndexOf("-")>0 || Zipcode.IndexOf(" ")>0) </o:p>
    {</o:p>
    if (Zipcode.Length == 10) </o:p>
    {</o:p>
    ZipcodeBase = Zipcode.Substring(0,5);</o:p>
    ZipcodeExtension = Zipcode.Substring(5,4);</o:p>
    </o:p>
    } </o:p>
    else </o:p>
    {</o:p>
    retVal.returnData="invalidinput";</o:p>
    }</o:p>
    } </o:p>
    else if (Zipcode.Length == 9) </o:p>
    {</o:p>
    ZipcodeBase = Zipcode.Substring(0,5);</o:p>
    ZipcodeExtension = Zipcode.Substring(4,4);</o:p>
    } </o:p>
    else if (Zipcode.Length == 5)</o:p>
    {</o:p>
    ZipcodeBase = Zipcode;</o:p>
    } </o:p>
    else </o:p>
    {</o:p>
    retVal.returnData="invalidinput";</o:p>
    }</o:p>
    if (ZipcodeBase != string.Empty ) </o:p>
    {</o:p>
    SqlDataReader objDataReader = MicrosoftPartner.Components.StoredProcedure.GetZipCode(ZipcodeBase);</o:p>
    if (objDataReader.Read())</o:p>
    {</o:p>
    if (City.Trim() != string.Empty &amp;&amp; State.Trim() != string.Empty)</o:p>
    {</o:p>
    bool matchCity = true;</o:p>
    if (objDataReader["City"].ToString().ToLower() != City.ToLower() || objDataReader["State"].ToString().ToLower() != State.ToLower())</o:p>
    {</o:p>
    matchCity = false;</o:p>
    }</o:p>
    while (objDataReader.Read())</o:p>
    {</o:p>
    if (objDataReader["City"].ToString().ToLower() != City.ToLower() || objDataReader["State"].ToString().ToLower() != State.ToLower())</o:p>
    {</o:p>
    matchCity = false;</o:p>
    }</o:p>
    }</o:p>
    if (matchCity == true)</o:p>
    {</o:p>
    retVal.returnData = "valid";</o:p>
    }</o:p>
    else</o:p>
    {</o:p>
    retVal.returnData= "cityzipinvalidpair";</o:p>
    }</o:p>
    }</o:p>
    else</o:p>
    {</o:p>
    retVal.returnData = "valid";</o:p>
    }</o:p>
    }</o:p>
    else</o:p>
    {</o:p>
    retVal.returnData = "invalid";</o:p>
    }</o:p>
    </o:p>
    objDataReader.Close();</o:p>
    }</o:p>
    </o:p>
    return retVal;</o:p>
    }</o:p>
    }</o:p>
    </o:p>
    public class AJAXResult</o:p>
    {</o:p>
    </o:p>
    public Boolean errFlag;</o:p>
    public string errMessage = "";</o:p>
    public string returnData = "";</o:p>
    </o:p>
    }</o:p>
    }</o:p>
    </o:p>
    </o:p>
    Here is guts of the calling page:
    </o:p>
    <%@ Pa<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></o:p>
    </o:p>
    <link href="Style/style.css" rel="stylesheet" type="text/css" /></o:p>
    <script type="text/javascript" language="javascript"></o:p>
    function showSpanQuestions() {</o:p>
    document.getElementById("spanQuestions").style.display="inline";</o:p>
    </o:p>
    }</o:p>
    function checkZip() {</o:p>
    showSpanQuestions();</o:p>
    return;</o:p>
    </o:p>
    var reqUrl = "Webservice.asmx/CheckZipcode";</o:p>
    xmlReq2 = null;</o:p>
    if(window.XMLHttpRequest) {</o:p>
    xmlReq2 = new XMLHttpRequest();</o:p>
    } else if(window.ActiveXObject) {</o:p>
    xmlReq2 = new ActiveXObject("Microsoft.XMLHTTP");</o:p>
    }</o:p>
    if(xmlReq2==null) {</o:p>
    return; // Failed to create the request</o:p>
    }</o:p>
    // Anonymous function to handle changed request states</o:p>
    xmlReq2.onreadystatechange = function()</o:p>
    {</o:p>
    switch(xmlReq2.readyState)</o:p>
    {</o:p>
    case 0: // Uninitialized</o:p>
    break;</o:p>
    case 1: // Loading</o:p>
    break;</o:p>
    case 2: // Loaded</o:p>
    break;</o:p>
    case 3: // Interactive</o:p>
    break;</o:p>
    case 4: // Done!</o:p>
    return validateZipcode(xmlReq2.responseXML);</o:p>
    break;</o:p>
    default:</o:p>
    break;</o:p>
    }</o:p>
    }</o:p>
    </o:p>
    // Make the request</o:p>
    </o:p>
    xmlReq2.open ('POST', reqUrl, true);</o:p>
    xmlReq2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');</o:p>
    //alert("1.5:" + destUrl);</o:p>
    //alert(searchStr + "-" + URLencode(searchStr));</o:p>
    </o:p>
    xmlReq2.send("Zipcode=" + document.getElementById("textZip").value + "&amp;City=" + document.getElementById("textCity").value + "&amp;State=" + document.getElementById("selectState").value); </o:p>
    </o:p>
    }</o:p>
    </o:p>
    function validateZipcode(xmlResp) {</o:p>
    </o:p>
    var response = xmlResp.documentElement;</o:p>
    if (response != null) {</o:p>
    var error = response.getElementsByTagName('errFlag')[0].firstChild.data;</o:p>
    }</o:p>
    if(error.toUpperCase() != "TRUE"){ </o:p>
    var data = response.getElementsByTagName('returnData');</o:p>
    var responsedata = data[0].firstChild.data; </o:p>
    </o:p>
    if (responsedata == 'invalid') {</o:p>
    document.getElementById("regexZip").style.display="inline";</o:p>
    } else {</o:p>
    if (responsedata == 'cityzipinvalidpair') {</o:p>
    alert ("the city and state do not match the zip");</o:p>
    }</o:p>
    </o:p>
    document.getElementById("regexZip").style.display="none";</o:p>
    }</o:p>
    </o:p>
    }</o:p>
    }</o:p>
    </o:p>
    </script></o:p>
    </head></o:p>
    </o:p>
    </o:p>
    <form id="form1" runat="server" method="post"></o:p>
    </o:p>
    <div id="container"></o:p>
    <div id="centerCol"></o:p>
    <img src="images/ibis/LandingPage_Header.jpg" /></o:p>
    </o:p>
    <div class="mainContent"></o:p>
    </o:p>
    </o:p>
    <asp:TextBox MaxLength="255" onchange="checkZip();" name="textZip" id="textZip" CssClass="formField2" runat="server" /></td></o:p>
    </o:p>
    </div></o:p>
    </div></o:p>
    </o:p>
    </form></o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    I?ve included the entire code for the calling page at the end of the email just in case.</o:p>
    </o:p>
    This is the problem I?m having ? I can compile and run this on my machine under localhost. I?ve been able to deploy this to a server in my office and use it via an IP address ? I can not seem to get it to run after I deploy it to your server that we rent. The error I?m getting is that when the callback function is called (validateZipcode) the response object xmlResp is null. I made some logging routines that write logging info to a database and it appears that the webservice doesn?t even receive the request. Do you have any idea why this might be happening.</o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    </o:p>
    <%@ Page Language="C#" AutoEventWireup="true" Inherits="MicrosoftPartner.Default" Codebehind="Default.aspx.cs" %></o:p>
    </o:p>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></o:p>
    </o:p>
    <html xmlns="http://www.w3.org/1999/xhtml"></o:p>
    </o:p>
    <head runat="server"></o:p>
    <title>Microsoft Dynamics: Request A Free Whitepaper from a Gold Certified Partner. Everyone Gets It.</title></o:p>
    </o:p>
    <link href="Style/style.css" rel="stylesheet" type="text/css" /></o:p>
    <script type="text/javascript" language="javascript" src="Includes/JavaScript/ClientUtilities.js"></script></o:p>
    <script type="text/javascript" language="javascript"></o:p>
    function showSpanQuestions() {</o:p>
    document.getElementById("spanQuestions").style.display="inline";</o:p>
    </o:p>
    }</o:p>
    function checkZip() {</o:p>
    showSpanQuestions();</o:p>
    return;</o:p>
    </o:p>
    var reqUrl = "Webservice.asmx/CheckZipcode";</o:p>
    xmlReq2 = null;</o:p>
    if(window.XMLHttpRequest) {</o:p>
    xmlReq2 = new XMLHttpRequest();</o:p>
    } else if(window.ActiveXObject) {</o:p>
    <SPAN
     

Share This Page