Domanda

Ho ereditato un sito web 1.1 .NET Framework che devo accogliere con IIS 7 in Windows Server 2008. Sto avendo qualche problema.

1. Installazione

Ho installato .NET Framework 1.1 in seguito queste istruzioni .

L'installazione crea automaticamente un nuovo pool di applicazioni "ASP.NET 1.1". Io uso questo.

2. Problemi

Quando lancio il sito web che vedo gli errori di runtime web.config:

Il tag contiene un valore non valido per l'attributo 'cultura'.

posso risolvere che uno e poi vedo:

I nodi figlio non sono ammessi.

Non voglio continuare a giocare a questo gioco Whack-a-mole. Qualcosa deve essere sbagliato.

3. Am I sicuro che questo è .NET 1.1?

I esaminare il pool di applicazioni creato automaticamente. Vedo che è 1.1.

Impostazioni avanzate ...

Automatico AppPool .NET 1.1 Avanzate

Impostazioni di base ...

Automatico AppPool .NET 1.1 di base

Questo non mi sembra giusto.

Mentre 1.1 è impostato, non è un'opzione nel menu di anticiparlo con selettori.

E perché nella scatola di base è solo "v1.1" e non" v1.1.4322" .NET Framework? Sarebbe più coerente.

4. Non posso creare altri .NET 1.1 App Pools

Non riesco a selezionare .NET Framework 1.1 per gli altri pool di applicazioni. Non è un'opzione nel menu a discesa selettori. Cosa c'è in questo?

App Pool manca .NET 1.1 opzione

E adesso?

  • Perché non è v1.1 un'opzione per tutti AppPools?
  • Come posso verificare la mia domanda è, infatti, utilizzando .NET Framework 1.1?
  • Perché potrei ottenere questi errori di runtime?
È stato utile?

Soluzione

Un modo rapido il fuoco per scoprire se l'applicazione è in esecuzione in 1.1 è quello di battere uno script Quicky che visualizza la versione dell'ambiente:

<%@ Page Language="C#" %>
<script runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
        Response.Write(System.Environment.Version.ToString());       
    }
</script>

Se stai ricevendo schermi gialli di morte poi vedrete il numero di versione nella parte inferiore della pagina: alt text

Ho il sospetto che la ragione non è possibile selezionare quadro v1.1 quando si aggiunge un nuovo pool di applicazioni o la modifica di uno esistente è che il programma di installazione 1.1 non sa come aggiungere qualche pezzo critico metadati o informazioni di configurazione per IIS.

.NET 2.0 fornito con il 2008 e il .NET 4.0 essere un prodotto in seguito è IIS7 friendly e quindi non è più probabile che una migliore integrazione IIS. Oppure, v1.1 non ha qualche pepita essenziale di metadati che InetMgr di IIS7 deve essere in grado di aggiungere questo ai suoi vari elenchi.

La ragione è possibile vedere v1.1 nella downlist goccia per l'ASP.NET 1.1 piscina Impostazioni di base il dialogo e non le altre piscine è perché è già stato impostato e così sarà solo essere incluso nel la lista. Ho sperimentato e ha cambiato questo sul appena creato ASP.NET 1.1 piscina e impostato a 2.0, salvato, quindi riaperto. Il risultato è che v1.1 non è più visibile.

Inoltre, il motivo si chiama v1.1 e non .NET Framework v1.1.4322 è perché il valore è stato prelevato dal l'attributo managedRuntimeVersion in piscina app config nella applicationHost.config. La ragione per cui le versioni 2.0 e 4.0 mostrano una descrizione completa è che probabilmente c'è qualche pezzo di IIS metadati amichevole con una stringa di risorse in fase di sguardo che non è presente per la 1.1.

Per impostare una piscina a uso v1.1 al momento della creazione è necessario impostare manualmente l'attributo managedRuntimeVersion utilizzando APPCMD.EXE:

appcmd add apppool /name:"NewPool"  /managedRuntimeVersion:"v1.1"

Questo è spiegato in fondo di questo articolo si è collegato al.

Per modificare una piscina esistente da utilizzare 1.1 è necessario utilizzare anche lo strumento da riga di comando APPCMD.EXE:

appcmd set apppool /apppool.name:"SomeOtherPool" /managedRuntimeVersion:"v1.1"

È interessante notare che è possibile impostare managedRuntimeVersion a qualsiasi vecchio valore:

alt text

Vorrei poter spiegare il motivo per cui il pool di applicazioni ASP.NET 1.1 magicamente viene creato o come il programma di installazione riesce a fare la cosa giusta con i mapping di gestore (in qualche modo tutti sono impostare la preConditions corretta, quindi o il programma di installazione è stato aggiornato o IIS ha qualche tipo di innesco per cercare 1.1 da installare e sistemare le cose).

Aggiornamento:

Ho contattato Bill Staples, l'autore di questo articolo:

Come installare ASP.NET 1.1 con IIS7 su Vista e Windows 2008

Gli ho chiesto di come il programma di installazione 1.1 o IIS7 riescono a fare la cosa giusta per quanto riguarda mapping di gestore, creando la piscina "ASP.NET 1.1" applicazione e così via. Questa fu la sua risposta:

"Se la memoria non serve, in Vista / Windows 2008 c'è stato uno shim di compatibilità delle applicazioni creato che rilevare l'installatore 1.1 e fare la mappatura applicazione creazione Piscina / gestore. Tuttavia, in Windows 7 / Windows Server 2008 R2, .NET Framework 1.1 non è più supportato e non mi sarei sorpreso se questo codice è stato tirato, anche se non so per certo ".

Quindi, mistero risolto.

Altri suggerimenti

ho incontrato gli stessi problemi mentre sta cercando di installare una vecchia .Net 1.1. su Win2k8 / IIS7. Alla fine ho scoperto che era più facile e veloce solo per urto di tutto per .Net 2.0. Suggerirei di fare lo stesso.

A meno che il codice sta facendo qualcosa di esotico il processo di porting può essere effettuato in giornata o meno per ragionevolmente grandi progetti.

Windows 2008 non ha .NET 1.1 installato. Puoi installare manualmente .NET 1.1 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top