JackyBoi
JackyBoi

Reputation: 2773

Asp.net code not performing on actual server as localhost

I have the following code that works fine on my localhost using IIS7 but when i upload it to my server it is behaving not the same as it did on my localhost For example the submit button when clicked should check validation which it does on my localhost and then redirects to a URL if the validation is correct

But when the same is tried on the actual server over here The not working link

the problem started when i introduced a redirect url (in C# code is Response.Redirect("http://www.google.com");) in to the c# code...if there is a better way to do this all this hassle wont be necessary..tks

this is the code that i used

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Xml" %>

<script runat="server">


protected void btnSave_Click(object sender, EventArgs e)
{
    txtAddress.Text = "";
    string xmlPath = MapPath("Books.xml");
    XmlDocument doc = new XmlDocument();
    //Check if the file already exists or not
    if (System.IO.File.Exists(xmlPath))
    {
        doc.Load(xmlPath);
        XmlNode bookNode = CreateBookNode(doc);
        //Get reference to the book node and append the book node to it
        XmlNode bookStoreNode = doc.SelectSingleNode("bookstore");
        bookStoreNode.AppendChild(bookNode);
        lblResult.Text = "XML Document has been successfully updated";
        txtAddress.Text = ""; Response.Redirect("http://www.google.com");
    }
    else
    {            
        XmlNode declarationNode = doc.CreateXmlDeclaration("1.0", "", "");
        doc.AppendChild(declarationNode);
        XmlNode comment = doc.CreateComment("This file represents a fragment of a book store inventory database");
        doc.AppendChild(comment);            
        XmlNode bookstoreNode = doc.CreateElement("bookstore");
        XmlNode bookNode = CreateBookNode(doc);                        
        //Append the book node to the bookstore node            
        bookstoreNode.AppendChild(bookNode);
        //Append the bookstore node to the document
        doc.AppendChild(bookstoreNode);
        lblResult.Text = "XML Document has been successfully created";
        txtAddress.Text = "";Response.Redirect("http://www.google.com");
    }
    doc.Save(xmlPath);



}

XmlNode CreateBookNode(XmlDocument doc)
{

    /* 
     XmlNode bookNode = doc.CreateElement("book");
     //Add the genre attribute to the book node
     XmlAttribute genreAttribute = doc.CreateAttribute("genre");
     genreAttribute.Value = txtGenre.Text;        
     bookNode.Attributes.Append(genreAttribute);

     http://www.java2s.com/Code/ASP/XML/SaveformdatatoXMLfile.htm

     */


    XmlNode bookNode = doc.CreateElement("book");

    //Declaration of the Main Node (Particulars)
    XmlNode particularsnode = doc.CreateElement("Particulars");
    //Declaration of Child Nodes in the Main Node(Particulars)
    XmlNode nameNode = doc.CreateElement("Name");
    XmlNode phoneNode = doc.CreateElement("Phone");
    XmlNode emailNode = doc.CreateElement("Email");
    XmlNode AddressNode = doc.CreateElement("Address");
    //Getting the textvalue from the htmlform
    nameNode.InnerText = txtName.Text;
    phoneNode.InnerText = txtPhone.Text;
    emailNode.InnerText = txtEmail.Text;
    AddressNode.InnerText = txtAddress.Text;
    //Updating the XML file here the particularsnode has various children and they are being updated
    particularsnode.AppendChild(nameNode);
    particularsnode.AppendChild(phoneNode);
    particularsnode.AppendChild(emailNode);
    particularsnode.AppendChild(AddressNode);
    bookNode.AppendChild(particularsnode);


    //Declaration of the Main Node (BookParticulars)
    XmlNode bookparticularsnode = doc.CreateElement("BookParticulars");
    //Declaration of Child Nodes in the Main Node(BookParticulars)
    XmlNode schoolNode = doc.CreateElement("School");
    XmlNode currentlevelNode = doc.CreateElement("CurrentLevel");
    XmlNode GABDNode = doc.CreateElement("GiveAwayBookDetails");
    XmlNode LRNode = doc.CreateElement("LevelRequired");
    //Getting the textvalue from the htmlform
    schoolNode.InnerText = txtSchool.Text;
    currentlevelNode.InnerText = txtCurrentLevel.Text;
    GABDNode.InnerText = txtGABD.Text;
    LRNode.InnerText = txtLR.Text;
    //Updating the XML file here the particularsnode has various children and they are being updated
    particularsnode.AppendChild(schoolNode);
    particularsnode.AppendChild(currentlevelNode);
    particularsnode.AppendChild(GABDNode);
    particularsnode.AppendChild(LRNode);
    bookNode.AppendChild(bookparticularsnode);



    return bookNode;
}
public static string NewLineToBreak(string input)
{
    Regex regEx = new Regex(@"[\n|\r]+");
    return regEx.Replace(input, "<br />");
}

protected void txtAddress_Load(object sender, EventArgs e)
{
    txtAddress.Text = "Woodlands Drive 14\n Blk";
}
</script>

Upvotes: 0

Views: 1028

Answers (3)

huMpty duMpty
huMpty duMpty

Reputation: 14460

Try using Server.MapPath as describes in ASP.NET Web Project Paths or try using Page.ResolveUrl

Upvotes: 1

user788312
user788312

Reputation: 479

Try giving the fully qualified path and see if its picking the XML file. I am sure it might be some path issue that is causing the exception. Also make sure you turn on the Custom Errors mode so that you can see the error.

Upvotes: 0

user645280
user645280

Reputation:

Have you tried using fully qualified paths for the resources you're trying to load?

e.g.:

string xmlPath = MapPath("~/Books.xml");

-or-

string xmlPath = MapPath("~/<some_sub_dir>/Books.xml");

Also, is your production server throwing exceptions? If so, displaying them locally only and using a local http session to see them might help.

example web.config section for customerrors:

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
    <error statusCode="403" redirect="NoAccess.htm" />
    <error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

Upvotes: 0

Related Questions