Server AppFabricでいくつかのワークフローが成功しました。Workflow 4 AppDashboardでAppFastのエラーが発生しました。
しかし、私はワークフローと通信するためにnamePipeBindingを使用しようとすると、呼び出しはクライアントに対して正常に動作します(コールはサービスのインタフェース定義でIsOneWay = trueとマークされます)。 AppFabricのダッシュボードには、私は正常に処理されているメッセージを見ることができますし、我々は、ワークフローが2で構成され、次の例外
System.ServiceModel.CommunicationException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d). ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.ServiceModel.CommunicationException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d). ---> System.IO.PipeException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d).
at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes)
--- End of inner exception stack trace ---
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ConnectionStream.ReadAsyncResult.End(IAsyncResult result)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)
--- End of inner exception stack trace ---
at System.Net.Security.NegotiateStream.EndRead(IAsyncResult asyncResult)
at System.ServiceModel.Channels.StreamConnection.EndRead()
--- End of inner exception stack trace ---
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.FramingDuplexSessionChannel.TryReceiveAsyncResult.End(IAsyncResult result, Message& message)
at System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
と「サービス例外」として登場するコールを得る活動を受けるが、それはどんなreceiveandsendreply activitiiesを持っていません。
httpバインディングを使用するとすべてうまく動作します。
なぜこのエラーはダッシュボードに表示されますか?クライアントアプリケーションのための
構成の詳細は、サーバーバインディング設定を提出することができ
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISLG" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_ISLG" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport protectionLevel="EncryptAndSign"/>
</security>
</binding>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint address="net.pipe://vm-vsnet2010/TestWorkflowDeclarativeServiceLibrary/Service3.xamlx"
binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISLG"
contract="SLGService.ISLG" name="NetNamedPipeBinding_ISLG">
<identity>
<servicePrincipalName value="host/VM-VSNET2010" />
</identity>
</endpoint>
</client>
</system.serviceModel>
設定ファイルサーバー側には詳細はありません。繰り返して言うと、サーバーは、ワークフロー操作の成功に関するappfabricダッシュボードに多くのエントリが表示されているという要求だけを正常に処理します(上記参照)。 – jamie
さて、私は良く理解しており、より奇妙です。 どういうわけか二重チャネルを作成しているようですが、なんらかの理由で双方向モードで呼び出されています。 相関を使用していますか?たぶんこれは役立ちます:http://social.msdn.microsoft.com/Forums/en/wfprerelease/thread/47a94846-2191-454a-9ea8-1f8783e20b27 – Tasio