另一个项目中端点的WCF配置
我在一个解决方案中有两个项目。 一个项目,我们称之为MainProject,成为一个可执行文件。 另一个项目,我们称之为ControlsProject,包含UserControl
的并在MainProject中被引用(和使用)。 ControlsProject也有一个WCF服务参考。
我有两个有关此配置的问题:
ServiceName.IServiceInterfaceName
”之类的名称。 由于ControlsProject输出将是位于MainProject的bin文件夹中的文件,因此合同名称应该是什么? 我试过只是复制了配置,但收到了异常:“ Could not find default endpoint element that references contract 'MyService.IMyService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
“当我复制配置时,我将接口的名称完全限定为ControlsProject.MyService.IMyService
。
您可以提供的任何帮助表示赞赏!
更新 (2011年7月14日下午5点28分)
这是我的客户端app.config中的代码片段:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IStatService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://intranet/StatService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IStatService"
contract="StatService.IStatService" name="BasicHttpBinding_IStatService" />
</client>
</system.serviceModel>
这是我的web服务web.config中的代码片段:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
任何时候当你看到“无法找到这样和那样的合同的默认端点元素”时,你的实际合约(接口)在app.config文件中没有被正确地引用。 转到控制项目中的接口契约,再次检查它所在的名称空间,需要确切的名称空间。“接口名称”作为app.config中的契约元素。 您还需要确保您的服务名称= Namespace.MyService是正确的命名空间和类。 知道你是否正确的一种简单方法(只有当你有resharper时),在你声明服务名的appconfig中=把光标放在服务名和命名空间上,然后按F12,如果它没有把你带到任何地方你引用了一个不存在的命名空间和类,对于contract =,也是如此,如果你的F12在那个合同上,并且它不会把你带到那里,那么它没有被正确地引用(可能拼写错误)。
链接地址: http://www.djcxy.com/p/87191.html