11

我正在开发一个 WCF 服务,我对它在哪里使用它的配置有点困惑。

我的主机应用程序(控制台应用程序)和我的 WCF 服务项目(随模板一起提供)中有一个 app.config 文件

在运行时,我可以看到两个文件中的配置都被使用了。

它是如何工作的?为什么 WCF 库项目(一个 dll 项目)包含一个 app.config 文件,它的用途是什么?

我真的可以对此进行一些澄清......

更新

这是主机应用程序中我的 app.config 中的 WCF 配置

<system.serviceModel>

    <!-- services -->
    <services>
        <service name="Services.CalcService">
            <endpoint address="net.tcp://localhost:8412/MyCalcService"
                      binding="netTcpBinding"
                      bindingConfiguration="MyNetTcpBinding"
                      contract="Contracts.ICalc"/>
        </service>
    </services>

    <!-- bindings -->
    <bindings>
        <netTcpBinding>
            <binding name="MyNetTcpBinding"
                     closeTimeout="00:01:00"
                     openTimeout="00:01:00"
                     receiveTimeout="00:10:00"
                     sendTimeout="00:01:00"
                     transactionFlow="false"
                     transferMode="Streamed"
                     transactionProtocol="OleTransactions"
                     hostNameComparisonMode="StrongWildcard"
                     listenBacklog="10"
                     maxBufferPoolSize="524288"
                     maxBufferSize="65536"
                     maxConnections="10"
                     maxReceivedMessageSize="65536">
                <readerQuotas maxDepth="32"
                              maxStringContentLength="8192"
                              maxArrayLength="16384"
                              maxBytesPerRead="4096"
                              maxNameTableCharCount="16384" />
                <reliableSession ordered="true"
                                 inactivityTimeout="00:10:00"
                                 enabled="false" />
                <security mode="Transport">
                    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
                </security>
            </binding>
        </netTcpBinding>
    </bindings>

</system.serviceModel>

这是我的 WCF 服务库中的 WCF 配置

  <system.serviceModel>
<services>
  <service name="Services.CalcService">
    <endpoint address="" binding="basicHttpBinding" contract="Contracts.ICalc">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733/Design_Time_Addresses/Services/CalcService/" />
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
      <serviceDebug includeExceptionDetailInFaults="False" />
    </behavior>
  </serviceBehaviors>
</behaviors>

谢谢,暗里。

4

1 回答 1

15

它是如何工作的?

仅使用主机应用程序的配置文件。

为什么WCF库项目(一个dll项目)包含app.config文件

如果它在类库中,我猜是添加它的 VS 模板。

它的目的是什么?

WCF Service Host (WcfSvcHost.exe)在 Visual Studio 中使用 F5 运行 WCF 服务库时可以使用它。

于 2013-08-15T12:13:37.540 回答