WEB API 및 OData 끝 점이있는 ASP.NET MVC 웹 사이트가 있습니다. 사이트를 오프라인으로 전환하지만 API 및 OData는 계속 작동하는 방법이 있습니까?
루트에 App_Offline.htm을 배치하려고했지만 모든 영역이 오프라인이되었습니다.
작성하고 ActionFilterAttribute
글로벌 필터로 등록하십시오.
public class MyFilterAttribute : ActionFilterAttribute
{
private string _offlineUrl;
public MyFilterAttribute(string offlineUrl)
{
_offlineUrl = offlineUrl;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// considering you have a API controller
// and you have a Boolean app setting named BringMVCRoutesOffline
// to activate this filter form web.config
// in real world scenario you could check area or what URL
// or route data you want
if (Convert.ToBoolean(ConfigurationManager.AppSettings["BringMVCRoutesOffline"])
&& filterContext.RouteData.Values.ContainsKey("controller")
&& !filterContext.RouteData.Values["controller"]
.ToString().ToLower() == "api"
// avoiding infinite loop
&& filterContext.HttpContext.Request
.AppRelativeCurrentExecutionFilePath != _offlineUrl)
{
filterContext.Result = new RedirectResult(_offlineUrl);
}
}
}
App_Start> FilterConfig에서 다음을 추가하십시오.
filters.Add(new MyFilterAttribute("~/error/offline"));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다