100165803.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 708 行 · 第 1/3 页

HTM
708
字号
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:10.7pt'><span
  style='font-family:宋体;color:black'>类似于</span><span lang=EN-US
  style='color:black'>LocalService</span><span style='font-family:宋体;
  color:black'>,这个值指定把计算机的证书传送给远程服务器,但与</span><span lang=EN-US
  style='color:black'>LocalService</span><span style='font-family:宋体;
  color:black'>不同,这种服务可以以非授权用户的身份登录本地系统。顾名思义,这个账户只能用于需要从网络上获得资源的服务</span></p>
  </td>
 </tr>
 <tr>
  <td width=111 valign=top style='width:83.55pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>User</span></p>
  </td>
  <td width=469 valign=top style='width:351.7pt;border:none;border-bottom:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:10.7pt'><span style='font-family:宋体;
  color:black'>把</span><span lang=EN-US style='color:black'>Accout</span><span
  style='font-family:宋体;color:black'>属性设置为</span><span lang=EN-US
  style='color:black'>ServiceAccout.User</span><span style='font-family:宋体;
  color:black'>,表示可以指定应在服务中使用的账户</span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal style='margin-top:8.15pt'><span lang=EN-US>ServiceInstaller</span><span
style='font-family:宋体'>是每一个服务都需要的类,这个类的属性可以用于进程中的每一个服务,其属性有</span><span
lang=EN-US>StartType</span><span style='font-family:宋体'>、</span><span
lang=EN-US>DisplayName</span><span style='font-family:宋体'>、</span><span
lang=EN-US>ServiceName</span><span style='font-family:宋体'>和</span><span
lang=EN-US>ServicesDependedOn</span><span style='font-family:宋体'>,如表</span><span
lang=EN-US>32-3</span><span style='font-family:宋体'>所示。</span></p>

<p class=a5 style='margin-top:0cm'><span style='font-family:黑体;color:black'>表</span><span
lang=EN-US style='color:black'>&nbsp; 32-3</span></p>

<div align=center>

<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 width=579
 style='width:433.95pt;margin-left:24.1pt;border-collapse:collapse;border:none'>
 <tr>
  <td width=138 valign=top style='width:103.7pt;border:solid windowtext 1.0pt;
  border-left:none;padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a2><span style='font-family:黑体;color:black'>属</span><span
  lang=EN-US style='color:black'>&nbsp;&nbsp;&nbsp; </span><span
  style='font-family:黑体;color:black'>性</span></p>
  </td>
  <td width=440 colspan=2 valign=top style='width:330.25pt;border-top:solid windowtext 1.0pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a2><span style='font-family:黑体;color:black'>说</span><span
  lang=EN-US style='color:black'>&nbsp;&nbsp;&nbsp; </span><span
  style='font-family:黑体;color:black'>明</span></p>
  </td>
 </tr>
 <tr>
  <td width=138 valign=top style='width:103.7pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>StartType</span></p>
  </td>
  <td width=440 colspan=2 valign=top style='width:330.25pt;border:none;
  border-bottom:solid windowtext 1.0pt;padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span
  lang=EN-US style='color:black'>StartType </span><span style='font-family:
  宋体;color:black'>指出服务是手动启动还是自动启动。它的值可以是:</span><span lang=EN-US
  style='color:black'>ServiceStartMode.Automatic</span></p>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>ServiceStartMode.Manual</span></p>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>ServiceStartMode.Disabled</span><span
  style='font-family:宋体;color:black'>。</span></p>
  <p class=a4 style='margin-left:0cm'><span style='font-family:宋体;color:black'>如果使用</span><span
  lang=EN-US style='color:black'>ServiceStartMode.Disabled</span><span
  style='font-family:宋体;color:black'>,服务就不能启动。这个选项可用于不应在系统中启动的服务。例如,如果没有得到需要的硬件控制器,就可以把该选项设置为</span><span
  lang=EN-US style='color:black'>Disabled</span></p>
  </td>
 </tr>
 <tr>
  <td width=138 valign=top style='width:103.45pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>DisplayName</span></p>
  </td>
  <td width=440 valign=top style='width:330.0pt;border:none;border-bottom:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span
  lang=EN-US style='color:black'>DisplayName </span><span style='font-family:
  宋体;color:black'>是显示给用户的服务的友好名称。此外,这个名称也用于控制和监视服务的管理工具</span></p>
  </td>
  <td style='border:none;border-bottom:solid windowtext 1.0pt' width=1><p class='MsoNormal'></td>
 </tr>
 <tr>
  <td width=138 valign=top style='width:103.7pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>ServiceName</span></p>
  </td>
  <td width=440 colspan=2 valign=top style='width:330.25pt;border:none;
  border-bottom:solid windowtext 1.0pt;padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span
  lang=EN-US style='color:black'>ServiceName</span><span style='font-family:
  宋体;color:black'>是服务的名称。这个值必须与服务程序中</span><span lang=EN-US style='color:black'>ServiceBase</span><span
  style='font-family:宋体;color:black'>类的</span><span lang=EN-US
  style='color:black;letter-spacing:-.2pt'>ServiceName</span><span
  style='font-family:宋体;color:black;letter-spacing:-.2pt'>属性一致,这个名称与把</span><span
  lang=EN-US style='color:black;letter-spacing:-.2pt'>ServiceInstaller</span><span
  style='font-family:宋体;color:black;letter-spacing:-.2pt'>配置为需要的服务程序相关</span></p>
  </td>
 </tr>
 <tr>
  <td width=138 valign=top style='width:103.7pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span lang=EN-US style='color:black'>ServicesDependentOn</span></p>
  </td>
  <td width=440 colspan=2 valign=top style='width:330.25pt;border:none;
  border-bottom:solid windowtext 1.0pt;padding:0cm 9.9pt 0cm 9.9pt'>
  <p class=a4 style='margin-left:0cm'><span
  style='font-family:宋体;color:black'>指定必须在服务启动之前启动的一个服务组。当服务启动时,所有相依存的服务都自动启动,并且我们的服务也将启动</span></p>
  </td>
 </tr>
