我正在尝试向我的项目添加WCF Web服务,每次添加新的Web服务时,它都会添加新的服务行为,新的服务配置,并更改web.config的格式。
是否可以在我的项目中添加新的WCF Web服务(.svc扩展名)而不更改我的web.config文件?我愿意手动添加我需要的信息。
答案 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导入器创建的混乱要容易得多....