2015-05-29 11 views
11

Ho seguito il instructions per impostare e ospitare il mio feed NuGet. Sto eseguendo l'applicazione Web su una casella Windows 2012 (IIS 8.5).NuGet.Server restituisce errore 404

ho costruire e gestire la soluzione e ottenere la pagina default.aspx ...

che dice "Si esegue NuGet.Server v2.8.60318.667" e "Clicca qui per visualizzare i pacchetti".

Quando faccio clic sul link "qui" ottengo un "404 - File o directory non trovato". errore.

  • posso eseguire con successo un comando nuget.exe spinta per mettere i pacchetti sul server Nuget; tuttavia ottengo un errore 404 quando si tenta di eseguire il comando di lista nugget.exe .
  • Ho riavviato IIS e il server
  • Ho ricreato l'applicazione Web NuGet.Server da zero.
  • Ho provato a ospitare NuGet.Server su una casella di Windows 7 senza successo .
  • Il Web.Config ha la seguente voce

    <modules runAllManagedModulesForAllRequests="true"> 
    
  • Il web.config ha anche un ingresso per registrare l'estensione .nupkg come mimeType = "application/zip"

Si sembra che il routing dell'URL non funzioni, ma non riesco a capire cosa sto facendo male. Qualcosa sta impedendo al feed di odata di funzionare.

So che ci sono ottime implementazioni di terze parti del server NuGet, ma mi piacerebbe davvero avere solo quella libera funzionante e sembra che dovrebbe essere così facile. Eventuali pensieri o suggerimenti per la risoluzione dei problemi sarebbero apprezzati.

risposta

1

Ho una risposta non menzionata in nessuno dei post che ho trovato. Se si assegna un nome al progetto Nuget.Server, anche se la pubblicazione funzionerà in IIS, ninject non riuscirà a impostare la route della lista dei pacchetti perché proverà a caricare la DLL errata e ad eseguire l'errore.

Qui ci sono alcune altre possibili risposte:

Possible Answers 1

Possible Answers 2

0

ho avuto questo problema oggi. In realtà quello che ho bisogno di fare questo in Global.asax:

void Application_Start(object sender, EventArgs e) 
{ 
    NuGetRoutes.Start(); 
} 
4

Se è il nome si proietta Nuget.Server, dal momento che la DLL generato sarà Nuget.Server.dll non funzionerà perché Nuget.Server.dll è la dll reale per il server. Rinomina il nome del tuo Assembly in qualcos'altro.

1

Il file NuGet.config in% APPDATA% \ NuGet o $ (SolutionDir) .nuget potrebbe riferirsi a URL "di origine attiva" imprevisti. Ad esempio, il nuget.exe portato dall'installazione dell'agente di creazione TFS potrebbe essere a conoscenza del protocollo NuGet v2 solo mentre gli URL fanno riferimento al protocollo v3. Oppure l'URL del server NuGet personalizzato potrebbe mancare da NuGet.config.

1

Stavo riscontrando un problema simile e ho trovato una soluzione! Ho creato un server privato di nuget seguendo le istruzioni per creare un progetto ASP.NET vuoto (sono su VS2015) e quindi installare nuget.server (attualmente v2.11.3.0). Sono stato in grado di eseguire e visualizzare la pagina Web, tranne che non ero in grado di utilizzare "push nuget.exe" per caricare i pacchetti. Ho ottenuto il temuto errore 404 non trovato.

Alla fine ho clonato il codice sorgente nuget.server su github e l'ho eseguito direttamente, cosa che ha funzionato bene !? Ho scoperto che il mio web.config non era corretto. Per me la linea di chiave era

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,PUT,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> 

nella sezione

<system.webServer>/<handlers> 

.

Suggerisco a chiunque abbia problemi di andare su github e confrontare i file web.config.

BTW: L'installazione nuget.server sostituisce la web.config. Questo potrebbe non aver funzionato correttamente per me.

0

Ho notato che si ottiene l'errore 404 quando si tenta di caricare pacchetti di nuget abbastanza grandi. Ho alzato il maxAllowedContentLength e mi ha aiutato.

<system.webServer> 
    <security> 
    <requestFiltering> 
     <requestLimits maxAllowedContentLength="31457280"/> 
    </requestFiltering> 
    </security> 
</system.webServer> 
3

Se si crea un nuovo vuoto progetto VB si riceverà anche un 404 (in pacchetti e la navigazione tramite NuGet Manager).

Sembra che tu debba creare il progetto come C# e funziona come pubblicizzato!

Eppure il codice sorgente appare identico :(

0

Ho avuto questo problema con un progetto Visual Studio 2017 Web pulito.

Ricreando da Visual Studio 2015 e il targeting NET 4.6.1 ha risolto