Sto utilizzando MVC 3 con Visual Studio 2010 e C# 4.0. La mia applicazione funziona correttamente in IIS Express da Visual Studion e quando viene distribuita su un server IIS 7.5 di produzione remota.Errore di routing con IIS 7 rispetto a IIS Express che genera errori HTTP 404
Quando passo a utilizzare il server IIS 7.5 completo sul mio sistema di sviluppo, ho improvvisamente iniziato a ricevere errori HTTP 404 per le azioni in due dei miei controller. Gli altri controller funzionano correttamente. Questo è l'esecuzione dell'applicazione da Visual Studio o direttamente da IIS.
Non vedo differenze di configurazione.
Uno dei controller che espone questo comportamento è:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using Mbrrace.ApplicationServices.Validation;
namespace Mbrrace.WebUI.Areas.Validation.Controllers
{
public class ValidationController : Controller
{
//
// GET: /Validation/Validation/
[HttpGet]
public JsonResult PostcodeCheck([Bind(Prefix = "perinatalView")]AddressViewModel model)
{
// postcode has already been checked for correct format
// now look it up to see if it exists
if (PostcodeChecks.CheckPostcodeExists(ConfigurationManager.ConnectionStrings["CommonCodeEntities"].ConnectionString, model.Postcode))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json("This postcode was not found in the database", JsonRequestBehavior.AllowGet);
}
[HttpPost]
public JsonResult PostcodeExtendedCheck(String Postcode)
{
// check if it exists or of it's sector exists (all but last two characters
string message = PostcodeChecks.PostcodeExtendedCheck(ConfigurationManager.ConnectionStrings["MbrraceCommonCodeEntities"].ConnectionString,
Postcode, Postcode.Substring(0, Postcode.Length - 2));
string success = (message.Length == 0) ? "OK" : "NO";
var result = new { Success = success, Message = message };
return Json(result, JsonRequestBehavior.AllowGet);
}
public class AddressViewModel
{
public string Postcode { get; set; }
}
}
}
Questo si comporta come previsto in IIS Express e un schierati a IIS. Genera un errore 404 quando IIS è connesso al progetto per il debug.
Qualcuno può per favore gettare luce sul motivo per cui vengono generati gli errori 404?
Hai impostato la modalità di pipeline gestita per l'integrazione nel pool di applicazioni? – levelnis
Grazie, sì, l'abbiamo fatto e abbiamo controllato "Consenti app a 32-bit" –
Puoi mostrare le rotte per quei controller? Ci sono attributi sulle azioni? Qualche gestore personalizzato in esecuzione? – levelnis