asp.NetMVC iis 6仮想ホスト互換開発方式

3741 ワード

仮想ホスト上を走るアプリケーションでは、MVCをサポートするためにIISを設定する権限がありません.この敷居を越えるには、年間8000 RMB近くの費用がかかります.
仮想ホストは毎年300以上の費用をサポートし、mysqを追加しても500未満です.
ASPならNET2.0 Vici開発フレームワークを採用可能
ASPならNET3.5あるいは4.0それはいくつかの配置の上の変化をする必要があって、最初は私はずっとMVCが死んだと思って、最近VICIのフレームワークを研究して、VICIが柔軟な配置ができることを発見して、コードは以下の通りです
      <httpModules>

        <add name="MvcModule" type="Vici.Mvc.HttpModule, Vici.Mvc" />

      </httpModules>



      <httpHandlers>

        <add verb="*" type="Vici.Mvc.MVCHandler, Vici.Mvc" path="ProMesh.axd" />

      </httpHandlers>

---
 public static void Init()

        {



            WebAppConfig.Router.AddDefaultRoutes(".aspx"); // ".aspx"

          

        }

----
URL
Controller
Action
Parameters
~/{controller}/{action}/{id}.aspx
{controller}
{action}
id = {id}
~/{controller}/{action}.aspx
{controller}
{action}
 
~/{controller}.aspx
{controller}
Run
 
------
これらはMVCでマイクロソフトがそんなに堅苦しくないはずだと見たことがあるが、接尾辞の名前を変えることができるはずだ」と話した.ashx」、修正コードは以下の通りです.
Web.config
asp.net mvc1
MVC 1の変更方法とVICIの車は多くありません<httpHandlers> <add verb="*.ashx" type="Vici.Mvc.MVCHandler, Vici.Mvc" path="ProMesh.axd" /> </httpHandlers>
 
 
asp.net mvc2
<httpHandlers>

      <remove verb="*.ashx" path="*.asmx"/>

      <add verb="*.ashx" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

      <add verb="*.ashx" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>

    </httpHandlers>

 
Global.asaxの変更
  public static void RegisterRoutes(RouteCollection routes)

        {

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");



            routes.MapRoute(

                "Default", // Route name

                "{controller}/{action}/{id}.ashx", // URL with parameters

                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

            );

            routes.MapRoute(

               "Default2", // Route name

               "{controller}/{action}.ashx", // URL with parameters

               new { controller = "Home", action = "Index" } // Parameter defaults

           );



            routes.MapRoute(

               "Default3", // Route name

               "{action}.ashx", // URL with parameters

               new { controller = "Home", action = "Index" } // Parameter defaults

           );



            routes.MapRoute(

              "Default4", // Route name

              "", // URL with parameters

              new { controller = "Home", action = "Index" } // Parameter defaults

          );



        }

 
これでMVCは仮想ホスト上を走ることができます