“找不到引用合同的默认端点元素”
Posted
技术标签:
【中文标题】“找不到引用合同的默认端点元素”【英文标题】:“Could not find default endpoint element that references contract” 【发布时间】:2011-10-20 19:14:25 【问题描述】:在卸载 Windows 应用程序期间调用 web 服务时出现错误
找不到引用合约的端点元素 ServiceModel 客户端配置中的 ServiceReference2.IService1' 部分。这可能是因为找不到配置文件 您的应用程序,或者因为没有匹配此名称的端点元素 可以在客户端元素中找到。
我正在使用我正在调用 Web 服务客户端的 Installer 类。以下是installer.cs的代码
源代码:
namespace webMiner
[RunInstaller(true)]
public partial class demoInstaller : Installer
SqlConnection conn = new SqlConnection("Data Source=servername;Initial Catalog=comp;User Id=abc;Password=******;");
public demoInstaller():base()
InitializeComponent();
AfterUninstall += new InstallEventHandler(AfterUninstallEventHandler);
public override void Uninstall(System.Collections.IDictionary savedState)
base.Uninstall(savedState);
Int32 flag = -1;
string keyName = "";
RegistryKey regeditkey = Registry.CurrentUser.OpenSubKey("sevenuser", RegistryKeyPermissionCheck.ReadWriteSubTree);
keyName = regeditkey.GetValue("currentuser").ToString();
webMiner.ServiceReference2.Service1Client sc = new webMiner.ServiceReference2.Service1Client();
flag = sc.unInstallOperation(keyName);
其中 unInstallOperation() 将调用包含更新帐户的 web 服务操作。
如何解决这个问题? 真的很讨厌这个问题
当我从另一个页面或另一个类文件调用 serviceclient 时,我没有问题,当我在卸载应用程序(即在安装程序类中)调用时,它会给我带来问题。这是我用过的app.config客户端配置代码
源代码:
<client>
<endpoint address="http://companyfind.info/RegWcfService/Service1.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
contract="IService1" name="BasicHttpBinding_IService1" />
</client>
是否需要在web服务的web.config文件中添加这个??
【问题讨论】:
【参考方案1】:您在创建 Service1Client 时可能需要使用端点的名称
var sc = new webMiner.ServiceReference2.Service1Client("BasicHttpBinding_IService1");
或者,就像我的情况一样,您在解决方案中的另一个项目中有另一个类和两个 app.config 类。因此,您需要在主 app.config 中复制/粘贴 enpoints 和 bindings 的描述。
【讨论】:
好的,这对我有用,但这不可能是正确的解决方案。必须有更好的做法。 >. 【参考方案2】:尝试更新服务引用,并检查客户端配置是否在启动项目配置文件中。
【讨论】:
是否需要在web服务的web.config文件中添加上面给出的客户端代码?? 尝试更新服务引用,客户端配置仅在启动项目配置文件中,但没有用以上是关于“找不到引用合同的默认端点元素”的主要内容,如果未能解决你的问题,请参考以下文章