2012-02-14 27 views
22

Tengo varias reglas de reescritura para muchas cosas que hice en IIS7, como eliminar barras diagonales, URL canónicas, letras minúsculas, etc. IIS alteró mi web.config, y todo funciona bien en el sitio web, como debería. Pero en Visual Studio web.config, la instrucción de apertura <rewrite> está subrayada en azul, y en la parte inferior de VS, dice que el elemento 'system.webServer' tiene un elemento secundario no válido 'rewrite'. Pero así es como lo hizo IIS ... No lo hice manualmente. ¿Debería preocuparme por este error de VS, o debería dejarlo como está, ya que funciona cómo debería funcionar?El elemento 'system.webServer' tiene un elemento secundario no válido 'rewrite'. ¿Debo arreglar esto y cómo?

He aquí un ejemplo de mi web.config:

<system.webServer> 
    <rewrite>   <-------------------- this is underlined in squiggly blue 
     <rules> 
      <rule name="RemoveASPX" enabled="true" stopProcessing="true"> 
       <match url="(.*)\.aspx" /> 
       <action type="Redirect" url="{R:1}" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{URL}" pattern="(.*)/default.aspx" negate="true" /> 
        <add input="{URL}" pattern="(.*)/admin/*" negate="true" /> 
        <add input="{URL}" pattern="(.*)/desktopmodules/*" negate="true" /> 
       </conditions> 
      </rule> 

Hay unos 5 o 6 otras normas, a continuación, un cierre </system.webServer> al final.

+1

posible duplicado de [El elemento> system.webServer' tiene hijo inválido> elemento 'reescritura'] (http://stackoverflow.com/questions/5309059/the-element- system-webserver-has-invalid-child-element-rewrite) – AakashM

+1

(hay otro candidato de dupe vinculado a eso) – AakashM

+0

Aakash, no veo el sistema. Webserver en cualquier otro lugar en mi archivo web.config. ¿Debería estar buscando algo más? –

Respuesta

21

El esquema actualizado aquí solucionó esto por mí.

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

Asegúrese de cambiar el guión de VS2010:

Ruslany respondió el 20 oct 2009 a las 19:10 #

@Gene: Esto es deberse a que el esquema XML la memoria caché se encuentra en una ubicación diferente de en VS2010. ¿Se puede abrir la UpdateSchemaCache.js y reemplazar esta línea:

vs9CommonTools var = shell.ExpandEnvironmentStrings (“% VS90COMNTOOLS%” );

con esta línea:

var vs9CommonTools = shell.ExpandEnvironmentStrings ( “% VS100COMNTOOLS%”);

Después de eso, intente ejecutar el script y vea si eso ayuda.

+1

¡Gracias por este consejo! Resolvió el problema para mí. – TMC

+11

Para Visual Studio 2012, use http://blog.vanmeeuwen-online.nl/2013/04/visual-studio-2012-xml-intellisense-for.html en su lugar –

0

VisualStudio 2015 admite la etiqueta <rewrite>, pero solo para las versiones .Net 4.0 y posteriores.

Probado con actualización VS2015 3.

Cuestiones relacionadas