2013-08-25 39 views
0

我们有用编写的web应用程序ASP.NET带有一些asmx Web服务的webforms。现在我们想要添加一些新的Web服务,这些服务将与旧服务不同。我们决定使用WCF框架。在ASP.NET应用程序中使用WCF http web服务

我的同事在我们的解决方案中创建了一个新项目,在那里他实现了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服务都可用?

回答

0

最终解决并不难:

  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,但我并不指望有任何问题。只要我会这样做。如果需要任何额外的步骤,我会更新。

相关问题