我在一个解决方案中有两个项目。一个项目,我们称之为 MainProject,变成了一个可执行文件。另一个项目,我们称之为 ControlsProject,包含UserControl
's 并且在 MainProject 中被引用(和使用)。ControlsProject 也有一个 WCF 服务参考。
关于此配置,我有两个问题:
- 我可以将 WCF 配置从 ControlsProject 复制到 MainProject(我不相信我可以按照“如何在另一个项目中包含 Web 引用端点配置”)
- 在 ControlsProject 配置中,合同没有完全限定的命名空间,而是有一个名称,例如“
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.config 的片段:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>