Domanda

Recentemente ho scaricato la beta 2 di VS2010 e iniziato a giocare con ASP.NET MVC2. Lo sviluppo iniziale è stato fatto con Casini, ma ora ho voluto eseguire l'applicazione da IIS 7.5 (Sono in esecuzione Windows 7). Ho installato la compatibilità IIS6 metabase e corro VS2010 come amministratore in modo da poter utilizzare il pulsante "Crea directory virtuale" dalla scheda "Web" delle impostazioni di progetto. Questo ha creato la voce di applicazione web in IIS, ma non funziona.

Quando vado alla pagina principale ( http: // localhost / MyMvcApp / ) ottengo un errore HTTP 403 . Quando vado direttamente a una delle pagine secondarie ( http: // localhost / MyMvcApp / Home / ) I ottenere un HTTP 404.

Quindi credo che per qualche motivo il percorso URL non funziona. Ho già aggiunto UrlRouting come un modulo e un gestore per il web.config. Nelle mie ricerche questa è offerto come una soluzione per alcuni problemi similair. Ma per me questo ancora non funziona.

La parte interessante del mio web.config looke in questo modo:

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
  </compilation>
  <authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" />
  </authentication>
  <membership>
    <providers>
      <clear />
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
    </providers>
  </membership>
  <profile>
    <providers>
      <clear />
      <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
    </providers>
  </profile>
  <roleManager enabled="false">
    <providers>
      <clear />
      <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
      <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
    </providers>
  </roleManager>
  <pages>
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
  <httpHandlers>
    <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler" />
  </httpHandlers>
  <customErrors mode="Off" />
</system.web>
<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules runAllManagedModulesForAllRequests="true" >
    <remove name="UrlRoutingModule"/>
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
  <handlers>
    <remove name="MvcHttpHandler" />
    <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler" />
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </handlers>
  <httpErrors errorMode="Detailed" />
</system.webServer>
È stato utile?

Soluzione 2

Dopo più controllato e provato ho notato in "Turn funzionalità di Windows on o off" finestra di dialogo che "Errori HTTP" e "HTTP reindirizzamento" mancavano. Questo è strano perché per quanto posso ricordare questo è stato installato automaticamente dal programma di installazione di Microsoft Web Platform. In ogni caso "reindirizzamento HTTP" sembrava una caratteristica della necessità di avere quando si lavora con MVC. Così, dopo ho installato tutto sembrava funzionare perfettamente.

Altri suggerimenti

Ho appena avuto questo problema, e purtroppo la correzione qui non ha funzionato per me.

Che cosa ha fatto il lavoro è stato eseguito in questo modo:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

in una finestra di comando ... funziona come un sogno ora!

(Quindi, è ASP.Net non è installato in IIS per impostazione predefinita quando si installa VS2010?)

Aggiungi questo al vostro file web.config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <!-- rest of config -->
</system.webServer>

Si tratta di un dolore a fare questa operazione manualmente. Ma sicuramente fattibile ! Sono riuscito e ha riassunto in questa guida passo passo su l'aggiunta di un progetto MVC 2 ad una soluzione moduli web exisitng qui. Spero che questo aiuti ... mi c'è voluto molto tempo per lavorare anche se tutte le impostazioni di configurazione e non ci sembra essere così poche risorse sul tema.

Si prega di notare che è necessario eseguire aspnet_regiis.exe ir come amministratore, sembra ovvio, ma quando siete stanchi di provare cose senza successo di risolvere questo, si potrebbe passarlo.

Solo per dire un grande grazie a tutte le risposte, dopo molte ore cercando cose diverse, finalmente ho potuto ottenere il mio lavoro MVC 2 applicazione in IIS.

ciò che ha contribuito a me sta usando gasdotto classica per AppPool anziché integrato: alt text

stavo costruendo un'applicazione MVC2 sul mio portatile Windows 7, utilizzando .NET Beta 2 e VS 2010 Beta 2. Quando ho installato l'intero ambiente di sviluppo su Windows Server 2008, tra cui VS, costruito la soluzione e corse, l'instradamento ha funzionato bene.

Il passo successivo è stato quello di creare un server di produzione su Windows Server 2008, su cui ho schierato .NET 4.0 beta, ma nessuna delle altre cose che è venuto con la VS 2010 beta download. Con questa configurazione il percorso non ha mai funzionato fino a quando è possibile abilitare HTTP reindirizzamento come indicato da Jeroen.

Spero che questo aiuti qualcuno che potrebbe essere nella stessa barca.

Volevo solo sottolineare che ho avuto lo stesso problema con 403 e 404, ma aggiungendo il system.webServer e tutti gli elementi dal nodo system.web/pages/namespaces risolto per me.

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