2011-01-25 14 views

उत्तर

41

मैं उन टैग्स से देखता हूं जिन्हें आप IIS7 का उपयोग कर रहे हैं। जब तक आपको पूरी तरह से नहीं करना है, IIS6 संगतता घटकों का उपयोग न करें। आपका पसंदीदा दृष्टिकोण Microsoft.Web.Administration प्रबंधित API का उपयोग करना चाहिए।

4.0 करने के लिए इस का उपयोग करते हुए एक आवेदन पूल बना सकते हैं और .नेट फ्रेमवर्क संस्करण सेट करने के लिए ऐसा करते हैं:

:

using Microsoft.Web.Administration; 
... 

using(ServerManager serverManager = new ServerManager()) 
{ 
    ApplicationPool newPool = serverManager.ApplicationPools.Add("MyNewPool"); 
    newPool.ManagedRuntimeVersion = "v4.0"; 
    serverManager.CommitChanges(); 
} 

आप में पाया जा सकता है Microsoft.Web.Administration.dll के लिए एक संदर्भ जोड़ना चाहिए %SYSTEMROOT%\System32\InetSrv

+4

हां। मैंने सर्वर प्रबंधक को स्विच कर दिया है। समस्या यह थी कि मुझे नहीं पता था कि System.Web.Administration के लिए DLL कहां स्थित था। उत्तर '% WinDir% \ System32 \ InetSrv \ Microsoft.Web.Administration.dll' – jgauffin

+2

' Microsoft.Web.Administration' को सीधे डीएल संदर्भित करने के बजाय NuGet पैकेज के रूप में भी जोड़ा जा सकता है – jgauffin

+0

@jgauffin - ओह कूल, क्या आपको बुरा लगता है अगर मैं इसे अपने उत्तर में जोड़ूं? – Kev

8
newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0"; 

सैम करोगी Microsoft.Web.Administration.dll के रूप में ई बात लेकिन DirectoryEntry

का उपयोग कर भी

newPool.InvokeSet("ManagedPipelineMode", new object[] { 0 }); 

DirectoryEntry का उपयोग कर एकीकृत या क्लासिक पाइपलाइन मोड में स्विच करेंगे।

2

अन्य उत्तरों आपके विशेष परिदृश्य में बेहतर हैं, लेकिन सामान्य रूप से ध्यान रखें कि आप यह करने के लिए appcmd टूल का उपयोग कर सकते हैं: https://technet.microsoft.com/en-us/library/cc731784%28v=ws.10%29.aspx। विशेष रूप से:

appcmd add apppool /name: string /managedRuntimeVersion: string /managedPipelineMode: Integrated | Classic

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –

+0

@AndrewArnold अच्छा बिंदु, किया। – bmm6o