找不到默认端点元素

半城伤御伤魂 提交于 2020-02-28 05:56:14

我已将代理添加到VS2008 / .NET 3.5解决方案的Web服务。 构造客户端.NET时,会引发以下错误:

在ServiceModel客户端配置部分中找不到引用合同'IMySOAPWebService'的默认终结点元素。 这可能是因为没有为您的应用程序找到配置文件,或者是在client元素中找不到与该协定匹配的端点元素。

搜索此错误告诉我在合同中使用完整的名称空间。 这是带有完整名称空间的我的app.config:

<client>
  <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
            binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding"
            contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" />
</client>

我在本地运行XP(我之所以这么说是因为许多Google命中都提到了win2k3)app.config已复制到app.exe.config,所以这也不是问题。

有什么线索吗?


#1楼

如果您使用的是使用PRISM框架的WPF应用程序,则配置应存在于您的启动项目中(即,引导程序所在的项目中)。


#2楼

我曾经遇到这个问题。 这是因为我仍在开发使用WCF服务的接口。 我配置了测试应用程序并继续开发。 然后在开发中,我更改了一些服务的名称空间。 所以我仔细检查了web.config中的“ system.serviceModel->客户端->端点->合同”以匹配WCF类。 然后问题解决了。


#3楼

这使我发疯。

我在WCF中使用Silverlight 3 Prism(CAB)

当我在棱镜模块中调用WCF服务时,出现相同的错误:

在服务模型客户端配置部分中找不到引用合同“ IMyService”的默认端点元素。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与该合同匹配的端点元素

事实证明,它是在Shell的.xap文件中查找ServiceReferences.ClientConfig文件,而不是在模块的ServiceReferences.ClientConfig文件中。 我在我的Silverlight Shell应用程序中添加了端点并将其绑定到现有的ServiceReferences.ClientConfig文件(它称为它自己的WCF服务)。

然后,我必须重建Shell应用程序,以为Web项目的ClientBin文件夹生成新的.xap文件。

现在这行代码终于可以工作了:

MyServiceClient myService = new MyServiceClient();

#4楼

请允许我再添加一件事。 ( 汤姆·海格的答案已经暗示了这一点,但我想明确地说)

我的web.config文件具有以下定义:

<protocolMapping>
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

我已经使用basicHttpsBinding作为一个引用,但是后来我添加了一个新的引用,该引用需要basicHttpBinding(否)。 我要做的就是将其添加到我的protocolMapping ,如下所示:

<protocolMapping>
    <add binding="basicHttpBinding" scheme="http" />
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

正如LR正确指出的那样,这需要在正确的位置定义。 对我来说,这意味着在我的单元测试项目的app.config中以及在主服务项目的web.config中。


#5楼

我在WCF服务已添加到类库中的ASP.NET应用程序中收到此错误,该类库已作为bin文件夹中引用的.dll文件添加到ASP.NET应用程序中。 要解决该错误,需要将引用WCF服务的类库中app.config文件中的配置设置复制到ASP.NET站点/应用程序的web.config设置中。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!