2013-12-18 3 views
6

로컬 호스트에서 작동하는 웹 페이지가 Azure 웹 사이트에서 작동하지 않는 이유는 무엇입니까?Azure에서 ASP.NET 웹 API가 작동하지 않습니다.

오류는 리소스를로드하지 못했습니다 입니다 : 서버가 404 (찾을 수 없음) 상태로 응답 또는 당신이 제거 된 찾고있는 자원, 이름이 변경되었거나 일시적으로 사용할 수 없습니다. 브라우저에서 api에 URL을 붙여 넣을 때

참고 : 이 오류가 발생하지 않았으며 이미 Web Api 특성 라우팅을 사용하여 하늘에 여러 사이트가 이미 있습니다.

는 WebConfig

public static void Register(HttpConfiguration config) 
     { 

      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
} 

RouteConfig

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


      routes.MapRoute(
      name: "Cities", 
      url: "Cities/{id}/{name}/{action}", 
      defaults: new { controller = "Cities", action = "Index" } 
      ); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      );   
     } 

을 Global.asax

AreaRegistration.RegisterAllAreas(); 
      GlobalConfiguration.Configure(WebApiConfig.Register); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 

      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      BundleConfig.RegisterBundles(BundleTable.Bundles); 

Goggling이 밝혀

HTTP 404 Page Not Found in Web Api hosted in IIS 7.5

WebAPI DELETE request return 404 error in Azure

WebApi and ASP.NET 4 routing issues

https://stackoverflow.com/questions/15805471/using-windows-azure-websites-with-extensionlessurlhandler

Configuring IIS methods for ASP.NET Web API on Windows Azure Websites

How Extensionless URLs Are Handled By ASP.NET v4

0 :이 일반적인 문제

Getting 404 from WebAPI on Windows Azure Web Sites

ASP.NET MVC 4 and Web API in Azure - No HTTP resource was found

MVC 4.5 Web API Routing not working?

UPDATE

시도 후 모든 방법은 내가 솔루션에서 모든 * .dll을 제거했습니다 위의 링크에 제안, 새로운 을 만들어 MVC + Web API 프로젝트에 추가하고 * .dlls를 솔루션에 추가합니다. 빌드하고 모든 것이 처음부터 예상대로 작동했습니다.

+0

액세스하려는 URL은 무엇입니까? – pollirrata

+0

CORS도 활성화해야합니다. –

+0

@ ThiagoCustodio 여기에 CORS가 필요하지 않습니다. –

답변

2

오래된 게시물,하지만 당신은 시도 : @Matija Grcic보다

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 
+0

예전의 반응이지만 새로운 문제. 게시 해 주셔서 대단히 감사드립니다. 머리카락을 마지막으로 저장했습니다. asp.net Identity를 기존 webApi에 통합 할 수 있도록 도와주었습니다. 내 로컬 컴퓨터에서 모두 정상적으로 실행되었습니다. – CF5

0

이 같은 성공적으로 푸른 많은 시간에 웹 API 응용 프로그램을 배포 한 후, 나는 의 벽에 부딪 "자원 당신이 찾고있는 에 대한 제거되었습니다 .. " 새로운 배포. 다음 세 어셈블리의 혼합 버전 문제에서 범인을 찾았습니다.

System.Net.Http.DLL

나는 그 어셈블리 내 프로젝트 참조가 글로벌 캐시를 사용하도록 설정 한 것을 언급 System.Net.Http.Formating.dll

System.Net.Http.WebRequest.dll

, 그리고 배포시 Azure에 복사되지 않았습니다. 또한 오류 로그에서 내 응용 프로그램의 로그를 찾지 못했다고 불평했습니다. 마지막 단서 : 그들은 내 개발 기계의 디렉토리에 존재했다.

런타임> assemblyBinding> dependentAssembly 섹션에서 해당 어셈블리를 명시 적으로 언급하지 않으면 개발 디렉토리와 Web.config를 제거했습니다. 다시 게시 했으므로 오류가 발생했습니다.

그런 다음 참조 된 세 개의 어셈블리를 Azure의 bin 폴더에 수동으로 복사하고 FTP를 사용하십시오! 내 웹 API가 작동 중입니다!

Azure 환경에 새 웹 응용 프로그램 (.Net 4.7 작성 시점)에 새 버전이 있고 내 이전 Visual Studio 프로젝트에서 MVC 및 웹 API를 빌드하여 이전 버전을 사용할 것으로 예상합니다. . 그런 식으로 @Matija Grcic이했던 것처럼 새로운 .Net 프레임 워크를 사용하고 참조하는 새 프로젝트를 만들려고 노력하면 도움이됩니다.

0

.net Framework 4.6.1에서 4.6.2로 변경하여이 문제를 해결했습니다. 이제 나에게 적합

관련 문제