我有1个c#Console应用程序项目,它有Program.cs(包含main方法),main方法简单调用web服务方法并在控制台上显示字符串。
通过右键单击并添加服务引用它,项目中添加了服务引用。
当从Visual Studio以调试模式执行控制台应用程序时,它按预期工作。
当从/ bin / debug中找到的.exe执行控制台应用程序时,它按预期工作。
到目前为止一切顺利。
问题:
当项目被复制到系统(您可以将其称为生产环境),实际执行此.exe时,它会在创建服务代理对象的确切行中失败。 Program.cs中的行是:
ProjectName.ServiceReference.ServiceClient service = new ProjectName.ServiceReference.ServiceClient();
我知道它在这里失败了,因为我有Console.Writeline(“某些行”);在上述行之前和之后。我可以看到代理行之前的Console.Writeline,不久之后就崩溃了......
我认为这是因为引用服务的引用路径,我可以做任何改变路径的事情,或者确认路径问题是可疑的...... ??
任何想法都会出错...... ???
答案 0 :(得分:0)
无法更新服务引用的配置 以下问题:无法识别的元素 “extendedProtectionPolicy”。 (App.config / Web.config)
似乎没有一个非常明确的理由说明为什么会这样 但它似乎与Windows 7有关。我不确定是否 Win7附带的.NET框架有一些不同的设置或 WCF配置策略文件的模板,但似乎是 罪魁祸首。也许win.and上的machine.config文件是不同的 WCF配置工具使用machine.config作为某种方式 政策模板。
修复很烦人(因为每次你构建你的解决方案 Windows 7然后在Vista上重建你必须重做这个。)
删除该行:
<extendedProtectionPolicy policyEnforcement="Never" />
来自客户端和WCF上的App / Web.config文件 服务器的Web.config文件。