質問

私のウェブサイトで開催されるIISの異なるボックス、WCFサービスの開催をWindowsのサービスで異なる。(N tierアプローチ。ここでは、Webサービスは、クライアントのために、WCFサービスです。の要求ファイルのアップロード、IIS主催Webサービスは、このIISを開催Webサービスに戻す通話を、WCFサービスとは、実際にアップロード。※これまでの方が良さそうですね。後のアップロードが行われ、WCFサービスを行うコールバックしてくれてありがとうございます保存、アプリケーショ辞書いて(InstanceContextMode=InstanceContextMode.PerSession,ConcurrencyMode=ConcurrencyMode.複数)).は、WCFサービス、コールバック.の微量ビューアなんだかとってもおいしそうにASP.NET のコールバックでアップロードのページをブラウザは、エンドユーザー)凍結させないようにしてください。を使用していChunkingChannel結合によるlarsw.

まず、がれきの実施上記のシナリオとジョン-Saundarsこのリンク:

忘れてしまいましたOperationContext.ます。GetCallbackChannel"実際にかがですか?

のです。

役に立ちましたか?

解決 2

これはweiredされ、私はコンピュータを再起動し、現在クライアント(ASP.NET)側にトレースビューアに次のようになっていますし、またページは現在、(応答しない)フリーズしません。 System.NullReferenceException、mscorlibおよびオブジェクト参照ではない...

と言う:ほとんどの懸念は、私はその内部例外であることを示すメッセージ

私は、WCFサービスのクライアントとしてコンソールアプリケーションで試してみました。コールバックは、素晴らしい作品。それは私が(復帰に呼び出しがアップロード/成功しなかったことを通知するために、クライアントに)ファイルをアップロードするにはIISとコールWCFサービスで私のウェブサイトをホストするときだけです。

(私はHttpChunkingBindingを使用しています)。 任意のアイデア?

  

