2011-02-02 8 views
9

Z jakiegoś powodu Dostaję błąd próbując powrócićASP.NET MVC3 HttpStatusCodeResult StatusDescription - Określone argumentem było z zakresu prawidłowych wartości

new HttpStatusCodeResult(500, statusDescription);

W moim MVC3 aplikacji. To wysadza z błędem

Specified argument was out of the range of valid values. 
Parameter name: value 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. 
Parameter name: value 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[ArgumentOutOfRangeException: Specified argument was out of the range of valid values. 
Parameter name: value] 
    System.Web.HttpResponse.set_StatusDescription(String value) +4877926 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +785441 
    System.Web.Mvc.Controller.ExecuteCore() +159 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.372 

Jeśli mogę zmienić wynik powrotu new HttpStatusCodeResult(500, "statusDescription");

Wtedy działają dobrze, czy istnieje jakiś rodzaj ograniczenia długości od statusu opis?

Odpowiedz

22

Patrząc na źródło, or at the documentation, nie może mieć więcej niż 512 znaków.

+4

Powracając do tej odpowiedzi po latach, nadal mnie wkurza, jak głupi jest ten błąd. Nawet jeśli muszą to zrobić, fakt, że nie był to znaczący komunikat o błędzie i połączony z nim, nie zawodzi zbyt szybko, aby ustawić zbyt długą wartość. ಠ_ಠ –

+1

Po prostu musiałem przejść przez cały WebAPI i znaleźć miejsca, w których jest ustawiana ReasonPhrase, i upewnić się, że długość jest mniejsza niż 512. Po tygodniach ludzie zastanawiają się nad niejednoznacznymi komunikatami o błędach w dziennikach. – Beans