在ASP.NET应用程序中使用WCF http web服务

在ASP.NET应用程序中使用WCF http web服务,asp.net,.net,wcf,web-services,asmx,Asp.net,.net,Wcf,Web Services,Asmx,我们有一个用ASP.NET编写的web应用程序,其中包含一些asmx web服务。现在,我们想向她的web服务中添加一些,这些服务将有不同于旧服务的用途。我们决定使用WCF框架 我的同事在我们的解决方案中创建了一个新项目,在那里他实现了web服务。不幸的是,他没有使用WCF*项目模板,而是使用以下方法启动WS的普通控制台应用程序: public static void StartWS() { if (_selfHost!=null) StopWS(); Uri baseAdre

我们有一个用ASP.NET编写的web应用程序,其中包含一些asmx web服务。现在,我们想向她的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应用程序(解决方案中的另一个项目)

  • 最简单的方法是什么
  • 我如何确保旧的asmx服务和新的WCF服务都可以运行

  • 最终,解决方案并没有那么难:

  • 在web应用程序项目中,选择添加新项目->WCF服务。这将创建Service.svc、Service.svc.cs和IService.cs。它还修改您的web配置。现在,您可以尝试使用自动生成的方法
    DoWork
    。只需使用SoapUI应用程序之类的工具即可实现这一点。您还可以尝试浏览到svc文件并检查wsdl(例如
    http://localhost:2753/WSIntegration/Service1.svc?wsdl

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

  • 就这些。我还没有将解决方案部署到IIS,但我不认为会有任何问题。只要我这么做。如果需要任何额外的步骤,我将更新UNSOWER