Am Instalat DotNetOpenAuth SDK-3.4.5.10201.vsix și nu pot't să-l de lucru. Acesta funcționează la nivel local (atunci când am alerga ca localhost), dar când am încerca să-l publice nu't de lucru.
IIS mesaj de eroare primesc este
Eroare Rezumat Eroare HTTP 500.22 - Eroare Internă de Server O ASP.NET setarea a fost detectat că nu se aplică în Integrate reușit conducte modul.
ȘI
Modulul ConfigurationValidationModule Notificare BeginRequest Handler StaticFile Cod de eroare 0x80070032
apoi, există unele sugestii cu privire la modul de a rezolva problema:
Lucruri pe care le puteți încerca:
- Migra de configurare pentru
sistemul.webServer/module de secțiune. Ai poate face manual sau cu ajutorul AppCmd exe de la linia de comandă - de exemplu,
%SystemRoot%\system32\inetsrv\appcmd exe migra de configurare "Default Web Site/". Folosind
AppCmd exe` pentru a migra aplicația va permite să lucreze în Modul integrat, și să continue să lucreze în modul Clasic și pe precedent versiuni ale IIS.
- Dacă sunteți sigur că este BINE să ignora această eroare, acesta poate fi dezactivat prin stabilirea
system.webServer/validation@validateIntegratedModeConfiguration
la false.
- Alternativ, porniți aplicația de la un modul Clasic de aplicare piscină de exemplu,
%SystemRoot%\system32\inetsrv\appcmd exe set app "Default Web Site/" /applicationPool:"Clasic .NET AppPool"
. Face acest lucru numai dacă sunteți în imposibilitatea de a migra cererea dumneavoastră. (Set "Default Web Site-ul" și "Clasic .NET AppPool" la cererea dvs., calea și aplicarea piscină numele)
Dar problema este că eu nu't au acces la ISS server ca nu eu sunt proprietarul. Există vreo modalitate de a rezolva acest lucru?
2nd opțiune este cea pe care o doriți.
În dvs. de web.config`, asigurați-vă că aceste chei exista:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
Adăugarea de `
Context:
Această problemă și confuzia din jur a început cu introducerea de ASP.NET 2.0 și IIS 7. IIS 6 a avut și continuă să aibă o singură conductă modul, și este echivalentul a ceea ce IIS 7+ apeluri "Clasic" modul. Cel de-al doilea, mai nou, și a recomandat conducte modul pentru toate aplicațiile care rulează pe IIS 7+ este numit "Integrat" modul.
Deci, ceea ce's diferența? Diferența cheie este cum ASP.NET interacționează cu IIS.
Modul clasic este limitată la o ASP.NET conducta, care nu poate interacționa cu IIS conducte. În esență, o cerere vine și dacă IIS 6/Clasic a fost spus, prin configurarea serverului, care ASP.NET se poate descurca atunci IIS mâinile de pe cererea de ASP.NET și se mută pe. Semnificația acestei pot fi obținute de la un exemplu. Dacă am fost de a autoriza accesul la imagine statică fișiere, nu aș fi capabil să o facă cu un ASP.NET modulul, deoarece IIS 6 conducte se va ocupa de aceste cereri în sine și ASP.NET niciodată nu veți vedea aceste cereri, deoarece acestea nu au fost predate.* Pe de altă parte, de autorizare care utilizatorii pot accesa o .Pagina ASPX, cum ar fi o cerere pentru Foo.aspx este banal, chiar și în IIS 6/Clasic deoarece IIS întotdeauna mâinile acestor cereri la ASP.NET conducte. În modul Clasic ASP.NET nu știu de ce nu a't s-a spus și există o mulțime care IIS 6/Clasic nu poate fi spus.
Modul integrat este recomandat pentru ASP.NET stivuitoare și module pot interacționa direct cu IIS conducte. Nu mai are IIS conducte pur și simplu mâna de pe cerere ASP.NET conducta, acum acesta vă permite ASP.NET cod pentru a cârlig direct în IIS conducte și toate cererile pe care a lovit-o. Acest lucru înseamnă că o ASP.NET modulul poate nu numai să respecte solicitările statice fișiere imagine, dar poate intercepta aceste cereri și să ia măsuri de a nega accesul, exploatarea cererea, etc.
Depășirea eroare:
Dacă se execută o aplicație mai veche care a fost inițial construit pentru IIS 6, poate te-ai mutat la un nou server, pot exista absolut nimic în neregulă cu rularea aplicației piscină de faptul că aplicarea în modul Clasic. Du-te nu't trebuie să te simți rău.
Apoi, din nou, poate ai dat cererea dumneavoastră un face-lift sau a fost consumati de-a lungul foarte bine, până când ați instalat un 3rd party de bibliotecă prin intermediul NuGet, manual, sau prin alte mijloace. În acest caz, este în întregime posibil httpHandlers " sau " httpModules
au fost adăugate la sistem.web. Rezultatul este eroarea pe care o vedem pentru că
validateIntegratedModeConfiguration` defaults "adevărat". Acum ai două opțiuni:
Scoateți httpHandlers " și " httpModules
elemente din sistem.web`. Există o serie de rezultate posibile de la aceasta:
httpHandlers " și " httpModules asta pachete NuGet păstrați adăugarea la sistem.web
, hei fă ceea ce ai nevoie.validateIntegratedModeConfiguration
a "false", dar cel puțin știi ce ai de're face și de ce contează.Buna spune:
*Desigur, există modalități de a obține tot felul de lucruri ciudate în ASP.NET conducta de IIS 6/Clasic prin incantații ca wildcard mappings, dacă vă place acest tip de lucru.
Dacă aveți în continuare nevoie pentru a utiliza Modul HTTP aveți nevoie pentru a configura (.NET framework 4.0), după cum urmează:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="MyModule" type="[Namespace].[Class], [assembly]"/>
</modules>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
În dvs. de web.config asigurați-vă că aceste chei exista:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
Precum și a verifica Asp.Net Impresonation = Dezactiva În IIS Site-ul Authetication
Aceasta a lucrat pentru mine:
Se pare ca ceva a mers prost atunci când inițial am creat site-ul. Urăsc soluții care sunt similare cu "Reporniți aparatul, apoi reinstalați windows", fără să știe ce a cauzat eroarea. Dar, aceasta a lucrat pentru mine. Rapid și simplu. Sper că vă ajută altcineva.
M-am întâlnit cu această problemă și inspirat de @Jeremy Cook's a raspuns, mi-am îngăduit să aflu ce naiba cauzate de IIS 7 modul Integrat să nu îmi placă web.config. Aici's my scenariu:
Am vrut să folosesc atributul de rutare într-un proiect care (din păcate) a trebuit să o utilizați .NET 4 și, prin urmare, nu ar putea folosi API Web 2.2 (care are nevoie .NET 4.5). Bine înțeles de pachete NuGet adăugat această secțiune sub <sistemul.web>
secțiunea:
<system.web>
<httpHandlers>
<add verb="*" path="routes.axd" type="AttributeRouting.Web.Logging.LogRoutesHandler, AttributeRouting.Web" />
</httpHandlers>
</system.web>
[Spun eu bine sensul, pentru că această parte este necesară pe versiuni mai vechi de IIS]
Scoaterea această secțiune m trecut HTTP 500.23!!
Rezumat: Am doua Jeremy's cuvinte că este important să înțelegem de ce lucrurile nu't de lucru, mai degrabă decât doar "mascare simptom". Chiar dacă aveți pentru a masca simptom, știi ceea ce faci (și de ce) :-)
Mi-a luat cateva ore sa rezolvat aceasta pentru că toate setările pe care am găsit-o aici despre aceasta eroare au fost aceleași, dar încă n't de lucru. Problema a fost c-am avut un folder în my web serviciul de la care dosarul ar trebui să fie trimis să Tresar dispozitiv, după convertirea acel folder la o aplicație cu Clasic.NetAppPool a început să lucreze.