Note that there are some explanatory texts on larger screens.

plurals
  1. POASP.NET Web Api HttpResponseException 400 (Bad Request) Hijacked by IIS
    primarykey
    data
    text
    <p>I'm writing a Web API service and trying to return a (400) Bad Request if my ModelState is invalid. I do not want a response body to be attached to this. It appears that IIS is hijacking my response and always returning a text/html content type with a lengthy, styled error page. This is a problem.</p> <pre><code> [HttpPost] public void Link(LinkDeviceModel model) { if (ModelState.IsValid) { try { model.Save(); } catch (Exception ex) { ErrorSignal.FromCurrentContext().Raise(ex); throw new HttpResponseException(ex.Message, HttpStatusCode.InternalServerError); } } else { throw new HttpResponseException(HttpStatusCode.BadRequest); } } </code></pre> <p>Here is my fiddler request:</p> <pre><code>POST http://localhost/myapp/service/link HTTP/1.1 Host: localhost Content-Length: 112 Content-Type: application/json Accept: application/json {"DeviceUniqueId":"CC9C6FC0-7D06-11E1-8B0E-31564824019B", "UserName": "me@mycompany.com"," Pin": "111111"} </code></pre> <p>And my response erroneous, full of body, response:</p> <pre><code> &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;title&gt;IIS 7.5 Detailed Error - 400.0 - Bad Request&lt;/title&gt; &lt;style type="text/css"&gt; &lt;!-- body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;background:#CBE1EF;} code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} .config_source code{font-size:.8em;color:#000000;} pre{margin:0;font-size:1.4em;word-wrap:break-word;} ul,ol{margin:10px 0 10px 40px;} ul.first,ol.first{margin-top:5px;} fieldset{padding:0 15px 10px 15px;} .summary-container fieldset{padding-bottom:5px;margin-top:4px;} legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} legend{color:#333333;padding:4px 15px 4px 10px;margin:4px 0 8px -12px;_margin-top:0px; border-top:1px solid #EDEDED;border-left:1px solid #EDEDED;border-right:1px solid #969696; border-bottom:1px solid #969696;background:#E7ECF0;font-weight:bold;font-size:1em;} a:link,a:visited{color:#007EFF;font-weight:bold;} a:hover{text-decoration:none;} h1{font-size:2.4em;margin:0;color:#FFF;} h2{font-size:1.7em;margin:0;color:#CC0000;} h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;} h4{font-size:1.2em;margin:10px 0 5px 0; }#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif; color:#FFF;background-color:#5C87B2; }#content{margin:0 0 0 2%;position:relative;} .summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;} .config_source{background:#fff5c4;} .content-container p{margin:0 0 10px 0; }#details-left{width:35%;float:left;margin-right:2%; }#details-right{width:63%;float:left;overflow:hidden; }#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF; background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal; font-size:1em;color:#FFF;text-align:right; }#server_version p{margin:5px 0;} table{margin:4px 0 4px 0;width:100%;border:none;} td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:bold;border:none;} th{width:30%;text-align:right;padding-right:2%;font-weight:normal;} thead th{background-color:#ebebeb;width:25%; }#details-right th{width:20%;} table tr.alt td,table tr.alt th{background-color:#ebebeb;} .highlight-code{color:#CC0000;font-weight:bold;font-style:italic;} .clear{clear:both;} .preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;} --&gt; &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="header"&gt;&lt;h1&gt;Server Error in Application "DEFAULT WEB SITE/MYAPP"&lt;/h1&gt;&lt;/div&gt; &lt;div id="server_version"&gt;&lt;p&gt;Internet Information Services 7.5&lt;/p&gt;&lt;/div&gt; &lt;div id="content"&gt; &lt;div class="content-container"&gt; &lt;fieldset&gt;&lt;legend&gt;Error Summary&lt;/legend&gt; &lt;h2&gt;HTTP Error 400.0 - Bad Request&lt;/h2&gt; &lt;h3&gt;Bad Request&lt;/h3&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;div class="content-container"&gt; &lt;fieldset&gt;&lt;legend&gt;Detailed Error Information&lt;/legend&gt; &lt;div id="details-left"&gt; &lt;table border="0" cellpadding="0" cellspacing="0"&gt; &lt;tr class="alt"&gt;&lt;th&gt;Module&lt;/th&gt;&lt;td&gt;ManagedPipelineHandler&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;th&gt;Notification&lt;/th&gt;&lt;td&gt;ExecuteRequestHandler&lt;/td&gt;&lt;/tr&gt; &lt;tr class="alt"&gt;&lt;th&gt;Handler&lt;/th&gt;&lt;td&gt;System.Web.Http.WebHost.HttpControllerHandler&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;th&gt;Error Code&lt;/th&gt;&lt;td&gt;0x00000000&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div id="details-right"&gt; &lt;table border="0" cellpadding="0" cellspacing="0"&gt; &lt;tr class="alt"&gt;&lt;th&gt;Requested URL&lt;/th&gt;&lt;td&gt;http://localhost:80/myapp/service/link&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;th&gt;Physical Path&lt;/th&gt;&lt;td&gt;C:\workspace\myapp\service\link&lt;/td&gt;&lt;/tr&gt; &lt;tr class="alt"&gt;&lt;th&gt;Logon Method&lt;/th&gt;&lt;td&gt;Anonymous&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;th&gt;Logon User&lt;/th&gt;&lt;td&gt;Anonymous&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;div class="clear"&gt;&lt;/div&gt; &lt;/div&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;div class="content-container"&gt; &lt;fieldset&gt;&lt;legend&gt;Most likely causes:&lt;/legend&gt; &lt;ul&gt; &lt;li&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;div class="content-container"&gt; &lt;fieldset&gt;&lt;legend&gt;Things you can try:&lt;/legend&gt; &lt;ul&gt; &lt;li&gt;Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click &lt;a href="http://go.microsoft.com/fwlink/?LinkID=66439"&gt;here&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;div class="content-container"&gt; &lt;fieldset&gt;&lt;legend&gt;Links and More Information&lt;/legend&gt; The request could not be understood by the server due to malformed syntax. &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;amp;IIS70Error=400,0,0x00000000,7601"&gt;View more information &amp;raquo;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Microsoft Knowledge Base Articles:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>I have tried to set <code>TrySkipIisCustomErrors = True</code> with great hope, but no luck. Any ideas? Appreciated. Thanks.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload