【问题标题】:Using WCF http web service in ASP.NET application在 ASP.NET 应用程序中使用 WCF http Web 服务
【发布时间】:2013-08-28 01:20:18
【问题描述】:

我们有用 ASP.NET 网络表单编写的网络应用程序和一些 asmx 网络服务。现在我们想添加一些 web 服务,它们的用途与旧的不同。我们决定使用 WCF 框架。

我的同事在我们的解决方案中创建了一个新项目,他在其中实施了 Web 服务。不幸的是他没有使用 WCF* 项目模板,而是普通的控制台应用程序,使用以下方法启动 WS:

public static void StartWS() {
  if (_selfHost!=null)
    StopWS();

  Uri baseAdress = new Uri(WSIntegrationService.ServerUrl);
  _selfHost = new ServiceHost(typeof(WSIntegrationService), baseAdress);
  _selfHost.AddServiceEndpoint(typeof(IWSIntegrationService), new WSHttpBinding(SecurityMode.None), WSIntegrationService.EndPointName);
  _selfHost.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = true });
  _selfHost.Open();
  logger.Info("Integration WS started on adress " + baseAdress);
}

现在我必须将项目集成到我们的 Web 应用程序(解决方案中的另一个项目)。

  1. 最简单的方法是什么?
  2. 如何确保旧的 asmx 服务和新的 WCF 服务都能正常运行?

【问题讨论】:

    标签: asp.net .net wcf web-services asmx


    【解决方案1】:

    最终解决方案并不难:

    1. 在 Web 应用项目中选择添加新项 -> WCF 服务。这应该会创建 Service.svc、Service.svc.cs 和 IService.cs。它还会修改您的网络配置。现在您可以尝试使用自动生成的方法DoWork 是否有效。只需使用类似 SoapUI 应用程序的东西来做到这一点。还可以尝试浏览到 svc 文件并检查 wsdl(例如http://localhost:2753/WSIntegration/Service1.svc?wsdl

    2. 删除文件 IService.cs 和 Service.csv.cs。修改 Service.svc 文件,使其仅包含对实现 WS 的类的引用,例如像这样:

    就是这样。我还没有将解决方案部署到 IIS,但我预计那里不会有任何问题。只要我这样做。如果需要任何其他步骤,我会更新答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2011-02-07
      • 2023-03-31
      • 1970-01-01
      • 2012-07-27
      相关资源
      最近更新 更多