0
我有一個簡單的登錄控制器,看起來像這樣:ASP.NET的WebAPI與MVC - 統一控制注射失敗的HTTPPOST
public class LoginController : Controller
{
private IAccountService _accountService = null;
private IFormsAuthenticationService _formsAuthenticationService = null;
public LoginController() {}
[InjectionConstructor]
public LoginController(IAccountService accountService, IFormsAuthenticationService formsAuthenticationService)
{
_accountService = accountService;
_formsAuthenticationService = formsAuthenticationService;
}
//
// GET: /Login/
public ActionResult Index()
{
return View();
}
//
// POST: /Login/
[HttpPost]
public ActionResult Index(Credentials credentials)
{
try
{
if (_accountService.ValidateUser(credentials) != null)
{
_formsAuthenticationService.SignIn(credentials.UserName, true);
return RedirectToAction("Index", "Home");
}
else
return RedirectToAction("Index", new { failed = true });
}
catch
{
throw;
}
}
}
本地,一切工作正常。但是,當我將應用程序放到我的Web服務器(共享主機,ASP.NET 4.0)上時,構造函數注入對GET正常工作,但不會爲POST啓動。
本質上對於POST來說,默認的構造函數會被激發而不是注入構造函數。我不確定Unity是否會踢POST動詞(我該如何測試?)。
我正在使用Boostrapper.cs,正如我所說的,在我的開發PC上一切正常,所以推測在Web服務器上有問題。我可能會更改一些服務器設置。有什麼建議麼?
乾杯 -
爲什麼你有一個默認ctor無論如何?這是[壞事](http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=97)。 – Steven