IIS6

2009-06-08 9 views
12

कॉन्फ़िगर करने के लिए डेवलपर टूल संपादित करें: आईआईएस 6; मुझे यकीन नहीं है कि आईआईएस 7 तत्काल भविष्य में एक विकल्प है ...IIS6

डेवलपर कोण से, मैं लगातार अपनी आईआईएस सेटिंग्स बदल रहा हूं, या अन्य टीमों से अलग-अलग वीएम में सेटिंग्स को मर्ज करने की आवश्यकता है। "डिस्क पर कॉन्फ़िगरेशन सहेजें" ने वास्तव में मेरे लिए वास्तव में अच्छा काम नहीं किया है।

क्योंकि हम बहुत सारे छोटे बदलाव कर रहे हैं, वेब स्थापना परियोजनाओं ने वास्तव में कभी भी काम नहीं किया है ... वेब-एडमिन के लिए लक्षित टूल डेवलपर के लिए एक उपयुक्त फिट नहीं हैं - हमारे पास अलग-अलग लक्ष्य और आवश्यकताएं हैं।

क्या किसी के पास एक स्क्रिप्ट/टूल/उपयोगिता है जो हमें आईआईएस को त्वरित रूप से कॉन्फ़िगर करने की अनुमति देगी? विशेष रूप से:

  • हटाने सब कुछ (स्वच्छ शुरू)
  • वर्चुअल निर्देशिका का भार जोड़ने के लिए, प्रत्येक आवेदन के आधार पथ के लिए एक आवेदन
  • एप्लिकेशन-पूल सेट (हम के रूप में
  • सेट मैप किया 'मान लेंगे एप्लिकेशन पूल पहले से मौजूद है)
  • 2.x के लिए ASP.NET संस्करण सेट यदि आवश्यक हो तो

च रोम फ्लैट इनपुट सूची के कुछ खोज (कोई भी प्रारूप करेगा)।

उत्तर

11

मैं अपने सिर के ऊपर से तीन विकल्प के बारे में सोच सकते हैं ...

  1. Powershell स्नैप-इन।
  2. AdsUtil.vbs (डिफ़ॉल्ट रूप से सी: \ Inetpub \ AdminScripts में स्थित) आपको उन कार्यों को बैच फ़ाइल में स्क्रिप्ट करने में सक्षम बनाता है, या यदि आप सीखने का समय नहीं लेते हैं तो आप इसे पावरहेल से भी कॉल कर सकते हैं आईआईएस के लिए डब्ल्यूएमआई इंटरफ़ेस।
  3. एमएसबिल्ड स्क्रिप्ट। शायद कॉन्फ़िगर करना कठिन है लेकिन MSBuild Extension Pack एक एमएसबील्ड स्क्रिप्ट से आईआईएस 6 और आईआईएस 7 दोनों के प्रबंधन के लिए कुछ कार्य प्रदान करता है।

मुझे लगता है। अगर यह मुझे यह करने के लिए की आवश्यकता होगी, था, मैं PowerShell का उपयोग होता है, या सभी को एक साथ की जरूरत को हटाने और एक आधार के वी एम स्थापित है कि सभी मूल बातें पहले से ही में विन्यस्त था बनाने जब मैं teasting पूरा कर लेने मैं बस हार्डड्राइव रोलबैक करता हूं और फिर से जाने के लिए स्वतंत्र हूं।

1

पावरहेल काम करेगा। यदि आप निर्भरताओं से बचना चाहते हैं, तो आप AdsUtil.vbs के खिलाफ चलाने के लिए एक स्क्रिप्ट भी उत्पन्न कर सकते हैं।

शायद आईआईएस 7 पर मानकीकरण करना आसान होगा जहां यह सब चीज़ें web.config फ़ाइलों में रहती हैं जो जीवन को बहुत आसान बनाती हैं।

1

आप आईआईएस के लिए मेटाबेस एक्सएमएल कॉन्फ़िगरेशन फाइलों को देखना और प्रत्यक्ष संपादन की अनुमति दे सकते हैं।

4

मुझे शो के लिए थोड़ा देर हो चुकी है, लेकिन मैंने सोचा कि यह पावरशेल स्क्रिप्ट मेरी उपयोगी है, मुझे पता है कि मैं केवल अपने स्थानीय विकास बॉक्स के लिए इसका उपयोग जादू संख्याओं के लिए क्षमा चाहता हूं।

AuthFlags = 4 प्राधिकरण

यह बिल्कुल मार्क की आवश्यकताओं को पूरा नहीं करता एकीकृत है, लेकिन यह एक अच्छी शुरुआत है।

यदि आप WMI Tools डाउनलोड करते हैं तो आप आईआईएस मेटाबेस में डब्लूएमआई इंटरफ़ेस का पता लगाने के लिए उनका उपयोग कर सकते हैं।

function CreateAppPool($poolName,$userName,$password) 
{ 
    [wmiclass] $appPoolSettings = "root\MicrosoftIISv2:IISApplicationPoolSetting"; 
    $newPool = $appPoolSettings.CreateInstance(); 
    $newPool.Name = "W3SVC/AppPools/" + $poolName; 
    $newPool.WAMUsername = $userName; 
    $newPool.WAMUserPass = $password; 
    $newPool.AppPoolIdentityType = 3; 
    $newPool.Put(); 
    # Do it again if it fails as there is a bug with Powershell/WMI 
    if (!$?) 
    { 
     $newPool.Put(); 
    } 
} 


function CreateWebsite($webSiteName, $path, $port, $appPoolName) 
{ 
    [wmiclass] $bindingClass = 'root\MicrosoftIISv2:ServerBinding'; 
    $bindings = $bindingClass.CreateInstance(); 
    $bindings.Port = $port; 
    $webService = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService"; 
    $webSite = $webService.CreateNewSite($webSiteName, $bindings, $path); 
    [int] $index = $webSite.ReturnValue.IndexOf("'") + 1; 
    [int] $length = $webSite.ReturnValue.Length - $index - 1; 
    [string] $websiteID = $webSite.ReturnValue.SubString($index, $length) + "/root"; 
    $webVirtualDirSetting = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebVirtualDirSetting" | Where-Object {$_.Name -eq $websiteID}; 
    $webVirtualDirSetting.AppFriendlyName = $webSiteName; 
    $webVirtualDirSetting.AppPoolId = $appPoolName; 
    $webVirtualDirSetting.AccessFlags = 517; 
    $webVirtualDirSetting.AuthFlags = 4; 
    $webVirtualDirSetting.Put(); 

    #Switch the Website to .NET 2.0 
    C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/ 
} 

$webSiteName = "MyWebsiteName"; 
$webSitePath = "C:\MyWebsitePath"; 
$webSitePort = "9001"; 
$appPoolName = "MyWebsitePool"; 
$appPoolIdentity = "MYDESKTOP\MyWebsiteIdentity"; 
$appPoolPassword = "MyWebsitePassword"; 

CreateAppPool $appPoolName $appPoolIdentity $appPoolPassword 
CreateWebsite $webSiteName $webSitePath $webSitePort $appPoolName 
संबंधित मुद्दे