Ошибка ASP.Net MVC - неверный формат IL - PullRequest
2 голосов
/ 19 октября 2008

Я просматриваю пример ASP.Net MVC «TaskList» и нажимаю кнопку «Выполнить в Visual Studio» (примерно через 14:00 видео) я получаю следующее сообщение об ошибке в браузер:

Server Error in '/' Application.

Bad IL format.
Description: An unhandled exception occurred during the execution of the 
current webrequest. Please review the stack trace for more information 
about the error andwhere it originated in the code.

Exception Details: System.BadImageFormatException: Bad IL format.

Source Error:

Line 12:         ' (2) URL with parameters
Line 13:         ' (3) Parameter defaults
Line 14:         routes.MapRoute( _
Line 15:             "Default", _
Line 16:             "{controller}/{action}/{id}", _


Source File: C:\Users\...\TaskList\TaskList\Global.asax.vb    Line: 14

Stack Trace:

[BadImageFormatException: Bad IL format.]
   VB$AnonymousType_0`3..ctor(T0 controller, T1 action, T2 id) +0
   TaskList.MvcApplication.RegisterRoutes(RouteCollection routes) in
    C:\Users\...\TaskList\TaskList\Global.asax.vb:14
   TaskList.MvcApplication.Application_Start() in
    C:\Users\...\TaskList\TaskList\Global.asax.vb:23


Version Information:
   Microsoft .NET Framework Version:2.0.50727.1434;
   ASP.NET Version:2.0.50727.1434 

Я дважды проверил введенный код, что мне не хватает?

Спасибо!

Версия:

  • ASP.Net MVC Beta (16 октября 2008 г.)
  • Visual Studion 2008 (9.0.21022.8 RTM)
  • Vista Ultimate SP1
  • IIS 7.0.6000.16386

Ответы [ 4 ]

2 голосов
/ 21 октября 2008

D'ой!

Нашел проблему, это в HomeController.vb:

Public Class HomeController
    Inherits System.Web.Mvc.Controller

    ' Display a list of tasks
    Function Index()
        Return View()
    End Function

    ' Dislpay a form for creating a new task
    Function Create() As ActionResult
        Return View()
    End Function

    ' Adding a new task to the database
    Function CreateNew(ByVal task As String) As ActionResult
        ' add the new task to the database
        Return RedirectToAction("Index")
    End Function

    ' Mark a task as complete
    Function Complete()
        ' database logic
        Return RedirectToAction("Index")
    End Function

End Class

в Function Complete() отсутствует тип возвращаемого значения, оно должно выглядеть следующим образом:

    ' Mark a task as complete
    Function Complete() As ActionResult
        ' database logic
        Return RedirectToAction("Index")
    End Function

Спасибо за предложения, я думаю, мне нужно в три раза проверить мой код в следующий раз!

(хотя было бы неплохо, если бы компилятор указывал на мой код, а не на Global.asax.vb, что заставило меня думать, что это проблема конфигурации)

1 голос
/ 19 октября 2008

Очень интересно. Не могли бы вы загрузить полный исходный код или скомпилированную DLL (возможно, придется извлечь ее из временной папки ASP.NET)? Я очень сомневаюсь, что компилятор VB должен генерировать недопустимый IL при любых обстоятельствах - так что вы могли столкнуться с ошибкой в ​​компиляторе.

0 голосов
/ 21 октября 2016

app.UseMvc(); может вызывать проблему *1001* без входов или дубликат в

True:

     app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

Ложная:

     app.UseMvc();
0 голосов
/ 19 октября 2008

Похоже, что-то связано с вашим анонимным типом в строке 17. Убедитесь, что ваш код выглядит как

routes.MapRoute( _
    "Default", _
    "{controller}/{action}/{id}", _
    New With { .controller = "Home", .action = "Index" }
)

Если вам нужна дополнительная помощь, опубликуйте ваши маршруты в Application_Start

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...