0

我正在将 Silverlight 3 Prism (CAB) 与 WCF 一起使用

当我在 Prism 模块中调用 WCF 服务时,我得到了同样的错误:

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

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

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

接下来我改为在代码中设置服务:

// create the binding elements
BinaryMessageEncodingBindingElement binaryMessageEncoding = new BinaryMessageEncodingBindingElement();
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement() 
{ MaxBufferSize = int.MaxValue, MaxReceivedMessageSize = int.MaxValue};

HttpsTransportBindingElement httpsTransport = new HttpsTransportBindingElement() 
{ MaxBufferSize = int.MaxValue, MaxReceivedMessageSize = int.MaxValue };

// add the binding elements into a Custom Binding
CustomBinding customBinding;
if (Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase))
{
    customBinding = new CustomBinding(binaryMessageEncoding, httpsTransport);
}
else
{
    customBinding = new CustomBinding(binaryMessageEncoding, httpTransport);
}

// create the Endpoint URL
EndpointAddress endpointAddress = new EndpointAddress(

"http://localhost/Test/TestModule/Test.TestModule.WCF/TestModuleService.svc");

// create an interface for the WCF service
var service = new TestModuleServiceClient(customBinding, endpointAddress);
4

1 回答 1

1

This post deals with a similar situation:

Thanks, Damian Schenkelman

http://blogs.southworks.net/dschenkelman

于 2009-10-27T17:40:04.173 回答