2013-02-22 10 views
5

Używam MVC 3 z Visual Studio 2010 i C# 4.0. Moja aplikacja działa poprawnie w IIS Express z Visual studion i po wdrożeniu na zdalnym serwerze IIS 7.5 produkcji.Błąd routingu w usługach IIS 7 i IIS Express generujących błędy HTTP 404

Po przełączeniu na pełny serwer IIS 7.5 w moim systemie programistycznym nagle zaczęły pojawiać się błędy HTTP 404 dla działań w dwóch kontrolerach. Pozostałe kontrolery działają poprawnie. Jest to uruchomiona aplikacja z Visual Studio lub bezpośrednio z IIS.

Nie widzę różnic w konfiguracji.

jednego ze sterowników, że wystawia to zachowanie jest:

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; } 
     } 

    } 
} 

to zachowuje się zgodnie z oczekiwaniami w IIS Express i rozłożonym IIS. Zgłasza błąd 404, gdy usługi IIS są połączone z projektem w celu debugowania.

Czy ktoś może rzucić jakiekolwiek światło na to, dlaczego generowane są błędy 404?

+0

Czy ustawiono tryb zarządzanego potoku do zintegrowania w puli aplikacji? – levelnis

+0

Dzięki, tak, zrobiliśmy to, a także sprawdzamy "zezwalaj na aplikacje 32-bitowe". –

+0

Czy możesz pokazać trasy dla tych kontrolerów? Czy są jakieś atrybuty akcji? Czy działają niestandardowe procedury obsługi? – levelnis

Odpowiedz

0

Pierwszą rzeczą, którą myślę jest o IIS configuration. Czy dla witryny skonfigurowanej w trybie zintegrowanym istnieje Application Pool?

można także spróbować dodać w global.asax w Application_OnError i sprawdzić w tam server.GetLastError

inna opcja powinna być użycie Glimpse zobaczyć co routing problem, który może mieć (jeśli jest to problem routing)

po tym, jeśli problem nie występuje, dodaj więcej szczegółów konfiguracji usług IIS: