2011-09-20 38 views
0

路由我在Windows Server 2008 R2與IIS 7.5(集成模式)部署一個MVC應用程序。如果我輸入地址(http://192.168.3.5:2011/),瀏覽器應顯示的第一頁是登錄頁面。問題是,我發現它執行在控制器中找到的第一個ActionResult返回方法,該方法位於按照索引的字母順序列表中的頂部。另一方面,如果我輸入http://192.168.3.5:2011/Default.aspx一切都正確;它顯示登錄頁面。在Global.asax我的路由表中被定義爲:主頁不能正確地與IIS 7.5

public class MvcApplication : System.Web.HttpApplication 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
      "Default", 
      "{controller}/{action}/{id}", 
      new { controller = "Login", action = "Login", id = "" } 
     ); 
     } 

     protected void Application_Start() 
     { 
      RegisterRoutes(RouteTable.Routes); 
     } 
    } 

,我得到的是,它重定向到以下地址結果:http://192.168.3.5:2011/Account/LogOn?ReturnUrl=%2f,然後配置錯誤被拋出:

<providers> 
     <clear /> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" /> 
</providers> 

有一個LogOn方法,這是第一個在Account Controller中聲明的方法,它是按字母排序的第一個控制器。

在IIS 6.0經典模式工作正常,但不是在IIS 7.5(集成模式)。這真讓我抓狂。

謝謝你的幫助。

問候。

+1

請提供正在執行 – Rune

回答

1

這樣看來,我認爲認證的一個配置的情況下,而不是在其他。帳戶/登錄具有返回URL參數,通常在原始請求未通過身份驗證時由於重定向而提供。

+0

我應該改變呢?對不起,我不明白的回答:-(順便說一句,我在其他地方的應用程序的鏈接,我也得到了同樣的錯誤。 – Julen

+0

感謝Jared和最大的最後,這是一個身份驗證問題,我在IIS中從Form更改爲Windows,並且tadà...它工作正常,我仍然不太瞭解發生了什麼。 – Julen

0

您可以嘗試定義ID作爲UrlParameter.Optional:

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

看來我無法訪問UrlParameter類的操作細節(至少名稱和控制器)。我正在使用V2的框架。 – Julen

+0

UrlParameter在MVC2介紹,它屬於命名空間System.Web.Mvc –

+0

也許是MVC2的一部分,但它corresponde到.NET框架V2?在Visual Studio不能找到它... :-( – Julen