【问题标题】:Create .NET 2.0 Standalone WebService创建 .NET 2.0 独立 Web 服务
【发布时间】:2015-08-26 14:14:55
【问题描述】:

我必须创建一个在 .NET 2.0 环境中的 C# 控制台应用程序中运行的 Web 服务。 我无法使用 WCF 或将目标系统升级到最新的 .NET 版本。

我用谷歌搜索了很多,但没有找到合适的。

有人有建议吗?

【问题讨论】:

  • 问那些坚持不升级的人,他们是否真的很高兴在一个已经离开mainstream support 近 4 年并且只有一点点多一点的基础上构建解决方案还剩一年的扩展支持。
  • 你能得到一个至少没有安装 .net 3.5.1 的操作系统吗?当然,这意味着操作系统超出了扩展支持范围。
  • 不幸的是,Web 服务也将安装在 Windows 2000 和 .net 2.0 的旧旧环境中。我们不允许更新 .net 或升级 o/s

标签: c# web-services .net-2.0


【解决方案1】:

这是一个关于如何在 Windows 服务中托管 Web 服务的旧示例。

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {

    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }

}

public partial class WindowsServiceToHostASMXWebService : ServiceBase
{
    public WindowsServiceToHostASMXWebService()
    {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Uri address = new Uri("soap.tcp://localhost/TestService");
            SoapReceivers.Add(new EndpointReference(address), typeof(Service ));
        }

        protected override void OnStop()
        {
            SoapReceivers.Clear();
        }
        static void Main()
        {
            System.ServiceProcess.ServiceBase[] ServicesToRun;
            // Change the following line to match.
            ServicesToRun = new System.ServiceProcess.ServiceBase[] { new WindowsServiceToHostASMXWebService() };
            System.ServiceProcess.ServiceBase.Run(ServicesToRun);
        }
    }

【讨论】:

  • 尽量避免发布仅链接的答案,因为它们被认为质量很差(并且链接将来可能会中断)
  • 如果您将其用于控制​​台应用程序,那将是该问题的实际答案。别忘了说明 OP 需要下载 WSE3.0 才能运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
相关资源
最近更新 更多