2013-07-20 9 views
5

Per quanto riguarda lo scriptProcessor nella sezione handler di IIS web.config, ci sono dei simboli% oltre a% s (che sembra rappresentare il nome file richiesto)? Ad esempio,% è una macro/simbolo riconosciuto? Se ci sono altri oltre a% s, dove vengono descritti?IIS web.config, eventuali altri simboli% oltre a% s?

+1

so che c'è il windir% simbolo%: http://technet.microsoft.com/en-us/library/cc754147%28v=ws.10%29. Aspx ma non so se c'è qualcos'altro. –

+0

Questo è sicuramente nella giusta direzione. Non avevo pensato alla possibilità di% windir% e probabilmente altre variabili d'ambiente disponibili in quel contesto. Complimenti a te. – bugmagnet

risposta

2

La tua domanda è un po 'oscura, quindi ho dovuto fare una serie di ipotesi per poter rispondere. Per favore fatemi sapere se ho qualcosa di sbagliato.

Dal documentation:

Script Processor

attributo di stringa opzionale.

Specifica il percorso fisico del file .dll di estensione ISAPI o del file .exe di Common Gateway Interface (CGI) che elabora la richiesta.

L'attributo scriptProcessor è richiesto solo per i mapping del gestore mappe di script. Quando si associa un gestore a un'estensione ISAPI, è necessario specificare ISAPIModule per l'attributo modules. Quando si mappa un gestore in un file CGI, è necessario specificare CGIModule per l'attributo modules.

Dalla documentazione, non si vede alcuna menzione delle stringhe di formato. Se ci fossero stringhe di formato, con cosa le sostituiresti? Non c'è una risposta chiara basata sull'XML. Forse stai scambiando una variabile d'ambiente per una stringa di formato. Oppure la tua particolare configurazione ha qualche post-elaborazione che viene eseguita prima che sia trasmessa dal vivo.

Se in realtà stiamo parlando di variabili di ambiente, è possibile visualizzarle emettendo Win + Break per richiamare le impostazioni di sistema, andare su avanzato, quindi aprire le variabili di ambiente. Puoi anche definire il tuo. Per utilizzare qualsiasi variabile di ambiente è possibile utilizzare %variablename% come si farebbe in un file standard .bat.

EDIT: In seguito a ricerche più approfondite, ho trovato quanto segue. %s ti darà il nome dello script, quindi %s ti darà di nuovo i parametri foo=bar. Questa funzione non è pubblicizzata (che posso trovare) in qualsiasi documentazione ufficiale di IIS. Sospetto fortemente che sia considerata una funzionalità deprecata. E stanno spingendo forte per rendere ISAPI la norma.

A causa di come è strutturato (cioè come una stringa di formato standard), sospetto che provare altre stringhe di formato comune (%d %c %f) possa produrre qualcosa di interessante, ma probabilmente no. Sembra che questa fosse una soluzione molto specifica a un problema molto specifico.

+0

Sì, non molto chiaro. Non mi interessa tanto nelle "stringhe di formato" quanto negli altri "macro" (per mancanza di una parola migliore). Ad esempio,% s rappresenta il nome dello script richiesto. % A significa qualcosa, ecc? – bugmagnet

+0

Dopo aver fatto qualche ricerca, sembra che se si rilascia '% s' una volta che si ottiene il nome dello script richiesto, una seconda espressione di'% s' fornirà i parametri. Tuttavia, non ho ancora trovato alcuna documentazione Microsoft su questo. Tutto quello che ho trovato è stato collegato al fatto che perl funzionasse sotto IIS. – OmnipotentEntity

+0

http://www.microsoft.com/msj/0498/iis/iis.aspx lo menziona di passaggio. – OmnipotentEntity

0

Non è strettamente correlato alla tua domanda, ma pubblico questi 2 link perché sono in qualche modo collegati e potrebbero essere utili.

Ho trovato come utilizzare "@" e "$" per trasformare Web.Config, ma non ho trovato nulla su "%" che non sia strettamente correlato alle variabili di ambiente.

primo link: "@"

Questo primo link spiega l'uso di xdt: Transform e xdt: Locator attributi che è possibile utilizzare in Web.config trasformare i file:

http://msdn.microsoft.com/en-us/library/dd465326.aspx

Questo esempio è un uso interessante del Web.Config trasformazione utilizzando condizioni con "@":

<configuration xmlns:xdt="..."> 
    <connectionStrings> 
     <add name="AWLT" connectionString="newstring" 
      providerName="newprovider" 
      xdt:Transform="Replace" 
      xdt:Locator="Condition(@name='oldname' 
       or @providerName='oldprovider')" /> 
    </connectionStrings> 
</configuration> 

secondo link: "$"

Questo secondo link mostra come usare "$" per trasformare Web.Config evitare la procedura noiosa di commentare manualmente/parti web.Config decommentare durante la distribuzione o test in diversi server:

http://andrewtwest.com/2010/02/25/using-web-config-transformations-in-web-site-projects/

Un estratto del collegamento, che mostra come utilizzare MSBuild per trasformare web.Config fil es partendo da un file di progetto di applicazione Web:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <OutputPath>bin\</OutputPath> 
</PropertyGroup> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>bin\</OutputPath> 
</PropertyGroup> 
Problemi correlati