精华内容
下载资源
问答
  • 使用CMD 注册、反注册服务

    千次阅读 2016-05-16 11:28:46
    网上很多的注册,反注册dll的方法,但是对于服务相对较少,找了很久,在这里记录下方法,防止遗忘~ 反注册:"C:\Program Files (x86)\HTUpdate\HTLUpdateSecService.exe" -UnregServer 注册:"C:\Program Files ...

    网上很多的注册,反注册dll的方法,但是对于服务相对较少,找了很久,在这里记录下方法,防止遗忘~

    反注册:"C:\Program Files (x86)\HTUpdate\HTLUpdateSecService.exe" -UnregServer

    注册:"C:\Program Files (x86)\HTUpdate\HTLUpdateSecService.exe"  -service

    展开全文
  • 注册和反注册代码 package utils import ( consulapi "github.com/hashicorp/consul/api" "log" ) var ConsulClient *consulapi.Client func init() { config := consulapi.DefaultConfig() config.Address =...

    注册和反注册代码

    package utils
    
    import (
        consulapi "github.com/hashicorp/consul/api"
        "log"
    )
    
    var ConsulClient *consulapi.Client
    
    func init() {
        config := consulapi.DefaultConfig()
        config.Address = "192.168.3.14:8500"
        client, err := consulapi.NewClient(config) //创建客户端
        if err != nil {
            log.Fatal(err)
        }
        ConsulClient = client
    }
    
    func RegService() {
        reg := consulapi.AgentServiceRegistration{}
        reg.Name = "userservice"     //注册service的名字
        reg.Address = "192.168.3.14" //注册service的ip
        reg.Port = 8080              //注册service的端口
        reg.Tags = []string{"primary"}
    
        check := consulapi.AgentServiceCheck{}         //创建consul的检查器
        check.Interval = "5s"                          //设置consul心跳检查时间间隔
        check.HTTP = "http://192.168.3.14:8080/health" //设置检查使用的url
        reg.Check = &check
    
        err := ConsulClient.Agent().ServiceRegister(&reg)
        if err != nil {
            log.Fatal(err)
        }
    
    }
    
    func UnRegService() {
        ConsulClient.Agent().ServiceDeregister("userservice")
    }
    service退出时优雅反注册service
    package main
    
    import (
        "fmt"
        httptransport "github.com/go-kit/kit/transport/http"
        mymux "github.com/gorilla/mux"
        "gomicro/Services"
        "gomicro/utils"
        "log"
        "net/http"
        "os"
        "os/signal"
        "syscall"
    )
    
    func main() {
        user := Services.UserService{}
        endp := Services.GenUserEnPoint(user)
    
        serverHandler := httptransport.NewServer(endp, Services.DecodeUserRequest, Services.EncodeUserResponse) //使用go kit创建server传入我们之前定义的两个解析函数
    
        r := mymux.NewRouter()
        //r.Handle(`/user/{uid:\d+}`, serverHandler) //这种写法支持多种请求方式
        r.Methods("GET", "DELETE").Path(`/user/{uid:\d+}`).Handler(serverHandler)
    
        r.Methods("GET").Path("/health").HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
            writer.Header().Set("Content-type", "application/json")
            writer.Write([]byte(`{"status":"ok"}`))
        })//这种写法仅支持Get限定只能Get,DELETE请求
        errChan := make(chan error)
        go func() {
            utils.RegService() //调用注册服务程序
            err := http.ListenAndServe(":8080", r)
            if err != nil {
                log.Println(err)
                errChan <- err
            }
        }()
        go func() {
            sigChan := make(chan os.Signal)
            signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
            errChan <- fmt.Errorf("%s", <-sigChan)
        }()
        getErr := <-errChan //只要报错 或者service关闭阻塞在这里的会进行下去
        utils.UnRegService()
        log.Println(getErr)
    }
    
    展开全文
  • 请注意下面程序中的黑体部分:   package irdc.EX06_05; import android.app.Activity; import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;...

    请注意下面程序中的黑体部分:

     

    package irdc.EX06_05;

    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.telephony.SmsMessage;
    import android.widget.TextView;
    import android.widget.Toast;

    public class EX06_05 extends Activity
    {
      /*声明一个TextView,String阵在与两个文字字符串变量*/
      private TextView mTextView1;
      public String[] strEmailReciver;
      public String strEmailSubject;
      public String strEmailBody;
      /* 系统接收短信的广播ACTION常数 */
      private static final String HIPPO_SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED";
      private mSMSReceiver mReceiver01;
     
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState)
      {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        /*透过findViewById构造巳建立TextView对象*/
        mTextView1 = (TextView) findViewById(R.id.myTextView1);
        mTextView1.setText("等待接收短信...");
       
      }
     
      public class mSMSReceiver extends BroadcastReceiver
      {
        /*声明静态字符串,并使用android.provider.Telephony.SMS_RECEIVED作为Action为短信的依据*/
        private static final String mACTION = "android.provider.Telephony.SMS_RECEIVED";
        private String str_receive="收到短信!";
        private String strRet = "";
       
        @Override
        public void onReceive(Context context, Intent intent)
        {
          // TODO Auto-generated method stub
          Toast.makeText(context, str_receive.toString(), Toast.LENGTH_LONG).show();
          /*判断传来Intent是否为短信*/
          if (intent.getAction().equals(mACTION))
          {
            /*构造一个字符串变量sb*/
            StringBuilder sb = new StringBuilder();
            /*接收由Intent传来的数据*/
            Bundle bundle = intent.getExtras();
            /*判断Intent是有资料*/
            if (bundle != null)
            {
              /* pdus为 android内建短信参数 identifier
               * 透过bundle.get("")并传pdus的对象*/
              Object[] myOBJpdus = (Object[]) bundle.get("pdus");
             
              /*构造短信对象array,并依据收到的对象长度来建立array的己弋*/
              SmsMessage[] messages = new SmsMessage[myOBJpdus.length]; 
             
              for (int i = 0; i<myOBJpdus.length; i++)
              { 
                messages[i] = SmsMessage.createFromPdu ((byte[]) myOBJpdus[i]); 
              }
             
              strRet = "";
              /* 将送来的短信安并自定义信息在StringBuilder当中 */ 
              for (SmsMessage currentMessage : messages)
              {
                strRet = "接收到来自:"+currentMessage.getDisplayOriginatingAddress()+" 传来的短信"+currentMessage.getDisplayMessageBody();
                sb.append("接收到来自:\n"); 
                /* 发信人的电话号码 */
                sb.append(currentMessage.getDisplayOriginatingAddress()); 
                sb.append("\n------传来的短信------\n"); 
                /* 取得传来短信的BODY */ 
                sb.append(currentMessage.getDisplayMessageBody());
              } 
            }      
            /* 以Notification(Toase)显示短信内容  */
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();
           
            /*自定义Intent来执行寄送E-mail的实现*/
            Intent mEmailIntent = new Intent(android.content.Intent.ACTION_SEND); 
            /*设定邮件格式为"plain/text"*/
            mEmailIntent.setType("plain/text");
           
            /*取得EditText01,02,03,04的值作为收件,附件,主题,内容*/
            String strEmailReciver = "jay.mingchieh@gmail.com";
            String strEmailSubject = "有几条短信!!";
           
            /*将取得的?串放丈mEmailIntent中*/
            mEmailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);
            mEmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);
            mEmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strRet);
            context.startActivity(Intent.createChooser(mEmailIntent, getResources().getString(R.string.str_message)));
            mTextView1.setText(getResources().getString(R.string.str_message));
          }
        }
      }

      @Override
      protected void onPause()
      {
        // TODO Auto-generated method stub
        super.onPause();
        unregisterReceiver(mReceiver01);
      }
     
      @Override
      protected void onResume()
      {
        // TODO Auto-generated method stub
        IntentFilter mFilter01;
        mFilter01 = new IntentFilter(HIPPO_SMS_ACTION);
        mReceiver01 = new mSMSReceiver();
        registerReceiver(mReceiver01, mFilter01);
        super.onResume();
      }
     
    }

     

     

    展开全文
  • //注册BOOL Install(char *szServiceName){ if (IsInstalled()) return TRUE; //打开服务控制管理器 SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (hSCM == NULL) { MessageBox...

    //注册

    BOOL Install(char *szServiceName)
    {
     if (IsInstalled())
      return TRUE;

     //打开服务控制管理器
     SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
     if (hSCM == NULL)
     {
      MessageBox(NULL, _T("Couldn't open service manager"), szServiceName, MB_OK);
      return FALSE;
     }

     // Get the executable file path
     TCHAR szFilePath[MAX_PATH];
     ::GetModuleFileName(NULL, szFilePath, MAX_PATH);

     char szDependence[100];
     strcpy_s(szDependence, sizeof(szDependence), "MSSQL$SQLEXPRESS");//表示该服务对SQLServer的依赖

     //创建服务
     SC_HANDLE hService = ::CreateService(
      hSCM, szServiceName, szServiceName,
      SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
      SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
      szFilePath, NULL, NULL, _T(""), NULL, NULL);

     if (hService == NULL)
     {
      ::CloseServiceHandle(hSCM);
      MessageBox(NULL, _T("Couldn't create service"), szServiceName, MB_OK);
      return FALSE;
     }

     ::CloseServiceHandle(hService);
     ::CloseServiceHandle(hSCM);
     return TRUE;
    }

     

    //反注册

    BOOL Uninstall(char *szServiceName)
    {
     if (!IsInstalled())
      return TRUE;

     SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

     if (hSCM == NULL)
     {
      MessageBox(NULL, _T("Couldn't open service manager"), szServiceName, MB_OK);
      return FALSE;
     }

     SC_HANDLE hService = ::OpenService(hSCM, szServiceName, SERVICE_STOP | DELETE);

     if (hService == NULL)
     {
      ::CloseServiceHandle(hSCM);
      MessageBox(NULL, _T("Couldn't open service"), szServiceName, MB_OK);
      return FALSE;
     }
     SERVICE_STATUS status;
     ::ControlService(hService, SERVICE_CONTROL_STOP, &status);

     //删除服务
     BOOL bDelete = ::DeleteService(hService);
     ::CloseServiceHandle(hService);
     ::CloseServiceHandle(hSCM);

     if (bDelete)
      return TRUE;

     return FALSE;
    }

     

    先贴上试试,下回再加注释。还会加上启动服务和停止服务的部分

    展开全文
  • 使用命令行注册和反注册OPC 服务器的实现方法 Method of Registering and Unregistering OPC Server by Command Line 作者:詹根基陈冲 Mail:zhan826@hotmail.com<br />  【内容摘要】本文...
  • 在[开始-运行]中输入CMD,进入控制台,进入[TOMCAT_INSTALL_PATH]/bin目录,运行“service install tomcat”注册,然后,运行“service uninstall tomcat”反注册
  • //加入自定义的反注册逻辑 return joinPoint.proceed(); } @Around("renewAspect()") public Object renew(ProceedingJoinPoint joinPoint) throws Throwable  { logger.info("renewAspect()"); logger.info(...
  • 编写这种服务程序,调试起来非常的麻烦,而且每次有所变化后,还得频繁的去执行installutil和installutil/u命令,实际上,通过编写一些“生成事件”来大大简化这其中的烦琐工作.这里,我们在“生成事件”里编写如下事件:...
  • 附件为 集 C# 操作IIS(IIS6.0 和IIS 7.0 以下版本) C# 安装和反安装 Windows 服务 C# 注册GAC 反注册GAC 等源代码 附件为用于 IS调用的一个应用程序,所以窗口是透明.且代码都在 Form_Load 中执行,也有传入参数.
  • 数据中心反注册

    2009-07-15 08:17:00
    一般没有用的数据中心直接进入后台管理控制台后,选择数据中心,然后选中你所需要删除的数据中心先反部署,然后进行反注册即可。如果不行的话,点击工具菜单,选择部署应用,选择所要删除的数据中心所在的服务器,...
  • freeswitch反注册记录

    2016-04-19 17:33:00
    1、FreeSWITCH 服务器开一个账号,比如 5000 internal , O口 SIP设置页面按照网关注册 5000 的账号信息。 2、dialplan 中添加拨号规则: <condition field="destination_number" expression="^(\d{8,12})$"&...
  • Regsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。 命令格式 Regsvr32 [/s] [/n] [/i[:cmdline]] dllname /u 卸载安装的控件,卸载服务器注册; /s 注册成功后不...
  • Regsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。 命令格式 Regsvr32 [/s] [/n] [/i[:cmdline]] dllname /u 卸载安装的控件,卸载服务器注册; /s 注册成功后不显示操作成功...
  • 前期回顾 某天晚上运维老哥反映,公司某业务系统接到大量的注册...web服务架构: Front ->cdn-> nginx reverse proxy ->waf-> WebServer 踩过的坑 封禁IP **思路:**在waf上配置封禁策略,当请求次数达到30
  • Regsvr 32命令详解(DLL、OCX、CPL文件的注册和反注册工具)Regsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。 命令格式: Regsvr32 [/s] [/n] [/i[:cmdline]] dllname /u 卸载...
  • WIN2K下COM组件的反注册方法 大家在编写ASP或VB应用程序时经常会用到COM组件。但是组件的个数或版本写多了,机器上注册的组件就会非常混乱。有时甚至都不知道程序调用的是那个版本的组件。下面就向大家介绍几种可以...
  • 1 微服务的注册中心1.1 概述注册中心可以说是微服务架构中的“通讯录”,它记录了服务服务地址的映射关系。在分布式架构中,服务会...注册中心一般包含如下几个功能:1️⃣服务发现:服务注册/反注册:保存服务...
  • 微服务架构中的注册中心类似我们生活中的“通信录”,它记录了服务消费者和服务提供者的地址,端口等信息。...服务注册/反注册:保存服务提供者和服务调用者的信息 服务订阅/取消订阅:服务调用者订阅服务提...
  • window 注册服务方式 一、 regsvr 方式 直接在 程序目录执行: Regsvr 32 命令是Windows中控件文件 ( 如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。 命令格式: Regsvr32 [/s] [/n] [/i[:cmdline]] ...
  • 首先要有固定公网IP地址、可用域名(最好不要被其它服务所用),例如您有iloveyou.com的域名,您可以要求您的域名注册商为您添加一个mx.iloveyou.com的域名并将其A记录指向您的SMTP服务器出口公网IP地址,如:202....
  • Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以过来从Eureka Server拉取注册表,从而知道其他服务在哪里。 服务注册:在服务治理框架中,通常会有一个注册...
  • 但是组件的个数或版本写多了,机器上注册的组件就会非常混乱。有时甚至都不知道程序调用的是那个版本的组件。下面就向大家介绍几种可以彻底清除系统中已经注册的组件的方法。一. 如何知道系统中有哪些组件已经被...
  • 阅读好文章,请随手点击上面,关注我们,免费订阅 最近龙哥很火,滴滴也很火;只能为花季少女感到可惜,为杀龙哥的小伙祈祷;希望国家管管这些有钱人,让我们这些...
  • 微服务的注册中心author:QYX注册中心可以说是微服务架构中的通讯录,它...在微服务架构里主要起到了协调者的一个作用,注册中心一般包含如下几个功能:1、服务发现:服务注册/反注册:保存服务提供者和服务调用者的信...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 654
精华内容 261
关键字:

反注册服务