【问题标题】:Problem while consuming wcf service hosted in IIS?使用 IIS 中托管的 wcf 服务时出现问题?
【发布时间】:2009-08-26 06:33:22
【问题描述】:

我已经开发了一个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

我猜这是地址错误的问题,但我不知道错误在哪里...... 有人可以看看这个问题...

【问题讨论】:

    标签: wcf


    【解决方案1】:

    如果您在 IIS 中托管,则不能使用自己的基地址 - 您的服务 URL 将是包含 SVC 文件的虚拟目录的 URL,加上 SVC 文件,加上服务端点上的任何相对地址。

    在你的那个中,你应该连接到:

    http://myserver/MyVirtualDirectory/MyService.svc/
    

    如果您使用 IIS 托管 WCF 服务,则 system.serviceModel 部分中的任何配置“基地址”(很遗憾,您遗漏了)都将毫无用处。

    马克

    【讨论】:

      【解决方案2】:

      通常,IIS 被配置为在端口 80 而不是在端口 8379 上运行。我认为这是问题所在。

      【讨论】:

        猜你喜欢
        • 2011-03-21
        • 1970-01-01
        • 2011-07-26
        • 1970-01-01
        • 2010-11-24
        • 2022-12-13
        • 2011-05-11
        • 2011-10-14
        • 1970-01-01
        相关资源
        最近更新 更多