如何在C#中为基于Windows的系统制作WCF?

时间:2011-06-14 06:57:35

标签: c# html wcf

我想在c#中创建一个WCF应用程序或[应用程序],用于通过基于我的HTML的应用程序发送的响应查询。

假设我向url发送查询,他们通过调用已经安装在用户系统中的TCP socet来回应我。

你能告诉我可以通过HTML在本地调用它们吗?他们允许他们打电话吗。

我是否可以使用HTML,css,javascript调用WCF和WCF来响应查询。

2 个答案:

答案 0 :(得分:2)

WCF是一种通信框架,支持您提到的所有场景。可以从基于Web的技术和基于Windows的Web轻松访问WCF。 ]

修改

一个文件没有配置WCF服务。

using System.ServiceModel;
using System.ServiceModel.Description;
using System.Runtime.Serialization;
using System;

[ServiceContract]
public interface  AddStuff
{
    [OperationContract]
    int Add(int X,int Y);
}

public class opAddStuff : AddStuff
{
    public int Add(int X, int Y)
    {
        return X + Y;
    }
}

public class Pgm
{
    static void Main(string[] args)
    {
        string httpAddr = "http://127.0.0.1:6001/AddStuff";
        string netAddr= "net.tcp://127.0.0.1:5001/AddStuff";

        System.ServiceModel.ServiceHost SH = new ServiceHost(typeof(opAddStuff),new Uri(httpAddr));

        BasicHttpBinding B = new BasicHttpBinding();
        NetTcpBinding NB = new NetTcpBinding();

        SH.AddServiceEndpoint(typeof(AddStuff), B, httpAddr);
        SH.AddServiceEndpoint(typeof(AddStuff), NB, netAddr);



        System.ServiceModel.Description.ServiceMetadataBehavior smb = SH.Description.Behaviors.Find<ServiceMetadataBehavior>();
       // If not, add one
        if (smb == null)
            smb = new ServiceMetadataBehavior();

        smb.HttpGetEnabled = true;
        smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;

        SH.Description.Behaviors.Add(smb);
        SH.AddServiceEndpoint(  ServiceMetadataBehavior.MexContractName,  MetadataExchangeBindings.CreateMexHttpBinding(),  "mex");

        SH.Open();

        Console.WriteLine("Service at your service");
        string crap = Console.ReadLine();



    }
}

答案 1 :(得分:1)

这是一个足够简单的起点http://www.codeproject.com/KB/WCF/GettingStartedWithWCF.aspx

如果您想立即开始使用代码,请在Visual Studio中创建一个“WCF服务应用程序”类型的新项目。然后,您将获得可以运行的骨架服务。右键单击Service.svc文件 - &gt;浏览。服务“帮助”(蓝色主题)页面将在互联网浏览器中显示,并且您有一个正在运行的wcf服务。

该服务的代码位于Service.svc.cs文件中,该服务实现的合同位于IService.cs文件中。