“无法找到引用合同的默认端点元素”

时间:2011-08-05 11:37:03

标签: wcf error-handling endpoint

在卸载Windows应用程序期间调用webservice时,我收到错误

  

无法找到引用合同的端点元素   ServiceModel客户端配置中的ServiceReference2.IService1'   部分。这可能是因为找不到配置文件   您的应用程序,或者因为没有匹配此名称的端点元素   可以在客户端元素中找到。

我正在使用安装程序类,我在其中调用webservice客户端。以下是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()将调用包含帐户更新的webservice操作。

如何解决这个问题? 真正用这个问题补充

当我从另一个页面或另一个类文件中调用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文件中添加它?

2 个答案:

答案 0 :(得分:4)

在安装Service1Client

时,可能需要使用端点的名称
var sc = new webMiner.ServiceReference2.Service1Client("BasicHttpBinding_IService1");

或者,就像我的情况一样,你在解决方案的另一个项目中有另一个类和两个app.config类。因此,您需要在主app.config中复制/粘贴设计点和绑定。

答案 1 :(得分:0)

尝试更新服务引用,并检查客户端配置是否在启动项目配置文件中。