WCF服务app.config

时间:2013-08-15 12:04:28

标签: c# wcf app-config

我正在开发一个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>

谢谢, 暗利。

1 个答案:

答案 0 :(得分:14)

  

它是如何工作的?

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

  

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

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

  

它的目的是什么?

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