2009-10-30 162 views
0

我目前正在調試剛剛部署到不同服務器的ASP.NET MVC應用程序。ASP.NET MVC控制器方法超時

登臺服務器和生產服務器之間的所有版本都是相同的,但在生產服務器(即64位,但在32位模式下運行應用程序)我在此控制器操作中出現超時:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(Person person, PeopleCertificationLevel peopleCertificationLevel, Address address) 
    { 
     try 
     { 
      person.PeopleCertificationLevels.Add(peopleCertificationLevel); 
      person.Addresses.Add(address); 
      _peopleService.SavePerson(person); 
      SetMessage("O marítimo foi registado com sucesso."); 
      return Redirect("~/People/Show/" + person.ID); 
     } 
     catch 
     { 
      SetErrorMessage("Por favor valide e preencha devidamente os campos assinalados a asterisco (*)."); 
      Create(); 
      return View(person); 
     } 
    } 

我已經嘗試在try塊之前拋出一個異常,但我總是在這裏得到一個請求超時。

在我看來,請求沒有得到這個動作。有關我應該如何調試的建議或應該怎麼做?

更新:我想它與模型綁定有關。如果我刪除綁定,請求將被分派,FAST。然而,我已經嘗試了幾種方法,比如在動作參數之前使用Bind屬性,嘗試創建一個包含3個屬性(Person,PeopleCertificationLevel,Address)的NewPersonForm類,甚至嘗試使用FormCollection和UpdateModel調用。一切都無濟於事。

UPDATE 2:此應用程序編譯爲32位並運行在64位環境中。儘管在AppPool中啓用了32位應用程序,但我懷疑這可能是導致問題的原因。

+1

ASP.NET MVC Routing在生產服務器上正確配置了嗎? – 2009-10-30 13:07:48

+0

是的。其他每個控制器方法都適用除此之外。我的意思是,在IIS中需要做什麼才能啓用MVC路由? – changelog 2009-10-30 13:19:37

+1

我可能會嘗試刪除對象參數並查看通過'form'構造返回的內容。可能是實例化這些對象時出現的問題? – Lazarus 2009-10-30 13:23:18

回答

1

它可能不是這個傻..但只是我的2美分

  • 你真的檢查表單發送通過一個提交按鈕 ?
  • 所有的參數都與 中指定的名稱完全匹配 的路由?

謝謝,
Mahesh Velaga。

+0

是的,一切都很好。在我的機器上,它工作正常,即使ASP開發服務器(默認啓動一個VS2008)。在這臺機器上,這是唯一不合格的形式。 – changelog 2009-10-30 16:06:29