Веб-приложение C # вызывает ошибку 404 в Azure при развертывании с одного компьютера, но не с другого - PullRequest
0 голосов
/ 31 августа 2011

Мы создали веб-приложение C # на .Net Framework 4, используя MVC3 и Entity Framework 4.1. Приложение работает в Windows Azure и работает с базой данных SQL-Azure. При развертывании приложения мы сталкиваемся с несколько странной проблемой.

Используя точно такой же код, извлеченный из нашего svn, при развертывании приложения через Visual Studio на одном компьютере все работает нормально, однако выполнение точно такого же действия на другом компьютере приводит к тому, что приложение возвращает ошибку 404, независимо от того, какой контроллер / действие вы пытаетесь достичь. Приложение отлично работает в Cloud Emulator на обоих компьютерах. Мы также пытались упаковать приложение на ошибочный компьютер и развернуть его через веб-портал Azure, но это тоже не работает.

На обоих компьютерах установлена ​​64-разрядная версия Windows 7 с установленной Visual Studio 2010 Ultimate и Azure SDK.

Есть идеи, почему это может быть?

С уважением, Christofer

Edit: Используя RDP (спасибо за подсказку! @Ben), я думаю, мы немного приблизились к решению. На сервере выдается следующее исключение:

Exception information: 
        Exception type: InvalidOperationException 
        Exception message: The pre-application start initialization method Start on type System.Web.WebPages.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..
       at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)
       at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
       at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
       at System.Web.WebPages.PreApplicationStartCode.Start()

Странно то, что эта конкретная dll - Microsoft.Web.Infrastructure.dll включена в мою папку _bin_deployableAssemblies.

Ответы [ 2 ]

3 голосов
/ 31 августа 2011

Я нашел решение.По какой-то причине одному компьютеру не хватало некоторых необходимых ссылок (Microsoft.Web.Infrastructure, System.Web, как видно из ошибки в моем отредактированном вопросе. Я не знаю, как это может отличаться между двумя компьютерами, так как мыиспользовали точно такой же источник, но, видимо, это имело место.

Спасибо @Ben за ваш совет по удаленному рабочему столу, который очень помог.

Для тех, кто заинтересован в использовании удаленного рабочего стола в Azure.Например, прочитайте замечательную статью Microsoft на эту тему: http://msdn.microsoft.com/en-us/library/gg443832.aspx

2 голосов
/ 14 декабря 2011

У меня была эта ошибка в экземпляре веб-ролика Azure. Убедитесь, что вы добавили ссылку Microsoft.Web.Infrastructure в ваш проект.

Но наиболее важно просмотреть свойства для ссылки на инфраструктуру и установить Копировать локально = True .

Это обеспечит связывание отсутствующего ссылки с вашим решением при его развертывании.

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