मेरे पास एएसपी.नेट वेब पेज हैं जिसके लिए मैं स्वचालित परीक्षण बनाना चाहता हूं (WatiN & MBUnit का उपयोग करके)। मैं अपने कोड से एएसपी.Net विकास सर्वर कैसे शुरू करूं? मैं आईआईएस का उपयोग नहीं करना चाहता।मैं सी # का उपयोग कर एएसपी.Net विकास सर्वर प्रोग्रामेटिक रूप से कैसे चला सकता हूं?
उत्तर
से मैं क्या पता है, तुम ऊपर कमांड प्रॉम्प्ट से डेव सर्वर को निम्नलिखित पथ/वाक्य रचना के साथ आग कर सकते हैं:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Webdev.WebServer.exe /port:[PORT NUMBER] /path: [PATH TO ROOT]
... इसलिए मैं आप आसानी से इस्तेमाल कर सकते हैं Process.Start कल्पना कर सकता() कुछ कोड के माध्यम से आपको आवश्यक विवरण लॉन्च करने के लिए।
स्वाभाविक रूप से आप उस संस्करण संख्या को समायोजित करना चाहते हैं जो आपके लिए सबसे हालिया/वांछित है।
यह मैं क्या उपयोग किया जाता है कि काम किया है:
using System;
using System.Diagnostics;
using System.Web;
...
// settings
string PortNumber = "1162"; // arbitrary unused port #
string LocalHostUrl = string.Format("http://localhost:{0}", PortNumber);
string PhysicalPath = Environment.CurrentDirectory // the path of compiled web app
string VirtualPath = "";
string RootUrl = LocalHostUrl + VirtualPath;
// create a new process to start the ASP.NET Development Server
Process process = new Process();
/// configure the web server
process.StartInfo.FileName = HttpRuntime.ClrInstallDirectory + "WebDev.WebServer.exe";
process.StartInfo.Arguments = string.Format("/port:{0} /path:\"{1}\" /virtual:\"{2}\"", PortNumber, PhysicalPath, VirtualPath);
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
// start the web server
process.Start();
// rest of code...
कोड पोस्ट करने के लिए धन्यवाद ! :) –
.NET 4 WebDev.WebServer40.exe प्रोग्राम फ़ाइलों (या प्रोग्राम फ़ाइलें (x86)) \ Microsoft साझा \ DevServer \ 10.0 में है। आप पर्यावरण का उपयोग कर सकते हैं। I64BitOperatingSystem यह तय करने में सहायता के लिए कि कौन सा फ़ोल्डर देखना है। बीटीडब्लू, आप पर्यावरण का उपयोग कर फ़ोल्डर (ओं) प्राप्त कर सकते हैं। गेटफोल्डरपैथ (पर्यावरण। विशेष फ़ोल्डर। कॉमनप्रोग्रामफाइल) या पर्यावरण। गेटफोल्डरपाथ (पर्यावरण। विशेष फ़ोल्डर। कॉमनप्रोग्रामफाइलएक्स 86)। –
एक अन्य पथ:% ProgramFiles में WebDev.WebServer40.exe (x86)% \ सामान्य फ़ाइलें \ Microsoft साझा \ DevServer \ 11.0 \ – Kiquenet
बिल्डिंग @Ray वेगा के उपयोगी जवाब है, और VS2010 के लिए @James McLachlan की महत्वपूर्ण अद्यतन पर, यहाँ VS2012 कवर और VS2010 पर वापस आने यदि आवश्यक करने के लिए अपने कार्यान्वयन है। मैंने केवल पर्यावरण पर चयन न करने का भी चयन किया। I64BitOperatingSystem क्योंकि यह मेरे सिस्टम पर घबरा गया था। यही है, मेरे पास 64-बिट सिस्टम है लेकिन वेब सर्वर 32-बिट फ़ोल्डर में था। इसलिए मेरा कोड 64-बिट फ़ोल्डर के लिए पहले दिखता है और यदि आवश्यक हो तो 32-बिट एक पर वापस आ जाता है।
public void LaunchWebServer(string appWebDir)
{
var PortNumber = "1162"; // arbitrary unused port #
var LocalHostUrl = string.Format("http://localhost:{0}", PortNumber);
var VirtualPath = "/";
var exePath = FindLatestWebServer();
var process = new Process
{
StartInfo =
{
FileName = exePath,
Arguments = string.Format(
"/port:{0} /nodirlist /path:\"{1}\" /virtual:\"{2}\"",
PortNumber, appWebDir, VirtualPath),
CreateNoWindow = true,
UseShellExecute = false
}
};
process.Start();
}
private string FindLatestWebServer()
{
var exeCandidates = new List<string>
{
BuildCandidatePaths(11, true), // vs2012
BuildCandidatePaths(11, false),
BuildCandidatePaths(10, true), // vs2010
BuildCandidatePaths(10, false)
};
return exeCandidates.Where(f => File.Exists(f)).FirstOrDefault();
}
private string BuildCandidatePaths(int versionNumber, bool isX64)
{
return Path.Combine(
Environment.GetFolderPath(isX64
? Environment.SpecialFolder.CommonProgramFiles
: Environment.SpecialFolder.CommonProgramFilesX86),
string.Format(
@"microsoft shared\DevServer\{0}.0\WebDev.WebServer40.EXE",
versionNumber));
}
मैं आशा करता हूं कि एक सूचित पाठक, VS2013 के लिए उपयुक्त जादू की आपूर्ति करने के रूप में यह जाहिरा तौर पर अभी तक एक अलग योजना का उपयोग करता है सक्षम हो सकता है ...
2013 के लिए, यह इसके बजाय आईआईएस एक्सप्रेस का उपयोग करता है, यहां इसका उपयोग कैसे किया जाए। http://stackoverflow.com/questions/4772092/starting-and-stopping-iis-express-programmatically – Recursor
@Recursor: 2013 संदर्भ के लिए धन्यवाद! –
आप आसानी से प्रोसेस एक्सप्लोरर उपयोग कर सकते हैं खोजने के लिए मैन्युअल रूप से इसे शुरू करने के लिए आवश्यक पूर्ण कमांड लाइन विकल्प। अपनी वेबसाइट डीबग करते समय प्रक्रिया एक्सप्लोरर प्रारंभ करें। वीएस2012 के लिए, 'devenv.exe' नोड का विस्तार करें। 'WebDev.WebServer20.exe' पर राइट-क्लिक करें और वहां से आप पथ और कमांड लाइन मान देख सकते हैं।
- 1. सी # प्रोग्रामेटिक रूप से एएसपी.NET सदस्यता स्कीमा
- 2. क्या मैं सी # से टी 4 प्रोग्रामेटिक रूप से उपयोग कर सकता हूं?
- 3. मैं इवेंटहालर को असीमित रूप से कैसे चला सकता हूं?
- 4. मैं JConsole का उपयोग कर दूरस्थ रूप से वेबलॉगिक से कैसे कनेक्ट कर सकता हूं?
- 5. मैं एपीआई का उपयोग किए बिना प्रोग्रामेटिक रूप से खोज कैसे कर सकता हूं?
- 6. मैं लाटेक्स का उपयोग करके प्रोग्रामेटिक रूप से पीडीएफ कैसे उत्पन्न कर सकता हूं?
- 7. मैं प्रोग्रामेटिक रूप से विंडोज़ फॉर्म कैसे बना सकता हूं?
- 8. क्या मैं विजुअल स्टूडियो एएसपी.NET विकास सर्वर द्वारा उपयोग किए गए एएसपी.NET संस्करण को सेट कर सकता हूं?
- 9. मैं कई बार रेकैक प्रोग्राम प्रोग्रामेटिक रूप से कैसे चला सकता हूं?
- 10. मैं सी में प्रोग्रामेटिक रूप से 'टी' को कैसे कार्यान्वित कर सकता हूं?
- 11. मैं रैम डिस्क प्रोग्रामेटिक रूप से कैसे बना सकता हूं?
- 12. मैं सी का उपयोग कर लिनक्स में एक स्वर कैसे चला सकता हूं?
- 13. क्या मैं प्रोग्रामेटिक रूप से नामित स्थानीय डीबी इंस्टेंस को चालू कर सकता हूं?
- 14. मैं प्रोग्रामेटिक रूप से संपर्क कैसे जोड़ सकता हूं?
- 15. मैं फास्ट स्कैला कंपाइलर रिमोट सर्वर कैसे चला सकता हूं?
- 16. मैं कोको विंडो प्रोग्रामेटिक रूप से कैसे बना सकता हूं?
- 17. मैं समसामयिक रूप से कितने धागे चला सकता हूं?
- 18. मैं SQL सर्वर में प्रोग्रामेटिक रूप से डेटाबेस कैसे बना सकता हूं?
- 19. मैं global.asax से Server.MapPath() का उपयोग कैसे कर सकता हूं?
- 20. मैं विंडोज डेस्कटॉप आइकन स्थानों को प्रोग्रामेटिक रूप से कैसे उपयोग कर सकता हूं?
- 21. मैं सी # का उपयोग कर SQL सर्वर डेटाबेस में हैश कैसे संग्रहीत कर सकता हूं?
- 22. मैं एक Mercurial सर्वर कैसे चला सकता हूं?
- 23. php सर्वर से एंड्रॉइड प्रोग्रामेटिक रूप से
- 24. मैं कुकीज़ के लिए प्रोग्रामेटिक रूप से परीक्षण कैसे कर सकता हूं?
- 25. परीक्षण के लिए मैं ExpressJS के उदाहरण को प्रोग्रामेटिक रूप से कैसे बंद कर सकता हूं?
- 26. मैं सी # में GetNextWindow() का उपयोग कैसे कर सकता हूं?
- 27. मैं रेल सर्वर डिमन कैसे चला सकता हूं?
- 28. मैं कक्षा से प्रोग्रामेटिक रूप से स्टोरीबोर्ड कैसे लोड कर सकता हूं?
- 29. मैं सी # में डीबग्रेक() का उपयोग कैसे कर सकता हूं?
- 30. मैं सी ++ में mysql का उपयोग कैसे कर सकता हूं?
यदि webdev.webserver.exe उस फ़ोल्डर में स्थित नहीं है, तो यह C: \ Program Files \ Common Files \ Microsoft Shared \ DevServer \ 9.0 (जहां मुझे यह मिला) में स्थित हो सकता है – Casper
कैस्पर धन्यवाद! – Anders
2013 के लिए यह http://stackoverflow.com/questions/4772092/starting-and-stopping-iis-express-programmatically – Recursor