我需要在asp.net webapi应用程序中暂时禁用一个路由,我不能编译并进行另一次部署.
我可以在web.config中禁用asp.net web api路由吗?
解决方法
我不认为您可以在web.config中禁用特定路由.通常,如果要禁用路由,可以使用IgnoreRoute,或者只删除路径存在的WebApiConfig.cs或Global.asax文件中的路由.
既然你只想在web.config中进行,而不进行编译和另一次部署,我只能想到两种方法.
1)使用URL重写
<rewrite> <rules> <clear /> <rule name="diableRoute" stopProcessing="true"> <match url="api/YourWebApiController" /> <action type="Redirect" url="Error/NotFound" appendQueryString="false" /> </rule> </rules> </rewrite>
此结果将返回404错误页面.
2)设置授权规则
<location path="api/YourWebApiController"> <system.web> <authorization> <deny users="*"/> </authorization> </system.web> </location>
此结果将返回登录页面,因为拒绝访问Web API路由.
您可以根据需要自定义任何一个.