System.Runtime.FatalException、   System.Runtime.DurableInstancing、バージョン= 4.0.0.0は、文化は、ニュートラル=   なPublicKeyToken = 31bf3856ad364e35オブジェクト   参照は、オブジェクトのインスタンスに設定されていません。   に   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&   RPC)で   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&   System.ServiceModel.Dispatcher.MessageRpc.ProcessでRPC)(ブール   isOperationContextSet)で   System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContextの   要求、ブーリアンcleanThread、のOperationContext   currentOperationContext)で   System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContextの   リクエスト、のOperationContext currentOperationContext)で   System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)で   System.ServiceModel.Diagnostics.TraceUtility。<> C_ のDisplayClass4。 B の_2(AsyncCallback   コールバック、IAsyncResultインター結果)で、   System.Runtime.AsyncResult.Complete(ブールcompletedSynchronously)で   System.Runtime.InputQueue1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue1.Dispatch()で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.ProcessDuplexMessage(WsrmMessageInfo   インフォ)で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.HandleReceiveComplete(たIAsyncResult   結果)で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.OnReceiveCompletedStatic(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)System.Runtime.AsyncResult.Complete(ブールで   completedSynchronously)で   System.ServiceModel.Channels.ReliableChannelBinder1.InputAsyncResult1.OnInputComplete(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)で   System.ServiceModel.Diagnostics.TraceUtility。<> C_ のDisplayClass4。 B の_2(AsyncCallback   コールバック、IAsyncResultインター結果)で、   System.Runtime.AsyncResult.Complete(ブールcompletedSynchronously)で   System.Runtime.InputQueue1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue1.Dispatch()で   System.Runtime.ActionItem.DefaultActionItem.Invoke()で   System.Runtime.ActionItem.CallbackHelper.InvokeWithoutContext(オブジェクト   状態)で、   System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32型   errorCode、UInt32型NUMBYTES、NativeOverlapped * nativeOverlapped)で   System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32型   エラー、UInt32型bytesRead、NativeOverlapped * nativeOverlapped)で   System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32型   errorCode、UInt32型NUMBYTES、NativeOverlapped * pOVERLAP)   System.Runtime.FatalException:オブジェクト参照ではありません   オブジェクトのインスタンスに設定されています。 --->   System.NullReferenceException:オブジェクト参照がインスタンスに設定されていません   オブジェクトの。に   System.Web.HttpApplication.ThreadContext.Enter(ブール   setImpersonationContext)で   System.Web.HttpApplication.OnThreadEnterPrivate(ブール   setImpersonationContext)で   System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback   コールバック、オブジェクトの状態)で、   System.Web.AspNetSynchronizationContext.CallCallback(SendOrPostCallback   コールバック、オブジェクトの状態)で、   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&   内部例外スタックトレースのRPC)---終わり---で   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&   RPC)で   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&   System.ServiceModel.Dispatcher.MessageRpc.ProcessでRPC)(ブール   isOperationContextSet)で   System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContextの   要求、ブールcleanThread、のOperationContext   currentOperationContext)で   System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContextの   リクエスト、のOperationContext currentOperationContext)で   System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)で   System.ServiceModel.Diagnostics.TraceUtility。<> C_ のDisplayClass4。 B の_2(AsyncCallback   コールバック、IAsyncResultインター結果)で、   System.Runtime.AsyncResult.Complete(ブールcompletedSynchronously)
  System.Runtime.InputQueue1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue1.Dispatchで()で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.ProcessDuplexMessage(WsrmMessageInfo   インフォ)で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.HandleReceiveComplete(たIAsyncResult   結果)で   System.ServiceModel.Channels.ReliableDuplexSessionChannel.OnReceiveCompletedStatic(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)System.Runtime.AsyncResult.Complete(ブールで   completedSynchronously)で   System.ServiceModel.Channels.ReliableChannelBinder1.InputAsyncResult1.OnInputComplete(たIAsyncResult   結果)で   System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(たIAsyncResult   結果)で   System.ServiceModel.Diagnostics.TraceUtility。<> C_ のDisplayClass4。 B の_2(AsyncCallback   コールバック、IAsyncResultインター結果)で、   System.Runtime.AsyncResult.Complete(ブールcompletedSynchronously)
  System.Runtime.InputQueue1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue1.Dispatchで()で   System.Runtime.ActionItem.DefaultActionItem.Invoke()で   System.Runtime.ActionItem.CallbackHelper.InvokeWithoutContext(オブジェクト   状態)で、   System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32型   errorCode、UInt32型NUMBYTES、NativeOverlapped * nativeOverlapped)で   System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32型   エラー、UInt32型bytesRead、NativeOverlapped * nativeOverlapped)で   System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32型   errorCode、UInt32型NUMBYTES、NativeOverlapped *   pOVERLAP)   System.NullReferenceException、mscorlib、   バージョン= 4.0.0.0、文化=中立、   なPublicKeyToken = b77a5c561934e089オブジェクト   参照は、オブジェクトのインスタンスに設定されていません。   System.Web.HttpApplication.ThreadContext.Enter(ブール値で   setImpersonationContext)で   System.Web.HttpApplication.OnThreadEnterPrivate(ブール   setImpersonationContext)で   System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback   コールバック、オブジェクトの状態)で、   System.Web.AspNetSynchronizationContext.CallCallback(SendOrPostCallback   コールバック、オブジェクトの状態)で、   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&   RPC)System.NullReferenceException:   オブジェクト参照がオブジェクトインスタンスに設定されていません。に   System.Web.HttpApplication.ThreadContext.Enter(ブール   setImpersonationContext)で   System.Web.HttpApplication.OnThreadEnterPrivate(ブール   setImpersonationContext)で   System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback   コールバック、オブジェクトスタットe)に   System.Web.AspNetSynchronizationContext.CallCallback(SendOrPostCallback   コールバック、オブジェクトの状態)で、   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&   RPC)

他のヒント

などを利用することによる"凍結"を、これだけで更新されないことになりに応じ.

っているのかもしれませんの対応はaspページはブラウザに送信されます前回答が得られるウェブサーバから、wcfサービスです。この場合にはaspページを取得しません更新された結果なっています。

す2つのオプション:

  • 利用のjavascriptをポーリングサーバの間で変化します。
  • ブロックのアップロードページの管理のもと保からの回答が受領サービスです。

まendupのを待って呼び返しに、このような請求に対応す。

もう一つprobliemは、wcfプロキシクライアントが閉じる前にコールバックを受信します。トレースしないで復帰したが、誰にもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top