IIS Expressを使用してデバッグ/実行し、http://localhost:1234/People
を参照すると、IIS ExpressはPeople
ルートを実行する代わりにPeople
ディレクトリを参照しようとします403.14 HTTPエラーそこで、Web.config内のStaticFile
ハンドラを無効にして更新しました。今私は404.4 HTTPエラーを取得:ASP.NET MVC5が物理パスに一致するルートのマップを拒否します
私はルートがあるため、私は
RoutePrefix
の名前を変更する場合は、例えば働くことを知っている
PeopleTest
、ルートが実行され、私は期待した応答を得る。
静的ファイル/ディレクトリよりもMVCルートを優先するようにIIS/Expressに納得させるにはどうすればよいですか?
私は属性ルーティングを使用しています。関連するコードは以下の通りです:
のWeb.config
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<remove name="StaticFile"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Global.asaxの
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AutofacConfig.Configure();
スタートアップ\ WebApiConfig
namespace MyApi.Startup {
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {
config.MapHttpAttributeRoutes();
}
}
}
人々\ PeopleController
namespace MyApi.People {
[RoutePrefix("People")]
public partial class PagesController : BaseController {
[Route]
[HttpGet]
[ResponseType(typeof(IEnumerable<Person>))]
public IHttpActionResult Get() { ... }
}
}
私は、ルーティング属性を使用していているので、私は非標準のフォルダ構造を使用していますので注意してください。例えば。私はコントローラ/モデル/ビューフォルダを持っていません。代わりに、ビジネスエリアごとにルートフォルダを持っています(例えば、~\People
には "人"ビジネスエリアのコントローラ/モデル/ etcが含まれています)。私はRAMMFAR設定
- を試してみた何
。
ExtensionlessUrlHandler-Integrated-4.0
を削除して再度追加します。public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.RouteExistingFiles = true; routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); } }
ASP.NETルーティングは、すべてのルートを処理するように:
RouteExistingFiles = true
を設定する追加することにより、固定
私はあなたがこの「ピープル構造」を使用しようとしていると思います[エリア](http://www.c-sharpcorner.com/UploadFile/4b0136/getting-started-with-area-in-mvc-5/)。私はあなたが提案したこの構造はうまくいかないと恐れています。 –
私はエリアまたは標準のMVCルーティングを使用していません、私は属性ルーティングを使用しています:http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net -mvc-5.aspx –