我面临一个棘手的情况,我有一个角度2的应用程序部署到服务器一切正常,但是当向WebApi服务器发出请求调用时,我得到404错误响应。 WebApi的调用在本地环境中工作正常,但在实时服务器上失败。WebApi调用404错误
<!--Redirect selected traffic to index -->
<rule name="Index Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="/api/" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
以上是我已经放置在如果在URL“/ API /”中的WebAPI服务器将只被调用的Web.config文件中的规则。我在控制器中有一个匿名行为,我希望在通过邮递员运行时调用它,但是我只是得到一个404错误响应。
[AllowAnonymous]
[HttpGet]
[Route("api/dashboard/getanon")]
public IHttpActionResult GetTaskItemsAnon()
{
var identity = (ClaimsIdentity)User.Identity;
return this.Content(HttpStatusCode.OK, new { response = "Hello: Anon" });
}
该webapp托管在网络内的子域。所有angular2文件都正确加载我的火腿呈现登录屏幕,但无法与WebApi控制器进行通信。任何帮助将不胜感激thanx。
UPDATE: 下面是WebApiConfig.cs文件
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
您可以发布邮差的快照你如何进行API调用?另外,你可以尝试从Action方法中删除[AllowAnonymous]属性并尝试吗? –
我已经删除了[AllowAnonymous],但没有任何更改。对于Postman,我只是使用正常的GET请求,而没有参数给适当的URL。我知道这是正确的邮递员,因为在本地主机环境下邮差成功地到达控制器中的WebApi行动。 – Rossco
你可以在你的RouteConfig.cs中发布代码吗? –