2009-08-13 10 views
9

Wir haben einige HTTP-Handler in unserer web.config angegeben. Als wir diese Website über ein Website-Projekt betrieben, funktionierte alles einwandfrei. Aber aus irgendeinem Grund funktionieren die Handler nicht, wenn ich die Site in IIS 7 auf unserer Entwicklungsumgebung aufruft, nachdem wir dies auf ein WAP-Projekt übertragen und auf das .NET 3.5-Framework verwiesen haben. Muss ich in IIS7 etwas anderes tun als die angegebenen benutzerdefinierten Handler, die bereits in meiner web.config vorhanden sind?Benutzerdefinierte HTTP-Handler IIS7 und ASP.NET

Wenn ich den Handler Mappings Abschnitt in IIS 7 für unsere Website anschaue, sehe ich die 3 Handler mit unserer benutzerdefinierten Erweiterung aufgelistet. Es sieht so aus, als ob es unsere in unserer web.config angegebenen Handler aufnimmt. Aber ich weiß, dass die Handler, die auf einer Non-Wap-Website arbeiteten, nicht in diesem WAP-Projekt arbeiten und ich weiß nicht warum.

Zum Beispiel, wenn einer unserer Handler versucht, in zu treten, wenn referenzierte ich:

Serverfehler in der Anwendung ‚/‘. Parser-Fehler Beschreibung: Beim Parsen einer Ressource, die für die Bearbeitung dieser Anforderung erforderlich ist, ist ein Fehler aufgetreten. Bitte überprüfen Sie die folgenden speziellen Syntaxfehlerdetails und ändern Sie Ihre Quelldatei entsprechend.

Parser Error Message: Could not create type 'jaxHandler'. 

Source Error: 

Line 1: 
Line 2: 
Line 3: using System; 


Source File: /jaxHandler.ashx Line: 1 

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

weiterhin, wenn ich versuche, auf einen Hyperlink auf unserer Website zu klicken, die .customextension darauf hat der Handler scheint nicht, um ihn abzuholen. So

, wenn ich auf dem Link klicken, erhalte ich:

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Detailed Error InformationModule IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Requested URL http://sss:80/somename.prod 
Physical Path C:\www\sss\somename.prod 
Logon Method Anonymous 
Logon User Anonymous 

(Ich habe den echten Text mit ‚somename‘ ersetzt und unsere Firmennamen mit ‚sss‘) im Fall oben für die Privatsphäre.

Wenn ich im Abschnitt Http Handlers in IIS7 schaue, sehe ich, dass * .prod registriert ist. Und hier ist, wie wir es in unserer web.config unter dem benutzerdefinierten Abschnitt ein:

<add name="sss" path="*.prod" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="bitness32"/> 
+0

Bitte erläutern. "Es funktioniert nicht" sagt mir nicht viel. –

+0

ok, ich habe viel mehr Details hinzugefügt. – PositiveGuy

Antwort

0

Was Sie tun müssen, ist Ihren Code zu bauen.

Sie müssen den gesamten C# -Code in eine .ashx.cs-Datei kopieren. Ich empfehle Ihnen, eine neue .ash-Datei zu erstellen und den C# -Code in die Datei .ashx.cs zu kopieren.

Websites werden dynamisch erstellt. Webanwendungsprojekte müssen wie jeder andere ähnliche Projekttyp in Visual Studio Code in Quelldateien enthalten und diesen Code in eine Assembly integrieren.

+0

ausgeführt wird. Die .ashx hat keinen Code hinter sich. Aha. Ja, weil es in einem Website-Projekt war. Gotcha – PositiveGuy

+0

Sie haben es, aber sagen "Website" - sie sind keine Projekte. –

+0

gut, eine Art von ihnen sind. – PositiveGuy

25

für ASP.NET-Anwendungen auf IIS7 ausgeführt wird, soll Httphandlers im <system.webServer> Abschnitt Ihrer web.config abgebildet werden. In IIS6 wurden sie im Abschnitt <system.web> zugeordnet.

<system.webServer> 
    <handlers> 
     <add name="HandlerName" 
      path="HandlerPath" verb="*" type="Handler.Type" 
      resourceType="Unspecified" /> 
    </handlers> 
</system.webServer> 
+1

ja, wir haben uns auf webServer gemappt, weil diese Seite bereits auf unserem Prod-Server in IIS7 – PositiveGuy

Verwandte Themen