2013-04-12 4 views
2

У меня есть веб-приложение MVC4, работающее без каких-либо проблем на моем компьютере-разработчике, но после его развертывания на хост-сервер я получаю следующее исключение: @using(Html.BeginForm()).@using (Html.BeginForm()) возвращение Исправление формата mvc4

 

     String was not recognized as a valid Boolean. 

    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.FormatException: String was not recognized as a valid Boolean. 

    Source Error: 


    Line 4: 
    Line 5: 
    Line 6:  @using(Html.BeginForm(new { returnurl = ViewBag.Returnurl })) 
    Line 7:  { 
    Line 8:   @Html.AntiForgeryToken() 

    Source File: e:\Sites\familybook\Views\Login\Login.cshtml Line: 6 

    Stack Trace: 


    [FormatException: String was not recognized as a valid Boolean.] 
     System.Boolean.Parse(String value) +12636900 
     System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +12819466 
     System.Web.Mvc.ViewContext.ScopeGet(IDictionary`2 scope, String name, TValue defaultValue) +89 
     System.Web.Mvc.ScopeCache..ctor(IDictionary`2 scope) +48 
     System.Web.Mvc.ScopeCache.Get(IDictionary`2 scope, HttpContextBase httpContext) +282 
     System.Web.Mvc.ViewContext.GetClientValidationEnabled(IDictionary`2 scope, HttpContextBase httpContext) +9 
     System.Web.Mvc.Html.FormExtensions.FormHelper(HtmlHelper htmlHelper, String formAction, FormMethod method, IDictionary`2 htmlAttributes) +162 
     System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, Object routeValues) +192 
     ASP._Page_Views_Login_Login_cshtml.Execute() in e:\Sites\familybook\Views\Login\Login.cshtml:6 
     System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280 
     System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +125 
     System.Web.WebPages.StartPage.ExecutePageHierarchy() +143 
     System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +181 
     System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +380 
     System.Web.Mvc.c__DisplayClass1a.b__17() +33 
     System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +613 
     System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +263 
     System.Web.Mvc.Async.c__DisplayClass25.b__22(IAsyncResult asyncResult) +230 
     System.Web.Mvc.c__DisplayClass1d.b__18(IAsyncResult asyncResult) +28 
     System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +20 
     System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 
     System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +20 
     System.Web.Mvc.c__DisplayClass8.b__3(IAsyncResult asyncResult) +42 
     System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +20 
     System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469 
     System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375 

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

Хост-сервер является сервером Windows 2008 R2 64-разрядные с IIS 7.5 и последние обновления для операционной системы и .NET установлены 4 рамки на нем.

Самое смешное, что когда я развернулся до того, как не получил эту ошибку, пока не обновил сервер с обновлениями Windows. Еще одна вещь, которую я отметил, заключается в том, что если я задаю тип публикации для отладки, приложение работает без каких-либо проблем, в то время как это не относится к типу публикации публикации.

Я также попытался развернуть локальную папку на моей машине dev, а затем скопировать содержимое на главный сервер, но получил те же конечные результаты.

Edit:

@model FamilyBook.Models.Account.LoginUserModel 

@Scripts.Render("~/bundles/jqueryval") 

<section> 
    @using(Html.BeginForm(new { returnurl = ViewBag.Returnurl })) 
    { 
     @Html.AntiForgeryToken() 
     @Html.ValidationSummary(true) 

     <fieldset> 
      <legend>Login with local account</legend> 

      <div class="editor-label"> 
       @Html.LabelFor(model => model.Username) 
      </div> 
      <div class="editor-field"> 
       @Html.EditorFor(model => model.Username) 
       @Html.ValidationMessageFor(model => model.Username) 
      </div> 

      <div class="editor-label"> 
       @Html.LabelFor(model => model.Password) 
      </div> 
      <div class="editor-field"> 
       @Html.PasswordFor(model => model.Password) 
       @Html.ValidationMessageFor(model => model.Password) 
      </div> 

      <div class="editor-label"> 
       @Html.LabelFor(model => model.RememberMe) 
      </div> 
      <div class="editor-field"> 
       @Html.CheckBoxFor(model => model.RememberMe) 
      </div> 

      <p> 
       <input type="submit" value="Login" /> 
      </p> 

     </fieldset> 
    } 
</section> 
+1

Пробовал удалить все ваши куки-файлы и снова проверить, а также опубликовать код вашего вида? – Jorge

+0

Отправьте код своего вида –

+0

@Jorge Попробовали получить доступ к веб-сайту с хост-сервера на разных компьютерах и в итоге получили те же результаты. – Alyek

ответ

2

Основная причина проблемы заключается в том, что при трансформации web.conf проводили на AppSettings для пользовательских ключей, они переписали все ключи с одинаковым значением первого пользовательского ключа. Так что простое изменение на -> решило проблему. Это видно в трассировке стека, где приложение вылетает, когда эта функция в MVC System.Web.Mvc.ViewContext.GetClientValidationEnabled вызывается для проверки включенности clientSideValidation. Более подробную информацию можно найти в этой теме http://forums.asp.net/t/1924833.aspx/1?Format+exception+on+Html+BeginForm+String+was+not+recognized+as+a+valid+boolean

Смежные вопросы