[color=#FF0000]把winform做为windows服务然后在asp.net中调用服务程序。[/color]
然后在asp.net程序中调用这个服务并且得到服务返回的数据。请问各路朋友,这个用那些方法啊?
先谢谢啦。

解决方案 »

  1.   

    问题补充:就是调用服务的时候是接收参数,然后执行 再返回结果。
    相当于 windows服务是一个”函数“ 或者充当某个功能。
      

  2.   

    那么,为什么一定要windows服务呢?DLL、WebService都可以
      

  3.   

    新建一个Windows服务项目。这样VS会提供一个空白服务的骨架。将WinForms程序的业务逻辑提取出来,放入一个独立的线程,在服务的 Service_Startup() 里面启动工作线程,填入业务逻辑代码。在 Service_Stop() 里面停止线程,完成清理。ASP.NET和Windows服务的通讯(调用),可以依赖注册表、管道,或者网络。注册表是最简单的。
      

  4.   


    问题是在asp.net中 微软的SpVoice  的 一些事件例如,Viseme,Word等是不能触发出来的。
    只能用用winform才能触发出事件出来啊。想法是吧winform做成windows服务 , 这样在asp.net客户端 调用就得了啊。高手请来解决这个问题啊。
      

  5.   

    可以通过注册表、中间文件或者asp.net被动调用等方式来解决,基本的思路就是winform或者服务每隔一段时间访问下中间文件,或者访问asp.net,然后asp.net去修改中间文件,得到对winform的调用
      

  6.   


    非常简单,不需要实例。点几下鼠标,默认微软生成的空白服务就是一个简单的实例。
    有不明白,可以查阅MSDN。
      

  7.   

    在winform中是这样使用委托的: private void Form1_Load(object sender, EventArgs e)
            {
                Voice.Phoneme += new _ISpeechVoiceEvents_PhonemeEventHandler(Voice_Phoneme);
                Voice.AudioLevel += new _ISpeechVoiceEvents_AudioLevelEventHandler(Voice_AudioLevel);
            }         void Voice_Viseme(int StreamNumber, object StreamPosition, int Duration, SpeechVisemeType NextVisemeId, SpeechVisemeFeature Feature, SpeechVisemeType CurrentVisemeId)
            {
                ShowEvent("Voice_Viseme..."+CurrentVisemeId.ToString());
                int Temp = (int)CurrentVisemeId;
                VisemePicture.Image = MouthImgList.Images[Temp ];  //CurrentVisemeId: 0-21            if (Temp  % 6 == 2) VisemePicture.Image = MouthImgList.Images[22];
                if (Temp  % 6 == 5) VisemePicture.Image = MouthImgList.Images[23];        }
    ....
      那如果不在winform中 而是在windows服务或者是web service中该如何使用这样的委托啊
      

  8.   

    MSDN上有完全的实例 你的原有的代码基本不需要改动的