WCFを介してサーバー上のキューにメッセージを配置するクライアントを作成しようとしています。さまざまなWebサイト、フォーラムの投稿などを組み合わせて使用して、以下のApp.configを利用するコードを作成しました。
CryptoCoordinatorQueueNameを取得するという単純な操作を実行すると、例外が発生します。system.serviceModelセクションとbindingsセクションをコメントアウトすると、例外がなくなり、文字列が正しく返されます。例外は「構成システムの初期化に失敗しました」であり、掘り下げると、内部例外「認識されない要素」とタグに対応する行番号が表示されます。System.ServiceModelはプロジェクトによって参照されますが、構成システムに要素を受け入れさせるにはこれだけでは不十分なようです。誰かがこれを修正する方法を見ることができますか?dotnet4とVS2010を使用しています。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CryptoCoordinatorServiceTest.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="CryptoCoordinatorQueueName" value=".\private$\CryptoCoordinatorQueue" />
</appSettings>
<system.serviceModel>
<services>
<service behaviorConfiguration="MetadataBehavior" name="CryptoCoordinatorService.CryptoCoordinatorQueue">
<endpoint
address="net.msmq://localhost/private/CryptoCoordinatorQueue"
binding="netMsmqBinding"
contract="CryptoCoordinatorService.ICryptoCoordinatorControlQueue"
bindingConfiguration="CryptoCoordinatorNetMsmqBinding"/>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/CryptoCoordinatorQueue/"/>
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="CryptoCoordinatorNetMsmqBinding" deadLetterQueue="Custom">
<security mode="None"/>
</binding>
</netMsmqBinding>
</bindings>
</configuration>