在不更新Web.config的情况下添加WCF Web服务

时间:2010-04-30 18:07:23

标签: visual-studio visual-studio-2008 wcf configuration

我正在尝试向我的项目添加WCF Web服务,每次添加新的Web服务时,它都会添加新的服务行为,新的服务配置,并更改web.config的格式。

是否可以在我的项目中添加新的WCF Web服务(.svc扩展名)而不更改我的web.config文件?我愿意手动添加我需要的信息。

1 个答案:

答案 0 :(得分:3)

是的,Visual Studio中Add Service Reference部分的行为是一个主要的PIA - 不幸的是,VS 2010中的单个iota没有被改进: - ((

更不幸的是,你无法告诉导入者单独留下你现有的东西 - 我所做的是创建我的web.config的备份,导入WCF服务并让导入器弄乱我的web.config,并且然后我再次把我的备份打到了乱七八糟的地方,然后手动进行必要的添加。

另一种方法是在命令行中使用svcutil.exe - 首先,您可以告诉它/noconfig并跳过搞乱您的配置(或者您可以将推荐配置输出到单独的配置中使用不同的名称),其次,它会愉快地为您创建C#或VB.NET文件中的客户端代理服务类,随时可以使用。

但是 - 当然您可以手动添加所有必要的信息!

在典型的客户端配置中,最重要的一点是<client>标签 - 只需添加您需要的任何内容 - 使用“WCF的ABC” - (A)地址,(B)inding,( C)ontract:

<client>
   <endpoint name="something-useful"
             address="your-address-on-the-server"
             binding="wsHttpBinding"  -- or whatever it is you're using
             contract="IYourServiceContract" />

这是您需要的最小客户端配置。其他任何东西都只是额外的东西,需要时使用。这显然使用了绑定的所有默认设置。

以下是两个非常好的视频,展示了如何进行大量的手动WCF配置 - 听起来很可怕,结果比破解VS导入器创建的混乱要容易得多....