2014-12-05 7 views
35

Desidero ospitare il mio progetto ASP.NET 5 che utilizza MVC 6 e Entity Framework 7 su istanza micro gratuita di Amazon. Non riesco a trovare alcun manuale passo-passo su come ospitare i progetti ASP.NET 5 su IIS, tutti i materiali menzionano solo che questo è possibile ma senza alcuna guida. Fondamentalmente, sto distribuendo nella cartella locale e quindi copiando sul sito appena creato, ma non funziona nulla. Purtroppo, non posso usare Azure in quanto ha solo una prova gratuita di un mese, non un anno.Hosting progetto ASP.NET 5 su IIS

risposta

23

sto usando Visual Studio 2015 Preview per creare ASP.NET 5 progetti. Non penso che sia difficile da implementare su IIS ora. Pubblicare prima il sito Web pubblicandolo come file system nell'anteprima di VS 2015, quindi copiare la cartella pubblicata sul server, creare un'applicazione in IIS e impostare la cartella dell'applicazione nella cartella wwwroot (anziché nella cartella root), tutto qui. Attenzione, controlla se "Microsoft.AspNet.Server.IIS" esiste nel tuo sito web project.json prima di pubblicarlo.

Modifica: ci dovrebbe essere un web.config nella cartella wwwroot, il contenuto del web.config può essere come questo (con l'opzione di precompilazione durante la pubblicazione):

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <appSettings> 
    <add key="kpm-package-path" value="..\approot\packages" /> 
    <add key="bootstrapper-version" value="1.0.0-beta1" /> 
    <add key="kre-package-path" value="..\approot\packages" /> 
    <add key="kre-version" value="1.0.0-beta1" /> 
    <add key="kre-clr" value="CoreCLR" /> 
    <add key="kre-app-base" value="..\approot\packages\Rvc.PopUpSite\1.0.0\root" /> 
    </appSettings> 
</configuration> 

o come questo (senza opzione di precompilazione):

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <appSettings> 
    <add key="kpm-package-path" value="..\approot\packages" /> 
    <add key="bootstrapper-version" value="1.0.0-beta1" /> 
    <add key="kre-package-path" value="..\approot\packages" /> 
    <add key="kre-version" value="1.0.0-beta1" /> 
    <add key="kre-clr" value="CoreCLR" /> 
    <add key="kre-app-base" value="..\approot\src\Rvc.PopUpSite" /> 
    </appSettings> 
</configuration> 

Si prega di notare il valore di kre-app-base. Occasionalmente il suo valore è una stringa vuota dopo la pubblicazione in Visual Studio.

+0

Ciao Ricky, ho appena provato come hai detto cartella pubblicata su Amazon, quindi ho il mio sito in C: \ Inetpub \ wwwroot \ Blog su Amazon, creato un nuovo sito in IIS, indirizzato a C: \ Inetpub \ wwwroot \ Blog \ wwwroot, ma è n lavoro. Ho "Microsoft.AspNet.Server.IIS" in roject json. Qualche idea su cosa sto facendo male? –

+0

@Sergey ha appena modificato il mio post. Non so se puoi ricevere la notifica della mia modifica, quindi ho aggiunto questo commento. Sarebbe anche molto utile se potessi pubblicare il messaggio di errore che hai, se esiste. – Ricky

+0

Ciao Ricky, grazie, ora funziona. Di fronte a un altro problema, dopo aver cambiato i pacchetti in project.json da * beta-1 a * rc-1, durante la pubblicazione su disco locale sono pubblicate entrambe le versioni, sai come rimuovere le vecchie dipendenze? –

1

È possibile utilizzare il metodo di pubblicazione File system. Attenersi alla seguente procedura:
1/generate in una cartella con Visual Studio i file dll
2/Creare un sito web in Gestione IIS e dare nel percorso della cartella

+0

L'ho già fatto, ma il sito non si apre ancora, vedere il mio commento al messaggio precedente di Nikolay –

3

1. Per prima cosa è necessario pubblicare il sito per il file system:

visual studio 2015 publish window

2. Creare una nuova applicazione in IIS:

Add website IIS manager button Add website IIS manager window

3. Decomprimere il file che avete creato nel passaggio 1 nella directory sito dal punto 2. La cartella dovrebbe essere simile:

enter image description here

4. Si può anche necessario installare DNVM (precedentemente KVM) e DNX Runtime Environment (precedentemente KRE):

Install the DNVM - dotnet version Manager (KVM)

Install the DNX runtime environment inside DNVM (KRE)

+0

Hi Nikolay, i primi 3 passaggi già eseguiti, quindi ho appena installato KVM e non sono riuscito a eseguire "kvm upgrade" comando fino al percorso modificato in C: \ Users \ Administrator \ .kre \ bin> Dopo di ciò sono stato in grado di eseguire "kvm upgrade comand" ma lo stesso risultato, quando sto provando ad aprire la pagina web Sto ricevendo il seguente errore: HTTP Errore 403.14 - Proibito Il server Web è configurato per non elencare il contenuto di questa directory –

1

ho trovato quello che ho perso, ho bisogno di cambiare url al mio DNS pubblico nel file di projct.json:

"web": "Microsoft.AspNet.Hosting --server Microsoft .AspNet.Server.WebListener --server.urls http://ec2-54-68-21-4.us-west-2.compute.amazonaws.com/

poi, dopo il caricamento del sito di Amazon ho bisogno di correre web.cmd nella root del sito

+2

Sembra che sarà un lavoro infernale per semplificare la distribuzione ... – Kralizek

3

Ho avuto lo stesso problema con DNX Beta 4.

Se qualcuno ha lo stesso problema:

Bisogna indirizzare x64 quadro (Target DNX Version) quando si pubblica il sito web in Visual Studio 2015 RC e scrivi "XXX \ wwwroot" in Physical Path nella configurazione del tuo sito IIS.

+0

Questo ha funzionato per me. –

+0

Qualcuno sa se questo può essere impostato in un file JSON da qualche parte? –