2013-08-25 97 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,但我並不指望有任何問題。只要我會這樣做。如果需要任何額外的步驟,我會更新。

相關問題