Не може да накара уеб сървъра да хоства приложението ASP.NET 4

Околна среда:
- Windows Server Standard 2008 SP2 (не R2) x64
- IIS7 с медийни услуги 4 за Microsoft SmoothStreaming
- MediaWiki и MySQL

SmoothStreaming работи чудесно, MediaWiki работи чудесно... Други различни Php приложения работят чудесно.

Наскоро разработих приложение с помощта на Visual Studio 2010. Когато отстранявам грешки в приложението във Visual Studio, то се компилира добре, без грешки. Когато преместя компилираното приложение на уеб сървъра, то ми дава грешки, въпреки че наборът от приложения е конфигуриран за .Net 4.0. Явно пропускам нещо и цял ден не намирам отговори.

Опитах се да използвам инструмента aspnet_regiis.exe, за да регистрирам ASP.NET 4 с IIS, но такъв файл не съществува в %windir%\Microsoft.NET\Framework64\v4.0.30319 или %windir%\Microsoft.NET\Framework\v4.0.30319 .

Не го разбирам, в момента съм на машина с Windows 7 Pro x64 и имам необходимите файлове aspnet_isapi.dll и на двете места... но не и на моята кутия с Windows Server 2008, въпреки че използвах абсолютно същото. Инсталатор на Net Framework 4...

Също така се опитах да деинсталирам .Net Framework 4 и да преинсталирам, така че автоматично да се регистрира в IIS7, но манипулаторите на asapi никога не се показват и инструментът за регистрация не съществува в тези директории.

Какво ми липсва тук?

Конкретната грешка (въпреки че моето изследване на конкретната грешка не даде насока) е „Манипулаторът „PageHandlerFactory-Integrated“ има лош модул „ManagedPipelineHandler“ в своя списък с модули“ Единственият запис на модули, който имам под web.config, е <modules runAllManagedModulesForAllRequests="true"/>


person Lucretius    schedule 04.08.2011    source източник
comment
Вижте: stackoverflow.com/questions/532203/asp-net-in-iis7   -  person Frazell Thomas    schedule 04.08.2011


Отговори (2)


Въпросът ви е малко неясен (поради липсата на подробности в грешките, които получавате... напр. получавате ли грешка, когато навигирате до страницата? Това 404 ли е? и т.н.), но ще пробвам .

Първата мисъл, която идва на ум, е дали уеб приложението, което изпълнявате, е MVC приложение? Ако е така, вашият уеб сървър може да не е настроен да обработва маршрути.

Ако това е MVC приложение и получите 404, опитайте да добавите следното към вашия web.config:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
<system.webServer>

Това ще гарантира, че ASP.Net се използва за обработка на всички заявки на уеб сървъра за този сайт, ако приемем, че сте посочили System.Web.Routing във вашето приложение. Ако се окаже, че това решава проблема, може би си струва да потърсите по-мащабируемо решение.

person davecoulter    schedule 04.08.2011
comment
Имам този запис под system.webserver и върнатата грешка в момента е Handler „PageHandlerFactory-Integrated“ има лош модул „ManagedPipelineHandler“ в своя списък с модули Грешка 500.21. Не използвам никакви звънци и свирки във Visual Studio 2010, нито MVC, нито AjaxToolKit, просто плосък VS2010. Също така, при двойна проверка нямам System.Web.Routing препратка... трябва ли? - person Lucretius; 04.08.2011
comment
Ако използвате маршрутизиране, ще трябва да го посочите. - person davecoulter; 04.08.2011
comment
Съжалявам, нямам представа какво означава това. Какво би представлявало използването на маршрутизиране? - person Lucretius; 04.08.2011

Оказа се, че съм гигантски нуб.

Важно е да сте сигурни, че имате инсталирана правилната версия на .NET Framework 4.0. Имате нужда от версията "Клиент". Ако инсталирате "ServerCore", ще се сблъскате със същия проблем, който имах аз, въпреки че интуитивно бихте помислили, че имате нужда от "ServerCore", за да стартирате уеб "сървър", но това не е така.

person Lucretius    schedule 05.10.2011