1

標準設定だと思います。フォローしました:http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx主に、しかし必要に応じて他のソースを使用しました。

これまでのところ、次のようになります。

  1. クライアントがメッセージを送信します
  2. 適切なキューのジャーナルメッセージにメッセージが表示されます
  3. サービスが呼び出されていないようです。呼び出されたサービスのログやサービスメソッドのエラーを出力するログが大量にあります。

サービスをシャットダウンしましたが、メッセージはまだジャーナルメッセージに表示されます-理由はわかりません。

キュー:bretrace / bretraceservice.svc(匿名アクセス、完全なアクセス許可が付与されている)

クライアントWeb.config

<netMsmqBinding>
    <binding name="MsmqBreTrace" receiveErrorHandling="Move">
        <security mode="None" />
    </binding>
</netMsmqBinding>

<endpoint address="net.msmq://wcfserver/private/bretrace/bretraceservice.svc" binding="netMsmqBinding"
    bindingConfiguration="MsmqBreTrace" name="MsmqBreTraceService"
    contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract"/>

サービスWeb.config

<bindings>
    <netMsmqBinding>
        <binding name="MsmqBreTraceReader" receiveErrorHandling="Move">
            <security mode="None" />
        </binding>
    </netMsmqBinding>
</bindings>
<services>
    <service name="C.BusinessRuleController.Services.QR.BreTraceService">
        <endpoint address=""
            binding="netMsmqBinding" bindingConfiguration="MsmqBreTraceReader"
            contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract" />
    </service>
</services>

また、system.diagnosticsをアクティブにしましたが、次のアクティビティの下でサービスを呼び出しているようです。

  • 「プロセスアクション:「http://tempuri.org/IQueuingTraceContract/LogTrace」。」tempuri.orgに問題があるかどうかわかりませんか?
  • 別のアクティビティとして「C.BusinessRuleController...を実行してください」。

4

1 に答える 1

0

いくつかのことが私にとってこの問題を解決しました:

まず、バインディングでsecurity mode='transactional'を設定する必要がありました

<netMsmqBinding>
    <binding name="MsmqBreTrace" receiveErrorHandling="Move">
        <security mode="Transactional" />
    </binding>
</netMsmqBinding>

次に、MSMQ Active Directory統合をインストールする必要がありました。実際に有効にする必要はありませんでしたが、使用しない場合でもインストールする必要がありました。これが私を最も驚かせたものでした。私はAD統合を望んでいなかったので、私はそれを必要としないと思いました。私が間違っていたことがわかりました。

于 2013-02-12T05:56:51.560 に答える