</table>

</div>

<p class=a3 style='margin-top:8.15pt;FTEL:21.45pt'><span
style='font-family:黑体'>提示:</span></p>

<p class=a1 style='FTEL:8.15pt;FTEL:21.45pt'><span
style='font-family:楷体_GB2312'>如果在</span><span lang=EN-US>ServiceBase</span><span
style='font-family:楷体_GB2312'>的派生类中改变了服务的名称,还必须修改</span><span lang=EN-US>ServiceInstaller</span><span
style='font-family:楷体_GB2312'>对象中</span><span lang=EN-US>Service Name</span><span
style='font-family:楷体_GB2312'>属性的值。</span></p>

<p class=a3 style='margin-top:8.15pt;FTEL:21.45pt'><span
style='font-family:黑体'>注意:</span></p>

<p class=a1 style='FTEL:8.15pt;FTEL:21.45pt'><span
style='font-family:楷体_GB2312'>在测试阶段,最好把</span><span lang=EN-US>StartType</span><span
style='font-family:楷体_GB2312'>的值设置为</span><span lang=EN-US>Manual</span><span
style='font-family:楷体_GB2312'>。如果服务因程序中的错误不能停止,仍可以重新启动系统。如果把</span><span
lang=EN-US>StartType</span><span style='font-family:楷体_GB2312'>的值设置为</span><span
lang=EN-US>Automatic</span><span style='font-family:楷体_GB2312'>,服务就会在重新启动系统时自动启动!当确信没有问题时,可以在以后改变这个配置。</span></p>

<h4 style='FTEL:21.45pt'><span lang=EN-US>3. ServiceInstallerDialog</span><span
style='font-family:黑体'>类</span></h4>

<p class=MsoNormal><span lang=EN-US>System.ServiceProcess.Design</span><span
style='font-family:宋体'>命名空间中的另一个安装类是</span><span lang=EN-US>ServiceInstallerDialog</span><span
style='font-family:宋体'>。在安装过程中,如果希望系统管理员输入用户名和密码,就可以使用这个类。</span></p>

<p class=MsoNormal><span style='font-family:宋体'>如果</span><span lang=EN-US>ServiceProcessInstaller</span><span
style='font-family:宋体'>类的</span><span lang=EN-US>Account</span><span
style='font-family:宋体'>属性设置为</span><span lang=EN-US>ServiceAccount.User</span><span
style='font-family:宋体'>,</span><span lang=EN-US>Username</span><span
style='font-family:宋体'>和</span><span lang=EN-US>Password</span><span
style='font-family:宋体'>属性设置为</span><span lang=EN-US>null</span><span
style='font-family:宋体'>,则在安装时,图</span><span lang=EN-US>32-12</span><span
style='font-family:宋体'>所示的</span><span lang=EN-US>Set Service Login</span><span
style='font-family:宋体'>对话框将自动显示出来。此时,也可以取消安装。</span></p>

