[英]WebAPI Routes not being recognized on Azure
我正在嘗試將WebAPI項目部署到Azure。
它在本地工作。 當我將其Publish
到Azure時,我在控制器路由上得到404。
查看日志,我看到路由被當作靜態文件處理,而不是通過我的控制器。
Module IIS Web Core Notification MapRequestHandler Handler StaticFile Error Code 0x80070002 Requested URL http://xxxxx:80/api/studies Physical Path D:\\home\\site\\wwwroot\\api\\studies Logon Method Anonymous Logon User Anonymous
我的Global.asax是:
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
我的WebApiConfig.Register是:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我看過類似的問題,並嘗試將Web.config調整為無濟於事。 當前看起來像這樣(僅相關部分):
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
順便說一句,我使用的是Entity Framework 6,而不使用MVC,只是直接使用WebAPI。
我的Global.asax
某種方式被排除在項目之外,因此路由映射從未發生。
我遇到過同樣的問題。 直到更改我的Web配置使其看起來像對我來說都解決了
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
您是否已檢查服務器的所有必需Windows功能? IIS可能缺少某些功能,例如:Internet信息服務-萬維網服務-應用程序開發功能-ASP.NET。 您可以轉到Windows功能(如果您在Windows Server上,則通過服務器管理器)來查找並檢查計算機上安裝了哪些功能。
如果那不是您的問題,則有時可能是由於未正確安裝ASP.NET。 :此文章下面你可以重新安裝ASP.NET http://support.microsoft.com/kb/2736284 (這取決於你的操作系統)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.