2013-04-24 17 views
6

Sto lavorando su .Net Web API che sta funzionando bene sia nel debug che su localhost IIS ma quando lo pubblico sul server inizia a dare il seguente errore: -
"Messaggio": "Nessuna risorsa HTTP trovata che corrisponde all'URI della richiesta.Net Web API Non è stata trovata alcuna risorsa HTTP che corrisponda alla richiesta URI

Sul server, abbiamo la cartella dell'applicazione sotto il sito predefinito per questa API, ma funziona perfettamente nella cartella dell'applicazione nel sito predefinito di IIS locale in modo che

Ora ho provato a impostare il verbo corretto in handler come specificato nel seguente URL ma non ha funzionato:
HTTP 404 Page Not Found in Web Api hosted in IIS 7.5

anche io ho MVC4 installato sul server come suggerisce il seguente URL:
.NET Web Api - 404 - File or directory not found

Inoltre modulo WebDav, conduttore può dare errori così ho provato anche rimuoverlo ma sta dando lo stesso errore.

Qui è la sezione Web.config per il modulo, le impostazioni del gestore: -

<modules runAllManagedModulesForAllRequests="true" /> 
<validation validateIntegratedModeConfiguration="false" /> 
<handlers> 
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" 
     scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" 
     preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" 
     scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" 
     preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 

io non sto giocando con percorsi ovunque. Mi manca qualcosa riguardo le impostazioni/configurazione in web.config o server IIS?

+0

Sono tutti i metodi HTTP che forniscono questo errore, praticamente qualsiasi percorso o solo verbi specifici (ad es.PUT e DELETE)? Hai provato le modalità classiche/integrate (IIS)? –

+0

Sì, tutti i metodi HTTP stanno dando questo errore. Sto usando la modalità integrata in IIS 7.5. – user621504

+0

Hai risolto il problema? Sto avendo lo stesso adesso ... – Slauma

risposta

0

Passa a:

<validation validateIntegratedModeConfiguration="false" /> 
<modules> 
    <remove name="WebDAVModule"/> 
</modules> 
<handlers> 
    <remove name="WebDAV"/> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
1

Questo funziona per me:

<remove name="WebDAV"/> 

Non so il motivo per cui è installato sul server. Ma questo sembra avere interferenze con i gestori senza estensione

da IIS (http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-webdav-on-iis):

Microsoft ha rilasciato un nuovo modulo di estensione WebDAV che era completamente riscritto per Internet Information Services (IIS) 7 e, soprattutto, sulla di Windows Server® 2008. Questo nuovo modulo di estensione WebDAV incorpora molte nuove funzionalità che consentono agli autori Web di pubblicare meglio i contenuti e offre agli amministratori Web maggiore sicurezza e opzioni di configurazione . Microsoft ha rilasciato un aggiornamento al modulo di estensione WebDAV per Windows Server® 2008 che fornisce il supporto esclusivo e il blocco dei blocchi per impedire gli aggiornamenti persi a causa delle sovrascritture.

1

Un altro motivo potenziale di questo è se il

GlobalConfiguration.Configure(WebApiConfig.Register); 

è dopo

RouteConfig.RegisterRoutes(RouteTable.Routes); 

in global.asax.cs

ha bisogno di essere prima, altrimenti il ​​default RouteConfig instrada "mangia" la rotta WebAPI e tenta di mappare le richieste API a un controller chiamato API ...

Problemi correlati