1

MVC 3 アプリケーションをサーバーにデプロイしていますが、MVC dll の欠落 (サーバーに MVC がインストールされていない) に関連するいくつかの問題を解決した後、エラーが発生し始めます。

Firefox「ページが正しくリダイレ​​クトされません」 Chrome「この Web ページにはリダイレクト ループがあります」 IE「このページを表示できません」

Cookie が関係していると言っている人を見つけましたが、問題の解決方法がわかりません。

かどうかにかかわらず、デフォルトのページは表示されません。

Global.asax ファイルまたは Web.Config に問題があると思われます。

Global.asax :

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

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

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

}

そして、AppSettings、connectionStrings、system.serviceModel のないWeb.Configの一部があります。

  <system.web>
    <compilation debug="true" defaultLanguage="c#" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <customErrors mode="Off">
      <error statusCode="404" redirect="/Error/PageNotFound" />
    </customErrors>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="UrlRoutingHandler" />
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

ログイン ページからのインデックスアクション:

public ActionResult Index()
 {
   if (CurrentAuthenticatedData != null && CurrentAuthenticatedData.User != null)
     ViewBag.IsLogin = true;
   else
     ViewBag.IsLogin = false;

     return View();
  }

現在の認証済みデータ:

System.Web.Routing.RequestContext Ctx = null;
public AuthenticatedData CurrentAuthenticatedData
{
    get
    {
        AuthenticatedData retval = null;

        if (Ctx.HttpContext.User.Identity.IsAuthenticated)
        {
            retval = (AuthenticatedData)ViewBag.Auth;
        }

        return retval;
    }
}

AuthenticatedData は、ログインしたユーザーに関連するいくつかの属性を格納するクラスです。

そして最後に私のViewコード:

@{
    ViewBag.Title = "Index";
}

<h2>Efetuar Login</h2>


@using (Html.BeginForm()) 
{
    <div style="@(ViewBag.IsLogin??false ? "display: none" : "")">
        @Html.ValidationMessage("Error")
        <p>Username:<input type="text" name="usr" /></p>
        <p>Password:<input type="password" name="pwd" /></p>
        <p>
            <input type="submit" value="Login" />
        </p> 
    </div>
}

ダミーの MVC アプリケーションをデプロイしようとしましたが、うまくいきました。=/

手伝って頂けますか?

ありがとう

4

2 に答える 2