我正在开发一个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>
谢谢, 暗利。
答案 0 :(得分:14)
它是如何工作的?
仅使用主机应用程序的配置文件。
为什么WCF库项目(dll项目)包含app.config文件
如果它在类库中,我猜它是添加它的VS模板。
它的目的是什么?
在Visual Studio中使用F5运行WCF服务库时,WCF Service Host (WcfSvcHost.exe)
可以使用它。