我有一个从类库引用的WCF Web服务。 在项目运行之后,当从类库中创建服务客户端对象时,我收到带有消息的InvalidOperationException:

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

我用来创建实例的代码是:

myServiceClient = new MyServiceClient();

MyServiceClient继承自的地方

System.ServiceModel.ClientBase

我该如何解决这个问题?

注意:我有一个单独的控制台应用程序,它只是创建相同的服务对象并调用它,它没有任何问题。

===============>>#1 票数:8

或者您可以在代码中设置端点:

http://msdn.microsoft.com/en-us/library/ms731862.aspx

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://url-to-service/");

// Create a client that is configured with this address and binding.
MyServiceClient client = new MyServiceClient(binding, address);

===============>>#2 票数:4 已采纳

这是我的类库的app.config文件:

您应该将此配置设置放到主应用程序的配置文件中。 .NET应用程序(调用您的类库)使用来自它自己的配置文件的数据,而不是来自库配置文件。

===============>>#3 票数:1

我有类似的情况。 我有一个叫做Web服务的类库,然后我有一个调用class-lib的.DLL的.EXE。 我认为这是.EXE的配置文件,而不是.DLL配置文件。

但正如理查德上面所说,我必须完全限定名称空间。 这有点痛苦。 以下是我改变的内容。 痛苦在于我必须在两个地方更改它,一个在创建服务引用时生成的reference.cs中,另一个在配置文件中生成。 因此,每次我更改Web服务并执行“更新引用”时,我都必须再次更改C#代码。

1)您必须实际更改reference.cs中的ConfigurationName,如下所示:

发件人: [System.ServiceModel.ServiceContractAttribute(Namespace = "http://TFBIC.RCT.BizTalk.Orchestrations", ConfigurationName = " RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations")]

收件人: [System.ServiceModel.ServiceContractAttribute(Namespace = "http://TFBIC.RCT.BizTalk.Orchestrations", ConfigurationName = "TFBIC.RCT.HIP.Components.RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations")]

2)然后还更改所有相关app.config中的“合同”值(对于.dll和.exe的),如下所示:

从:

<endpoint address = http://nxwtest08bt1.dev.txfb-ins.com/TFBIC.RCT.BizTalk.Orchestrations/WcfService_TFBIC_RCT_BizTalk_Orchestrations.svc binding =“wsHttpBinding”bindingConfiguration =“WSHttpBinding_ITwoWayAsync”contract =“RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations”name =“WSHttpBinding_ITwoWayAsync “>

至:

<endpoint address = http://nxwtest08bt1.dev.txfb-ins.com/TFBIC.RCT.BizTalk.Orchestrations/WcfService_TFBIC_RCT_BizTalk_Orchestrations.svc binding =“wsHttpBinding”bindingConfiguration =“WSHttpBinding_ITwoWayAsync”contract =“TFBIC.RCT.HIP.Components。 RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations“name =”WSHttpBinding_ITwoWayAsync“>

只是要清楚 - 我怎么知道完整命名空间是什么? 该程序的命名空间是TFBIC.RCT.HIP。 在其中,C#代码有一个额外的命名空间声明:

namespace RCTHipComponents

===============>>#4 票数:0

如果您发布了app.config文件,它可能会有所帮助,因为这种错误往往会指向<endpoint>块中的问题。 确保合约属性似乎适合您。

编辑:尝试完全限定合同价值; 使用完整的命名空间。 我认为这是必要的。

  ask by Serhat Ozgel translate from so

未解决问题?本站智能推荐:

1回复

Web服务与WCF

我想开发一个用于Java应用程序开发的Web服务或WCF .net应用程序。 哪个最适合java应用程序Web服务或WCF?为什么? 通过Java应用程序,它调用.net Web服务或WCF来获取数据并显示给客户端站点。 我很困惑,在这种情况下哪一个最好。
3回复

使用Soap客户端时出现InvalidOperationException

我已经在vs2008中使用添加服务引用对话框作为wsdl文件添加了。 实例化服务代理时,我收到一个InvalidOperationException及其以下文本(从德语翻译而来): 在服务模型引用客户端配置部分中,找不到合同“ ServiceName.ServiceInterf
3回复

尝试从WinForms访问WCF服务时出现MessageSecurityException

我有一个WinForms应用程序,它使用了托管在远程服务器上的WCF服务。 当我运行该应用程序时,它将运行并加载数据,但是在运行30秒或更长时间后,它将显示以下MessageSecurityException : 安全处理器无法在消息中找到安全标头。 这可能是因为该消息是不安全的故
1回复

Web服务从ASP.NET迁移到WCF后,从ASP.NET客户端调用WCF服务时出现HTTP状态404错误

当前,我们有许多使用ASP.NET客户端调用各种ASP.NET Web服务的客户。 我们希望在不影响客户的客户及其代理的情况下将Web服务迁移到WCF。 另外,我们要避免使用IIS托管服务。 我准备了一个简单的原型来检查我们是否能够实现这种迁移。 如果仅使用简单的Web服务名称空间(
1回复

创建wcf .svc服务时出错

我已经创建了下面给出的以下svc服务- 和Web配置配置是- 但是,当我在WCF测试客户端上测试此服务时,会出现以下错误。 错误:无法从http:// localhost:57358 / WebServices / NewsRest.svc / getHomePage
2回复

WCF Web服务配置ReceiveTimeout

绑定> ReceiveTimeout未在我的配置中设置,应用程序崩溃我想在默认值之后。 如何将其设置为无限制? 为什么我首先需要超时。 我希望我的应用程序永远运行而不会因为超时而崩溃。 并且指出了解所有关于Web服务配置的信息,我发现它们令人困惑并且无法掌握它。 我总是谷
2回复

自动运行WCF Web服务

我已经创建了WCF Web服务,并且想要动态更改App.config中的“ baseAddress”值,而无需从另一个程序调用。 我的问题是: 当我的IP地址更改时,我无法远程访问此WCF
1回复

WCF Web服务创建并在Winform应用程序中显示

我需要wcf经验丰富的专业人士的建议和帮助。 是否可以从wcf Web服务访问php网站的mySql数据库。 如果是,您能告诉我如何创建Web服务的方法,该服务将具有连接字符串以访问数据库,并作为响应将xml格式的数据提供给我的winform应用程序。 我的winform应用程序将使用此数
1回复

创建Web服务(WCF),该服务返回确认并通过调用客户端API返回实际结果

我需要创建一个Web服务,以返回对调用和传递的数据的确认,然后再进行实际操作。 完成后。 我需要通过传递操作的实际结果来调用客户端Web服务。 有什么办法可以做到这一点
5回复

测试WCF Web服务

我编写了一个商业WCF Web服务。 我想将该服务提供给另一个人进行独立于将使用Web服务的应用程序进行测试。 这是因为第三方将构建该应用程序,我们目前无法访问它。 另一件要记住的事情是,我想把它交给测试的人是非程序员。 这很重要。 那么有没有可以订阅WCF Web服务的工