返回首页


在WCF服务时,你曾经得到与您的app.config中的所有设置的困惑,你只是想抛出的文件?现在好了就可以了,我会告诉你如何。
。NET 4.0中,WCF允许开发人员接管其服务配置方法的公约。这意味着省略配置设置,将创建的。NET Framework在自己的位置默认,使您的服务完全可以和运营。
因此,让我们检查出它是如何做!
首先,创建一个新的WCF服务库项目,并调用它WcfZeroConfig:

现在,这是好位,删除App.config文件。只需右键单击该文件,选择"删除"??感觉很好权?!
WCF服务库项目模板使得两种方法可供我们默认情况下,这篇文章中,我们将用我们的例子中的getData(int值)的方法。
由于我们的WCF库现已完成,我们要添加另一个项目,我们的解决方案,主机服务。在生产中,您通常会使用IIS或Windows服务承载您的WCF服务库,但这个简单的例子,我们要使用一个控制台应用程序。
从Visual Studio主菜单,选择文件,新增GT GT;新建项目GT,Windows的GT;控制台应用程序和项目WcfHost名称:
{A2}
作为这个项目将作为东道主,我们需要将引用添加到System.ServiceModel大会和我们的WCF服务库项目。 WcfHost项目文件上右击,选择"添加引用",并选择System.ServiceModel框架:
{A3}
现在,选择的项目(在左上角),然后双击WcfZeroConfig和按关闭按钮。
{A4}
要完成的主机,复制和粘贴到Program.cs文件中下面的代码:

using System;

using System.ServiceModel;

using System.ServiceModel.Description;



namespace WcfHost

{

    class Program

    {

        static void Main(string[] args)

        {

            var host = new ServiceHost(typeof(WcfZeroConfig.Service1), 

			new Uri("http://localhost:8732/WcfZeroConfig"));



            host.Open();



            Console.WriteLine

		("Our service is currently running with the following config:");

            

            foreach (ServiceEndpoint se in host.Description.Endpoints)

                Console.WriteLine("A: {0}, B: {1}, C: {2}", 



		se.Address, se.Binding.Name, se.Contract.Name);



            Console.WriteLine("Press any key to end the service...");

            Console.ReadKey();

        }

    }

}

正如你可以看到,它需要一行代码来创建ServiceHost对象,通过在端点地址和一个单一的方法调用来打开主机通道,使服务可用。WCF(NET 4.0)
在启动主机,在幕后,将检测,没有约束力或合同已经提供,无论是在我们App.Config文件,或从我们的代码,并会提供默认值。从端点地址,该框架可以看到我们使用的是HTTP和将提供默认basicHttpBinding的约束力。 IService1合同类型也将推断Service1的具体类。
运行主机,选择WcfHost项目和按F5生成并运行应用程序。
{A5}我们现在已经准备好创建客户端应用程序消耗我们的WCF服务。从Visual Studio主菜单,选择文件,新增GT GT;新建项目GT,Windows的GT控制台应用程序,该项目命名为WcfClient: {A6}之前,你将需要添加System.ServiceModel框架(右单击项目文件GT??"添加引用"与WcfZeroConfig项目一起,这是使WcfClient项目是知道的WCF服务合同类型?代码> IService1??
要完成我们的客户,只需粘贴到Program.cs文件中的以下代码行: {C}
要完成我们的例子:你首先需要建立的解决方案,通过右击解决方案文件,并选择"生成解决方案。运行C:\ \ WcfZeroConfig \ WcfHost \ BIN \ DEBUG \ WcfHost.exe文件。最后,运行C:\ \ WcfZeroConfig \ WcfClient \ BIN \调试\ WcfClient.exe文件,并输入一个数字。
这个数字,然后被传递到我们的WCF服务和我们的客户收到的结果。
{A7}
完整的源代码是可用{A8}。{七}

回答

评论会员:JV9999 时间:2012/01/27
这将只工作在本地主机方案,已经在过去的工作方式完全相同。

当你要尝试运用上,机上的客户端一个主机连接机器B上(最常见的场景使用WCF时)那么它不会在所有工作的现实生活场景。所以你的想法是好的,但是当你真正开始使用它后,您已经创建了NET的默认代码(这是没有人可以使用),那么你仍然有配置...
评论会员:。StevenHollidge 时间:2012/01/27
喜JV9999,感谢抽出时间来看看我的文章。我已经更新了WcfClient.Program.cs的文件来调用服务,如果你的文章内的链接,你应该能够使用WCF服务从另一台机器下载的源代码。只要改变WcfClient创建的端点地址从localhost的主机IP地址​​,例如

从:VAR地址=新EndpointAddress("http://localhost:8732/WcfZeroConfig");
:VAR地址=新EndpointAddress("http://192.168.1.10:8732/WcfZeroConfig");

我写的文章,让人们知道。NET 4 WCF框架将提供许多设置自动默认值,如果省略。很多人会喜欢明确名称的配置,但我知道一些App.config文件可以变得有点吓人。希望这有助于!
修改上周日,3月13日,2011 8:15 PM
评论会员:JV9999 时间:2012/01/27
啊,那不给它一些更多的上下文。我会尝试指出这一点...现在喜欢你的介绍,我们可以做的一切,没有配置的解决方案{S8}