我开发了一个wcf服务,我已经在IIS中托管了它,svc文件如下:
<%@ ServiceHost Language="C#" Debug="true" Service="ServiceImplemetation.HelloService" %>
和web.config文件的system.servicemodel部分如下:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="MetadataBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
<behavior name="WebApplication1.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior name="WebApplication1.MyHelloBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="ServiceImplemetation.HelloService"
behaviorConfiguration="MetadataBehavior">
<endpoint address=""
binding="basicHttpBinding"
contract="ServiceContracts.IHello" />
<endpoint address="mex"
binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
服务运行正常,现在我创建了一个Web客户端来使用该服务,并编写了web.config文件的cleint部分,如下所示:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="wsServiceBehaviour">
<dataContractSerializer maxItemsInObjectGraph="6553600"/>
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint address="http://localhost:8379/HelloService/"
binding="basicHttpBinding"
behaviorConfiguration="wsServiceBehaviour"
contract="ServiceContracts.IHello"
name="BasicHttpBinding_IIHello" />
</client>
</system.serviceModel>
现在,当我访问此服务时,我收到以下错误:
无法建立连接,因为目标计算机主动拒绝了它127.0.0.1:8379
我猜这是一个错误的地址问题,但我不知道错误在哪里...... 有人可以看看这个问题...
答案 0 :(得分:1)
如果您在IIS中托管,则无法使用自己的基本地址 - 您的服务URL将是保存SVC文件的虚拟目录的URL,加上SVC文件以及服务端点上的任何相对地址。
在你的那个,你应该连接到:
http://myserver/MyVirtualDirectory/MyService.svc/
如果使用IIS来托管WCF服务,那么system.serviceModel部分(遗憾地省略了)中的任何已配置的“基地址”都将毫无用处。
马克
答案 1 :(得分:0)
通常,IIS配置为在端口80上运行而不在端口8379上运行。我认为这是问题所在。