Kiq*_*net 6 .net asp.net iis iis-6 iisreset
我的情况:当我在GAC中部署程序集.NET时,我收到错误(无法访问xxx.dll因为正在使用另一个进程).IIS使用这些DLL(程序集).
哪种方法最好(更多性能,快速和安全)或所有方法停止,启动IIS 6.0 Windows 2003?(对于C#,.NET 3.5)
选项,我认为:
检测机器中安装的IIS.
Process.Start()使用命令:iisreset /stop和iisreset /start
使用ServiceController类获取"万维网发布服务"("W3SVC")并停止
controller.Stop();
controller.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(timeoutSeconds));
Run Code Online (Sandbox Code Playgroud)
并开始
controller.Start();
controller.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(timeoutSeconds));
Run Code Online (Sandbox Code Playgroud)Process.Start() using command:taskkill/IM aspnet_wp.exe/F(在Win2003中使用w3wp.exe)
另一种我不知道的选择?
你不需要做所有这些事情.
仅仅使用iisreset /stop那么iisreset /start当您完成您的部署将正常工作.
它相当快,并确保安全重启IIS.
编辑:
您可以使用WiX完成网站和虚拟目录的完整配置.
用于在IIS中创建网站的Wix示例(不会按原样工作):
<!-- Create the web site in IIS -->
<Component Id="WebSiteComponent" Guid="<INSERT-GUID>" KeyPath="yes">
<iis:WebAppPool Id="WebSiteAppPool" Name="WebSiteAppPool" RecycleMinutes="1740" QueueLimit="4000" IdleTimeout="20" MaxWorkerProcesses="1" Identity="networkService" />
<!-- web site -->
<iis:WebSite Id="WebSiteIIS" AutoStart="yes" ConfigureIfExists="yes" Description="WebSite" SiteId="59" StartOnInstall="yes" Directory="SiteFolder">
<!-- Host headers to enable web site to be hosted on port 80 -->
<iis:WebAddress Id="HostHeader" Header="myWebSite" IP="*" Port="80" Secure="no" />
<iis:WebAddress Id="SecureHostHeader" Header="myWebSite" IP="*" Port="443" Secure="yes" />
<!-- download web site web application -->
<iis:WebApplication Id="WebSiteWebApplication" AllowSessions="yes" SessionTimeout="20" Buffer="yes" ParentPaths="no" ClientDebugging="no" Name="Default Application" WebAppPool="WebSiteAppPool" DefaultScript="VBScript" ScriptTimeout="90" ServerDebugging="no" />
<iis:WebDirProperties Id="WebSiteProperties" Read="yes" LogVisits="yes" Index="yes" Execute="no" Write="no" AnonymousAccess="yes" AccessSSL="no" Script="yes" AspDetailedError="yes" />
<!-- web service virtual directory -->
<iis:WebVirtualDir Id="WebServiceVDir" Alias="Service" Directory="WebServiceFolder">
<iis:WebDirProperties Id="WebServiceVDirProperties" Read="yes" Write="yes" LogVisits="yes" Index="yes" BasicAuthentication="yes" AnonymousAccess="no" AccessSSL="yes" AccessSSL128="yes" Execute="no" Script="yes" AspDetailedError="yes" />
<iis:WebApplication Id="WebServiceWebApplication" AllowSessions="yes" Buffer="yes" ClientDebugging="no" ServerDebugging="no" WebAppPool="WebSiteAppPool" Name="Default Application" SessionTimeout="20" ParentPaths="no" DefaultScript="VBScript" ScriptTimeout="90" />
</iis:WebVirtualDir>
</iis:WebSite>
</Component>
Run Code Online (Sandbox Code Playgroud)
另一个例子见这里:
http://strangelights.com/blog/archive/2004/10/08/179.aspx