更新服务引用不起作用

Nit*_*amk 12 wcf proxy service-reference

我正在使用Visual Studio 2008并且有一个WCF客户端可以对抗WCF服务.它们都位于相同的Visual Studio解决方案中.在我更改了WCF合同之后,我想更新客户端上的服务引用,以便在代理中对合同进行更改.

我的问题是代理代码没有重新生成.

当我选择更新服务引用时,会发生以下情况:

  1. 将显示一个标题为"正在更新服务引用"参考名称'的对话框.该对话框有一个进度条.
  2. 进度条移动,对话框中的状态文本更改为"正在更新配置"
  3. 进度条移动了一点,状态文本被修改为"配置更新完成"

该对话框没有显示我将加速的文本"Generating\something \"(不记得确切的措辞).

如果我删除服务引用并再次添加它,则会正确生成代理.我使用与以前完全相同的设置添加服务,所以我认为这不是我可以通过更改客户端上的服务引用配置来解决的问题.

我怀疑的一件事可能是我在app.config中重命名了默认的wsHttpBindings.我还重命名了默认端点.这背后的原因是我需要多个端点,并且有一个端点名为'some-default-name',而一个端点有我自己的名字只是令人困惑.

删除服务并再次添加它的问题是Visual Studio在app.config(以及其他内容)中添加了一个不应该存在的新绑定.

以前有人见过这个问题吗?有谁知道它的解决方案?

Shi*_*iji 6

当我们遇到这个问题时,通常会出现以下错误之一:

  • 合同的大小已经增加,现在已经很大,以至于WCF配置不允许它被转移.
  • 已将一个新类添加到WCF接口,该类未标记为可序列化.
  • 有一个编译错误阻止代码构建,因此它使用旧的DLL

  • 不幸的是,这些都不适用于我.当我删除引用并再次添加它时,它工作得很好.如果合同太大或者WCF合同中存在任何错误,那么在删除/添加操作之后它将无效. (11认同)

Dou*_*ean 5

我遇到以下情况时遇到此问题:

  1. 我们的工作站连接到Active Directory域(几乎所有内容都使用Windows身份验证)
  2. 我正在尝试更新的服务引用托管在localhost上,并且在IIS Express下运行(因此应用程序池用户作为开发人员的个人域用户帐户运行)
  3. 另一位开发人员最近添加或更新了对项目的引用.

我弄清楚如何解决此问题的唯一方法是编辑该服务引用的configuration.svcinfo文件(您需要显示该项目的所有文件以在visual studio中查看它),找到以下部分:

userPrincipalName value="user@domain.com"
Run Code Online (Sandbox Code Playgroud)

并将用户更改为我自己的域用户.保存文件后,我可以更新引用,直到另一个开发人员更新服务引用(可能使用相同的解决方法).不幸的是,我无法找到解决这个问题的永久解决方案.