Skip to main content
Legend
May 30, 2014
Answered

cfheader and statuscode

  • May 30, 2014
  • 2 replies
  • 1176 views

I have a page performing a web service using SOAP (sorry if my terminology is redundant). Everything works great until I attempt to return a SOAP fault response with a http status code. If I return the SOAP xml document indicating the fault, works great. If I simply add <cfheader statuscode="500" statustext="You broke it." />, I end up with my SOAP xml document prepended with html displaying user text of the 500 error:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<title>500 - Internal server error.</title>

<style type="text/css">

<!--

body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}

fieldset{padding:0 15px 10px 15px;}

h1{font-size:2.4em;margin:0;color:#FFF;}

h2{font-size:1.7em;margin:0;color:#CC0000;}

h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}

#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;

background-color:#555555;}

#content{margin:0 0 0 2%;position:relative;}

.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}

-->

</style>

</head>

<body>

<div id="header">

<h1>Server Error</h1>

</div>

<div id="content">

<div class="content-container">

  <fieldset>

  <h2>500 - Internal server error.</h2>

  <h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>

  </fieldset>

</div>

</div>

</body></html><?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soap:Body>

  <soap:Fault>

   <faultcode>soap:Client</faultcode>

   <faultstring>Server did not recognize the value of HTTP Header SOAPAction: FastRezBookReservation.</faultstring>

   <detail/>

  </soap:Fault>

</soap:Body>

</soap:Envelope>

Starting with the "<?xml..." is the text I output. All the stuff prior to that either IIS or ColdFusion generously prepended for me. How do I stop the madness? I'm using IIS 7.5 and CF 9.0.2.

    This topic has been closed for replies.
    Correct answer Steve Sommers

    Found the problem. Nothing to do with ColdFusion, it was an IIS configuration issue that required a web.config tweak to the httperrors section. In case anyone else has a similar issue, here is where I found the solution: iis - How to remove error messages - IIS7 - Stack Overflow

    2 replies

    Steve SommersAuthorCorrect answer
    Legend
    May 30, 2014

    Found the problem. Nothing to do with ColdFusion, it was an IIS configuration issue that required a web.config tweak to the httperrors section. In case anyone else has a similar issue, here is where I found the solution: iis - How to remove error messages - IIS7 - Stack Overflow

    Legend
    May 30, 2014

    By "how do I stop the madness" I mean "how do I prevent auto-generated html from corrupting my xml?"