2013-12-18 11 views
6

なぜWeb APIがAzure Webサイト上で動作しなくなるのですか?ASP.NET Web APIがAzureで動作しない

エラーがでは、リソースの読み込みに失敗しました:サーバーは、その名前が変更された、または現在利用でき、あなたが探しているリソースが削除されている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プロジェクトに追加し、* .dllをソリューションに追加しました。ビルドし、最初はすべてが期待どおりに機能しました。

+0

アクセスしようとしているURLは何ですか? – pollirrata

+0

CORSも有効にする必要があります。 –

+0

@ThiagoCustodio CORSの必要はありません。 –

答えて

2

古いポストが、あなたは試してみました:

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

古い反応ですが、新しい問題です。投稿してくれてありがとう、最後の髪の毛を保存しました。既存のWebApiにasp.net Identityを統合するのに役立ちました。すべて私のローカルマシンで正常に動作しました – CF5

0

を@Matijaグルチッチと同じ、成功したAzureの何倍も上のWeb APIアプリケーションをデプロイした後、私は「あなたが探しているリソースをの壁にぶつかります新しい展開のが削除されました。私は、次の3つのアセンブリからの混合バージョン管理の問題で犯人を見つけました。

System.Net.Http。DLL

System.Net.Http.Formating.dll

System.Net.Http.WebRequest.dll

私はそれらのアセンブリへの私のプロジェクトの参照がグローバル・キャッシュからそれらを使用するように設定されたことを指摘その後、展開時にAzureにコピーされませんでした。しかし、私はまた、私のアプリケーションのログのエラーで、それが見つからないと不平を言っていることがわかりました。最後の手掛かり:彼らは私の開発マシンのディレクトリに存在していた。

実行ディレクトリ> assemblyBinding> dependentAssemblyセクションから、それらのアセンブリを明示的に記述していない開発ディレクトリとWeb.configを削除しました。再度公表され、エラーが勝った。

次に、参照した3つのアセンブリをAzureのbinフォルダに手動でコピーし、FTPとvoilaを使用してください!私のWeb APIが動作しています!

新しいWebアプリケーション(これを書いている時点では.Net 4.7)のAzure環境には新しいバージョンがあり、私の古いVisual StudioプロジェクトはMVCとWeb APIをビルドして古いバージョン。そのようにして、新しい.Netフレームワークを使って新しいプロジェクトを作成しようとすると、@Matija Grcicのように役立つでしょう。

0

私は、.NET Framework 4.6.1から4.6.2への変更によりこの問題を解決しました。 今すぐ使えます

関連する問題