<p align=center><i><span lang=EN-US><img width=180 height=94
src="32/image013.jpg"></span></i></p>

<p align=center style='FTEL:8.15pt'><span style='font-family:宋体;color:black'>图</span><span
lang=EN-US style='color:black'>&nbsp; 32-12</span></p>

<h4 style='margin-top:0cm;FTEL:21.45pt'><span lang=EN-US>4.</span><span
lang=EN-US style='font-family:宋体'> </span><span lang=EN-US>installutil</span></h4>

<p class=MsoNormal><span style='font-family:宋体'>在把安装类添加到项目中之后,就可以使用</span><span
lang=EN-US>installutil.exe</span><span style='font-family:宋体'>实用程序安装和卸载服务了。这个实用程序可以用于安装包含</span><span
lang=EN-US>Installer</span><span style='font-family:宋体'>类的所有程序集。</span><span
lang=EN-US>installutil.exe</span><span style='font-family:宋体'>实用程序调用派生于</span><span
lang=EN-US>Installer</span><span style='font-family:宋体'>类的方法</span><span
lang=EN-US>Installer()</span><span style='font-family:宋体'>进行安装,调用</span><span
lang=EN-US>UnInstaller()</span><span style='font-family:宋体'>方法进行卸载。</span></p>

<p class=MsoNormal><span style='font-family:宋体;color:black'>安装和卸载服务的命令分别是:</span></p>

<p class=a6 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US style='color:black'>installutil quoteservice.exe</span></p>

<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US
style='color:black'>installutil /u quoteservice.exe</span></p>

<p class=a3 style='margin-top:8.15pt;FTEL:21.45pt'><span
style='font-family:黑体'>注意:</span></p>

<p class=a1 style='FTEL:0cm;FTEL:.0001pt;FTEL:21.45pt'><span
style='font-family:楷体_GB2312'>如果安装失败了,一定要检查安装日志文件</span><span lang=EN-US>InstallUtil.InstallLog</span><span
style='font-family:楷体_GB2312'>和</span><span lang=EN-US>&lt;servicename&gt;.
InstallLog</span><span style='font-family:楷体_GB2312'>。<span style='letter-spacing:
-.1pt'>通</span>常,在安装日志文件中可以发现一些非常有用的信息,例如:“</span><span lang=EN-US>The
specified service already exists</span><span style='font-family:楷体_GB2312'>”。</span></p>

<h4 style='FTEL:21.45pt'><span lang=EN-US>5. </span><span
style='font-family:黑体'>客户</span></h4>

<p class=MsoNormal><span style='font-family:宋体'>在成功地安装服务后,就可以从</span><span
lang=EN-US>Services MMC</span><span style='font-family:宋体'>中手动启动服务</span><span
lang=EN-US>(</span><span style='font-family:宋体'>详细内容请参阅</span><span lang=EN-US>32.5</span><span
style='font-family:宋体'>节</span><span lang=EN-US>)</span><span style='font-family:
宋体'>,并启动客户应用程序,图</span><span lang=EN-US>32-13</span><span style='font-family:
宋体'>显示了访问服务的客户。</span></p>

<p align=center><span lang=EN-US><img width=259 height=189
src="32/image014.jpg"></span></p>

<p align=center style='FTEL:8.15pt'><span style='font-family:宋体;color:black'>图</span><span
lang=EN-US style='color:black'>&nbsp; 32-13</span></p>

</div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100165802.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100165804.htm">下一页</a>
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165803.htm'><font color='red'>32.4.6  安装程序</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165800.htm'>32.4.3  Windows服务项目</a></div><div style='float:right;width:49%'>·<a href='100165801.htm'>32.4.4  线程和服务</a></div><div style='float:left;width:49%'>·<a href='100165802.htm'>32.4.5  服务的安装</a></div><div style='float:right;width:49%'>·<a href='100165804.htm'>32.5  服务的监视和控制</a></div><div style='float:left;width:49%'>·<a href='100165805.htm'>32.5.1  MMC计算机管理</a></div><div style='float:right;width:49%'>·<a href='100165806.htm'>32.5.2  net.exe</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?