我遇到了从WCF服务使用Web服务(c#.net)的问题。 我得到的错误是EndPointNotFoundException“TCP错误代码10061:无法建立连接,因为目标计算机主动拒绝它”
我写了一个单元测试来检查我是否可以向Web服务发送请求并且它工作正常 [单元测试使用与我的WCF服务相同的绑定配置]
Web服务和WCF服务(客户端)具有basichttp绑定。
是否有人从WCF服务调用Web服务有类似的问题?
服务模型部分如下
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="DataService" closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05: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://10.22.33.67/Service/DataService.asmx" binding="basicHttpBinding"
bindingConfiguration="DataService" contract="Service.DataService" name="DataService"/>
</client>
<services>
<service name="TestToConsumeDataService.WCFHost.Service1" behaviorConfiguration="TestToConsumeDataService.WCFHost.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="basicHttpBinding" contract="TestToConsumeDataService.WCFHost.IService1">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="TestToConsumeDataService.WCFHost.Service1Behavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
单元测试项目也使用相同的服务模型部分,它可以工作。唯一的问题是从另一个WCF服务调用服务。你能建议吗。
答案 0 :(得分:1)
您提到了“webservice”和“WCF服务” - 所以“webservice”是旧式的ASMX Web服务吗?
您的WCF服务是如何托管的?在IIS?您是否有从web.config中的WCF调用的Web服务的必要端点信息?
您能告诉我们您的相关配置吗,例如:你的web.config的<system.serviceModel>
部分(或app.config,如果你是自托管WCF服务的那部分),请吗?
错误表示没有web服务正在侦听您正在使用的地址,或者您没有访问权限。你错过了一些安全措施吗?
MARC
答案 1 :(得分:0)
看起来您需要调用Web服务。
如果你有两个dll,其中一个调用另一个,那么它就是第一个使用的dll的配置文件。但是,当您浏览WCF跃点时,它将接管WCF服务的配置文件。
希望这有帮助
西拉