2017-08-11 118 views
9

Çeşitli projelerle, bir tanesi IIS tarafından çalıştırılan bir web sunucusu olan bir C# çözümüm var. O projenin csproj dosyasında <UseGlobalApplicationHostFile>True</UseGlobalApplicationHostFile>'u ayarladık.IIS CLI projem için site ile applicationhost.config site oluştur

Visual Studio açtığınızda, üretir bu ~/Belgeler/IISExpress/config/ApplicationHost.config içinde: Ben komut satırından IIS Express ile projemi çalıştırmak mümkün istiyorum

<sites> 
     <site name="WebSite1" id="1" serverAutoStart="true"> 
      <application path="/"> 
       <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> 
      </application> 
      <bindings> 
       <binding protocol="http" bindingInformation=":8080:localhost" /> 
      </bindings> 
     </site> 
     <site name="SealingService" id="2"> 
      <application path="/" applicationPool="Clr4IntegratedAppPool"> 
       <virtualDirectory path="/" physicalPath="C:\Users\sehch\Documents\Paragon\ParagonCore\servers\SealingService\SealingService" /> 
      </application> 
      <bindings> 
       <binding protocol="http" bindingInformation="*:61800:localhost" /> 
       <binding protocol="https" bindingInformation="*:44300:localhost" /> 
      </bindings> 
     </site> 
     <siteDefaults> 
      <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> 
      <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> 
     </siteDefaults> 
     <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> 
     <virtualDirectoryDefaults allowSubDirConfig="true" /> 
    </sites> 

(derleme sunucu entegrasyonu testleri için). Komut satırından (Visual Studio'yu açmadan) applicationhost.config dosyasının SealingService site bölümünü nasıl oluşturabilirim?

benim çözüm klasöründe

"C:\Program Files (x86)\IIS Express\iisexpress.exe" 

çalışan denedi, ancak yalnızca WebSite1 bölümünü oluşturur.

+0

appcmd.exe: IIS Express x86 sürümünü kullanıyorsanız

, sen C Appcmd bulabilirsiniz. Neden "oluşturulmasını" istiyorsun? Her zaman bu yapılandırma dosyasını okumak için IIS Express'i komut satırından çalıştırarak, repo ve CI makinenize 'applicationHost.config 'kopyasını koyabilirsiniz. –

+1

@LexLi Bunu yapabilirim, ancak yerel ve CI makineleri için farklı 'physicalPath'leri nasıl ayarlayabilirim? İdeal olarak bir yapılandırma dosyasını değiştirmeden, yerel olarak da talep üzerine testleri yürütmek istiyoruz. –

+3

Yolda bir ortam değişkeni bırakın ve ardından CI sıranıza tam klasöre ayarlayın, bence çalışmalı. –

cevap

0

Doğru bir şekilde anladım, ne yapmak istediğinizi belirttiğiniz bölümü ~/Documents/IISExpress/config/applicationhost.config dosyasına eklemektir.

Sen AppCmd.exe komut satırı aracını kullanarak bunu yapabilirsiniz: Biz siteyi oluşturmak ilk komutla

"C:\Program Files\IIS Express\appcmd.exe" add site /name:SealingService /bindings:"http/*:61800:localhost" /physicalPath:"C:\Users\sehch\Documents\Paragon\ParagonCore\servers\SealingService\SealingService" 
"C:\Program Files\IIS Express\appcmd.exe" set site /site.name:SealingService /[path='/'].applicationPool:Clr4IntegratedAppPool 
"C:\Program Files\IIS Express\appcmd.exe" set site /site.name:SealingService /+bindings.[protocol='https',bindingInformation='*:44300:localhost'] 

, set onun http ve fiziksel yol bağlayıcı; ikincisiyle, uygulama havuzunu istediğimiz şekilde ayarladık; ve üçüncü ile https ciltleme ekleyin. \ Program Files (x86) \ IIS Express \ O kesinlikle VS özelliği olduğunu düşünüyorum

+0

Dosyayı düzenleyecek gibi görünüyor, ancak dosyayı ilk etapta oluşturmaya ne dersiniz? –

+0

@ScottH iisexpress.exe dosyasını ilk önce dosyayı oluşturmak için çalıştırabilirsiniz –