SORU
16 Kasım 2009, PAZARTESİ


Aralıklı asp.net mvc istisna: “ABC XYZ denetleyicisi bulunamadı kamu eylem Bir yöntem.”

Zaman zaman bir istisna ASP.NET mvc eylem yöntem bulabilir mi? " diyerek alıyorum. İşte bu özel durum:

Ortak bir eylem yöntemi '' Dolgu kumanda üzerinde bulunan değil 'Yoğun, temiz.Form.Web.Denetleyicileri.'. ChrisController

Bu uygulama çoğu zaman çalıştığı için yönlendirme kurmak doğru olduğunu düşünüyorum. Burada kontrol eylem yöntemi.

[ActionName("Fill")]
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post), UserIdFilter, DTOFilter]
public ActionResult Fill(int userId, int subscriberId, DisplayMode? mode)
{
     //…
}

Rota:

routes.MapRoute(
        "SchoonForm",
        "Form/Fill/{subscriberId}",
        new { controller = "ChrisController", action = "Fill" },
        new { subscriberId = @"\d " }
    );

Ve işte yığını:

Sistem.Web.HttpException: Bir kamu eylem yöntemi 'Doldurmak' değil bulundu denetleyicisinde 'Yoğun, temiz.Form.Web.Denetleyicileri.'.ChrisController at Sistem.Web.Mvc.Denetleyicisi.(Dize HandleUnknownAction actionName) :\C dev\üçüncü taraf\MvcDev\src\SystemWebMvc\\Denetleyicisi, Mvc.cs:line 197 Sistem.Web.Mvc.Denetleyicisi.()ExecuteCore içinde :\C dev\üçüncü taraf\MvcDev\src\SystemWebMvc\\Denetleyicisi, Mvc.cs:line At 164 Sistem.Web.Mvc.ControllerBase.(RequestContext Yürütmek requestContext) C:\\üçüncü taraf\MvcDev\src\SystemWebMvc\dev ControllerBase Mvc\.cs:line Az 76 Sistem.Web.Mvc.ControllerBase.Sistem.Web.Mvc.İController.(RequestContext Yürütmek requestContext) C:\\üçüncü taraf\MvcDev\src\SystemWebMvc\dev ControllerBase Mvc\.cs:line At 87 Sistem.Web.Mvc.MvcHandler.(HttpContextBase ProcessRequest httpContext) C:\\üçüncü taraf\MvcDev\src\SystemWebMvc\dev MvcHandler Mvc\.cs:line 80 Sistem.Web.Mvc.MvcHandler.(HttpContext ProcessRequest httpContext) C:\\üçüncü taraf\MvcDev\src\SystemWebMvc\dev MvcHandler Mvc\.cs:line 68 Sistem.Web.Mvc.MvcHandler.Sistem.Web.Ihttphandler.(HttpContext ProcessRequest httpContext) C:\\üçüncü taraf\MvcDev\src\SystemWebMvc\dev MvcHandler Mvc\.cs:line At 104 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.İExecutionStep.()Execute at Sistem.Web.HttpApplication.(İExecutionStep ExecuteStep adım, Boolean& completedSynchronously)

İşte hepsi aynı şekilde çalışır filtrelerimi bir örnek:

public class UserIdFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        const string Key = "userId";

        if (filterContext.ActionParameters.ContainsKey(Key))
        {
            filterContext.ActionParameters[Key] = // get the user id from session or cookie
        }

        base.OnActionExecuting(filterContext);
    }
}

Teşekkürler Chris

CEVAP
5 Ocak 2010, Salı


Cevap bulduk. Bizim web kayıtlarına baktık. SEÇENEKLERİ, PROPFIND ve KAFA gibi garip bir http eylemler (fiiller yöntemleri/) aldığımızı gösterdi.

Bu tezler bazı özel durumlar nedeni gibi görünüyor. Bu aralıklı olduğunu açıklıyor.

Curl.exe aracı ile sorunu biz yeniden:

curl.exe -X OPTIONS http://localhost/v2.3.1.0/(S(boztz1aquhzurevtjwllzr45))/Form/Fill/273
curl.exe -X PROPFIND http://localhost/v2.3.1.0/(S(boztz1aquhzurevtjwllzr45))/Form/Fill/273
curl.exe -X HEAD http://localhost/v2.3.1.0/(S(boztz1aquhzurevtjwllzr45))/Form/Fill/273

Kullandığımız web düzeltmek için bir yetkilendirme bölümü eklemek oldu.config:

<authorization>
  <deny users="*" verbs="OPTIONS, PROPFIND, HEAD"/>
</authorization>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • HBO

    HBO

    17 Mayıs 2006
  • ravinderosahn

    ravinderosah

    20 Temmuz 2009