2009-08-13 13 views
9

Abbiamo alcuni gestori HTTP specificati nel nostro web.config. Quando stavamo eseguendo questo sito tramite un progetto di sito Web, tutto funzionava bene. Ma per qualche motivo, dopo aver trasferito tutto questo su un progetto WAP e puntato al framework .NET 3.5, i gestori non funzionano quando apro il sito in IIS 7 sulla nostra scatola di sviluppo. Devo fare qualcosa di speciale in IIS7 oltre ai gestori personalizzati specificati che esistono già nel mio web.config?Gestori Http personalizzati IIS7 e ASP.NET

Quando guardo la sezione Mapping gestori in IIS 7 per il nostro sito, vedo i 3 gestori elencati con la nostra estensione personalizzata. Sembra che stia raccogliendo i nostri gestori specificati nel nostro web.config. Ma so che i gestori che stavano lavorando in un sito Web non-wap non stanno lavorando in questo progetto WAP e non so perché.

Per esempio, quando uno dei nostri gestori cerca di calciare in quando si fa riferimento ottengo:

Errore del server in '/' applicazione. Errore Parser Descrizione: si è verificato un errore durante l'analisi di una risorsa richiesta per soddisfare questa richiesta. Si prega di rivedere i seguenti dettagli specifici di errore di analisi e modificare il file sorgente in modo appropriato.

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 

Inoltre, quando provo a fare clic su un collegamento ipertestuale sul nostro sito che ha .customextension su di esso il gestore non sembra raccoglierlo.

Così, quando clicco sul collegamento ipertestuale, ottengo:

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 

(ho sostituito il testo vero e proprio con 'nomeacaso' e la nostra ragione sociale con 'sss') nel caso di cui sopra per la privacy.

Se guardo nella sezione Http Handlers in IIS7, vedo che * .prod è registrato. Ed ecco come l'abbiamo istituito nel nostro web.config sotto la sezione personalizzata:

<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

Prego elaborare. "Non funziona" non mi dice molto. –

+0

ok, ho aggiunto molti più dettagli. – PositiveGuy

risposta

0

Quello che devi fare è creare il tuo codice.

È necessario copiare tutto il codice C# in un file .ashx.cs. In effetti, ti consiglio di creare un nuovo .ashx e copiare il codice C# nel suo file .ashx.cs.

I siti Web vengono creati in modo dinamico. I progetti di applicazioni Web, come ogni altro tipo di progetto simile in Visual Studio, devono avere il codice nei file di origine e avere il codice compilato in un assembly.

+0

l'Ashx non dispone di un codice dietro. Io vedo. Sì, perché era in un progetto di sito web. Gotcha – PositiveGuy

+0

Ce l'hai, ma dì "sito web" - non sono progetti. –

+0

beh, un po 'lo sono. – PositiveGuy

25

Per le applicazioni ASP.NET in esecuzione su IIS7, gestori HTTP dovrebbe essere mappati nella sezione <system.webServer> del web.config. In IIS6, sono stati mappati nella sezione <system.web>.

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

Sì, abbiamo la nostra mappato server web perché questo sito è in esecuzione già sul nostro server prod in IIS7 – PositiveGuy

Problemi correlati