2

.NET 4.0「Webアプリケーション」、別名「Webフォーム」があります。このアプリケーションの中には、「WebAPIコントローラークラス」と「Global.asax」があります。

Global.asax内で、「Application_Start」メソッドに次のコードがあります。

var config = GlobalConfiguration.Configuration;

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

ローカルデバッグセッションを開始すると、ルートを問題なく使用できます。「/api/ ZipCodes」と入力すると、期待されるJSON応答が得られます。

プロジェクトをリモートIISサーバー(公開方法:ファイルシステム)に公開すると、ルートが機能しなくなります。404エラーが発生します。

IISがルートを認識して使用するために、IISで有効にする必要のある設定などがあると想定しています。

  • IISバージョン7.0.6000.16386
  • .NETアプリケーションプールバージョン4.0

  • 私のウェブサイトは「C:\ inetpub \ hosts」にあり、他の7つ以上のウェブサイトもすべて機能しています。ルーティングを使用するものはありません。

  • 「HelloWorld」を含むDefault.aspxがあり、リモートIISサーバーとローカルデバッグセッションで正しくアクセスできます。
  • ローカルマシンでデバッグする場合、「http:// localhost:6358 / api / ZipCodes」と入力して、JSON応答を取得できます。リモートマシン「http://remoteserver.com/api/ZipCodes」に同じURLを入力すると、404が表示されます。

誰か考えがありますか?

4

2 に答える 2

0

IIS が最新 (私は 7.0 以降を想定しています) で、アプリケーション プールがユーザー フレームワーク 4.0 に構成されている場合、他のアクションまたは構成で動作するはずです。

于 2012-11-28T19:39:01.097 に答える
0

ホームフォルダは正しく設定されていますか? それが今日私に起こったことだからです。サーバーのルートではなく、アプリケーションのルート フォルダーを指す必要があります。

編集: アプリケーションを公開したフォルダを教えていただけますか?

また、 「ホーム フォルダー」 (www.yoursite.com に対して要求が行われたときにサーバーが指すフォルダー) の セットアップ方法を知りたい場合は、次のリンクを参照してください: https://www.microsoft .com/technet/prodtechnol/WindowsServer2003/Library/IIS/a59a2665-9078-43ef-8b5a-5bf9bcacc95e.mspx?mfr=true

総括する:

アプリケーションのフォルダを指すように「ホーム フォルダ」を設定するか、アプリケーション ファイルプリセット フォルダに配置する必要があります(次のような名前だと考えてください: LocalDrive:\Inetpub\Wwwroot ) 。

于 2012-11-28T19:31:03.767 に答える