我在編程WCF服務方面很新,所以我希望如果你回答我的問題 - 你會考慮到這一點,並向我解釋,就像我是一個孩子(wcf服務的傻瓜: )。我有一個現有的WCF服務,我需要連接到。我應該做我自己的WCF服務,它將與現有的服務進行通信並共享一些已經在現有服務中定義的請求和響應對象。任何人都可以告訴我如何做到這一點(建立兩者之間的通信,並在服務中使用與現有服務相同類型的對象),一步一步?我試圖在網上找到答案,但它有點混亂(引用,使用合約......)。正如我所說,你可以自由地解釋,如果你想成爲一個真正的初學者。任何幫助都比歡迎...使用現有的WCF服務
0
A
回答
2
「我應該做我自己的WCF服務,它將與現有的服務進行通信並共享一些已經在現有服務中定義的請求和響應對象。」 - 這聽起來像你需要創建一個客戶端連接到服務(見下面如何創建客戶端)。您可以創建WCF服務與其他服務進行通信,但您需要的位數多於此格式允許的位置。
您可以通過WCF examples加速WCF。在示例中的WF_WCF_Samples \ WCF \ Basic下,您可以找到許多服務/客戶端設置,您應該先通過這些設置。 MSDN Magazine有大量關於此主題的文章。
在事物10,000英尺的看法:
客戶端 - 要消費服務創建一個測試控制檯應用程序。在項目中添加服務引用(當您右鍵單擊引用時,您將看到該選項)。將Service Reference對話框的地址指向您想要使用的服務,並且會發生很多事情。最後的結果是,你可以調用服務的方法對你的服務有類似下面
static void Main(string[] args)
{
var proxy = new ServiceReference1.Service1Client();
var test = proxy.GetData(1);
}
服務(其中服務1將什麼都服務於您呼叫代替) - 你只會創建方法和類型的接口,那麼裝飾這個接口的屬性,例如:
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: Add your service operations here
}
這些是您的serive可以執行的操作(OperationContract)。服務方法可以返回原始類型或複雜類型(字符串與CompositeType)以及複雜或原始的參數。
你會實現這個合同:
public class Service1 : IService1
{
public string GetData(int value)
{
throw new ApplicationException("Boom");
return string.Format("You entered: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite == null)
{
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
}
}
接下來您需要託管服務。根據您的託管要求,您有很多選擇來完成此操作。你可以做的最簡單的託管是使用控制檯應用程序:
class Program
{
static void Main(string[] args)
{
var host = new ServiceHost(typeof(Service1), new Uri("http://localhost:8999/"));
host.AddServiceEndpoint(typeof(IService1), new BasicHttpBinding(), "");
var metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (metadataBehavior == null)
{
metadataBehavior = new ServiceMetadataBehavior();
metadataBehavior.HttpGetEnabled = true;
host.Description.Behaviors.Add(metadataBehavior);
}
host.Open();
Console.WriteLine("Running..");
Console.ReadLine();
}
}
相關問題
- 1. 使用WCF發現來發現域中的非WCF Windows服務
- 2. Azure WCF服務使用Azure WCF服務
- 3. 將現有WCF服務轉換爲Azure WCF服務
- 4. 如何使用現有的wsdl動態調用WCF服務?
- 5. 使用WCF服務
- 6. WCF Web服務和從數據庫檢索 - 使用現有的asp.net服務層?
- 7. 使用帶有加密的HTTP協議實現WCF服務
- 8. 使用Wcf服務的Tcp服務器
- 9. WCF RIA服務和現有庫
- 10. 使用mod_mono的WCF服務
- 11. 使用SSL的WCF服務
- 12. 使用Windows服務的WCF
- 13. WCF - 我可以使用現有類型通過我的WCF服務
- 14. 使用JQuery調用WCF服務時WCF服務調用失敗
- 15. 實現異步WCF服務
- 16. 實現在WCF服務
- 17. 添加發現WCF服務
- 18. WCF服務發現範圍
- 19. 使用WCF服務訪問承載WCF服務的Windows服務中的數據
- 20. 從現有API自動生成服務器端WCF服務
- 21. 啓用WPF應用程序訪問現有的WCF RIA服務
- 22. WCF:服務調用服務
- 23. 如何使用WCF服務
- 24. WinRT - 使用WCF服務
- 25. 遠程使用WCF服務
- 26. 如何使用WCF服務
- 27. 使用遠程WCF服務
- 28. WP7使用WCF服務
- 29. 創建使用WCF服務
- 30. WCF windows服務使用https
請,任何人...... –