У меня есть веб-сайт и api, настроенные на моем хосте, прослушивающие 80 и 443. Я пытаюсь разбить 2 и поместить их на отдельные порты и использовать переписывание URL-адреса IIS для маршрутизации запросов.Url переписать и пользовательское сообщение об ошибке
Итак, я создал новый пустой сайт только web.config и поставить свои правила перезаписи там, мои запросы перенаправляются правильно, но я не в состоянии получить случай, когда рабочий API возвращает 400.
т.е. если вы пинг API с плохим запросом непосредственно (указать порт), он правильно возвращает 400 Bad запроса JSON ответ
400 Bad Request
Pragma: no-cache
X-CorrelationId: 823fc2fd-4ed2-46b6-86e0-50b2abf5d61b
X-Content-Type-Options: nosniff
Request-Processing-Time: 606.4377 ms
OData-Version: 4.0
Content-Length: 142
Cache-Control: no-cache
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true
Date: Wed, 14 Oct 2015 21:39:58 GMT
Expires: -1
P3P: CP="CAO DSP COR ADMa DEV CONi TELi CUR PSA PSD TAI IVDi OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR"
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
{
"error":{
"code":"20112","message":"Invalid Entity ID specified.",
}
}
Однако через URL переписать вы видите HTML-страницу
400 Bad Request
Content-Length: 3506
Cache-Control: private
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Oct 2015 21:33:42 GMT
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
<!DOCTYPE html>
<html>
<head>
<title>A potentially dangerous Request.Path value was detected from the client (:).</title>
<meta name="viewport" content="width=device-width" />
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;}
Я попытался добавить <httpErrors existingResponse="PassThrough"/>
в web.config, но это не помогло ...
Edit: У меня есть руководство, по-видимому, связан с утратившими символами, то апи имеет параметры с: в нем , Все еще пытаюсь понять, как это решить.
Редактировать 2: См. Разрешение в ответе ниже.
Любые советы о том, как разрешить это?
Как выглядит ваш запрос? – jgasiorowski