启动流程:Console Application和Web Service之间的区别

时间:2012-04-06 13:35:17

标签: c# asp.net web-services

我想运行一个带有命令行参数的GUI程序,它通过添加一些xml标签来处理文本。所以文本必须在文件系统上,并且xml在同一目录中创建。我试过了两个:控制台应用程序和Web服务。为什么WS不起作用?我该如何调试呢?

此代码按我的意思运行:

using System.Diagnostics;
using System.IO;

namespace ConsoleApplication1
{
  class Program
  {
    private static void ExecuteConsoleApp(string filepath)
    {
      string dir = @"E:\temp\";

      ProcessStartInfo startInfo = new ProcessStartInfo();
      startInfo.FileName = dir + @"App.exe";
      startInfo.Arguments = "EN /R /U /F\"" + filepath + "\"";

      Debug.WriteLine(startInfo.FileName + " " + startInfo.Arguments);

      using (Process exeProcess = Process.Start(startInfo))
      {
         exeProcess.WaitForExit(5000); // Wait a while
         exeProcess.Kill(); // Then kill 
      }
    }

    static void Main(string[] args)
    {
      ExecuteConsoleApp(@"E:\temp\temp.txt");
    }
  }
}

为什么这个没有?我的意思是该进程是在Session ID = 0中创建的,但是没有GUI而且没有xml:我不知道发生了什么......

using System.IO;
using System.Diagnostics;
using System.ServiceModel.Activation;

namespace WCF_Exalead
{
  [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
  public class Service : IService
  {
    public void GetXml()
    {
      ExecuteConsoleApp(@"E:\temp\temp.txt");
    }

    private static void ExecuteConsoleApp(string filepath)
    {
      string dir = @"E:\temp\";

      ProcessStartInfo startInfo = new ProcessStartInfo();
      startInfo.FileName = dir + @"App.exe";
      startInfo.Arguments = "EN /R /U /F\"" + filepath + "\"";

      Debug.WriteLine(startInfo.FileName + " " + startInfo.Arguments);

      using (Process exeProcess = Process.Start(startInfo))
      {
         exeProcess.WaitForExit(5000); // Wait a while
         exeProcess.Kill(); // Then kill 
      }
    }
  }
}

更新:两次运行之间的唯一区别是当第二个运行SessionId = 0时,App.exe在SessionID = 1的第一个代码中运行。

1 个答案:

答案 0 :(得分:1)

这不是Web服务的工作方式。名称“Web服务”和“Windows服务”确实非常相似,但它们是非常不同的应用程序类型。

Web服务没有UI。它是一个位于Web服务器上并公开方法的应用程序。您可以使用各种通信协议(如SOAP)通过http调用这些方法,它们将返回数据。

如果您愿意,本文将介绍如何使用Web服务。 Introduction to Web Services