2013-11-11 2 views
2

У меня есть приложение asp.net mvc4. У меня есть проблема в файле Global.asaxисправление синтаксической ошибки в global.asax

demo

в Global.asax.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Http; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace integration_finale 
{ 

    public class MvcApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 

      WebApiConfig.Register(GlobalConfiguration.Configuration); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
     } 
    } 
} 

, когда я запустить приложение я получил эту ошибку:

demo2

переведен на английский

Server Error in '/' Application. Analysis error Description: An error occurred during the analysis of a requirement to meet this demand resource. Please see below the details of the error analysis in question and modify your source file appropriately.

Message Parser Error: Could not load type 'integration_finale.MvcApplication'.

Source Error:

Line 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "integration_finale.MvcApplication" Language = "C#"%>

Source File:/global.asax Line: 1

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

Так в чем же проблема и как я могу это исправить?

+3

Вы пытались поставить точку останова в свой метод Application_Start()? – Liam

+0

Да, но я не дошел до точки останова !!! –

+2

Попробуйте очистить и перестроить все решение. – DGibbs

ответ

4

Эта ошибка возникает, когда IIS Express не загружает библиотеку, содержащую запрошенный класс, в данном случае integration_finale.MvcApplication. Тот факт, что он не может найти библиотеку, может иметь много причин, here, here и here несколько названы.

IIS Express добавляет к этому новый путаница. Первое приложение, которое вы регистрируете в IIS Express для данного порта, получает свой путь к проекту. Когда вы переименуете проект или запустите новый проект, настроенный с ранее зарегистрированным портом, IIS Express с радостью начнет обслуживать из неправильного каталога. Это особенно забавно, когда у вас есть идентичные проекты (скажем, DEV и филиал ACC, поэтому библиотека, содержащая веб-приложение с тем же именем , может быть найдена), поскольку вещи, которые вы видите в браузере, не то, что вы ожидайте их.

Откройте ваш My Documents\IISExpress\config\appplicationhost.config и выполните поиск порта, настроенного для веб-приложения, дающего ошибку. Вы увидите раздел как это:

<site name="YourWebsiteName" id="1"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\Source\WebsiteProject" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:1234:localhost" /> 
    </bindings> 
</site> 

Проверьте раздел приложений и проверить physicalPath указывает на текущий проект. Каждый запрос на этот порт обслуживается из этого physicalPath, если встречается virtualDirectory (он находится в этом и большинстве случаев, так как существует только один виртуальный каталог, начиная с корня сайта).

Если вы переименуете каталог проекта или имеете два проекта с использованием одного и того же порта, материал перерывается с помощью IIS Express. Возможные исправления:

  • Просто измените порт своего веб-проекта, используемый для IIS Express в окне свойств VS. Это создаст новый сайт IIS Express.
  • Нажмите кнопку «Создать виртуальный каталог» в конфигурации вашего проекта. Обычно это работает после переименования, но не после копирования.
  • Изменить конфигурацию IIS Express (конечно, сделать резервную копию). Вы можете переименовать сайт, если необходимо, и исправить physicalPath из virtualDirectory.
Смежные вопросы