5

Visual Studio 2010 および C# 4.0 で MVC 3 を使用しています。私のアプリケーションは、Visual studion の IIS Express で正しく動作し、リモートの運用 IIS 7.5 サーバーにデプロイされた場合にも動作します。

開発システムで完全な IIS 7.5 サーバーを使用するように切り替えたところ、2 つのコントローラーのアクションで突然 HTTP 404 エラーが発生し始めました。他のコントローラは正しく機能します。これは、アプリケーションを Visual Studio から実行するか、IIS から直接実行します。

構成の違いは見られません。

この動作を示すコントローラーの 1 つは次のとおりです。

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

    }
}

これは、IIS Express で期待どおりに動作し、IIS に展開されます。IIS がデバッグのためにプロジェクトに接続されると、404 エラーがスローされます。

404 エラーが生成される理由を誰か明らかにしてもらえますか?

4

1 に答える 1

0

私が最初に考えていることは、についてIIS configurationです。Application Pool統合モードで構成されたサイトのはありますか?

global.asaxanを追加してApplication_OnErrorそこにチェックインすることもできますserver.GetLastError

別のオプションは、Glimpse を使用して、どのようなルーティングの問題が発生する可能性があるかを確認することです (ルーティングの問題である場合)。

この後、問題が見つからない場合は、IIS 構成の詳細を投稿してください

于 2013-06-05T17:23:44.187 に答える