在不更新Web.config的情况下添加WCF Web服务
问题描述:
我正在尝试将WCF Web服务添加到我的项目中,并且每次添加新的Web服务时都会添加新的服务行为,新的服务配置以及更改格式我的web.config。在不更新Web.config的情况下添加WCF Web服务
是否有可能在我的项目中添加新的WCF Web服务(.svc扩展名)而不更改我的web.config文件?我愿意手动添加我需要的信息。
答
是,在Visual Studio中Add Service Reference
部分的行为是一个重大的PIA - 它在VS 2010中不是得到改善单一丝毫,遗憾的是: - ((
而更不幸的是,你真的不能告诉导入程序只保留现有的东西 - 我所做的是创建我的web.config的备份,导入WCF服务并让导入程序搞乱我的web.config,然后我只是将我的备份放在混乱的地方,然后去关于手动进行必要的添加
一种替代方法是在命令行上使用svcutil.exe
- 首先,您可以将其告知/noconfig
并跳过无用的wi (或者您可以将推荐配置输出到具有不同名称的单独配置中),其次,它会很高兴地在您的C#或VB.NET文件中为您创建客户端代理服务类,随时可以使用。
但是 - 当然你可以手动添加所有必要的信息!在一个典型的客户端配置中,最重要的一点是<client>
标签 - 只需添加任何你需要的 - 使用“ABC的WCF” - (A)地址,(B)插入,(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进口商造成的混乱更容易....
- DOTNET的岩石电视节目#122:Miguel Castro on Extreme WCF
- DOTNET的晃动的电视节目#135:Keith Elder Demystifies WCF