前提条件
- サービス プロジェクト タイプ: .net 3.5 クラス ライブラリ
- サービスホスト: IIS 7.5 / ASP.NET 互換モードがオンになっています
サービスに定義された単一のアクションDocumentsService
はUploadDocument(Stream stream)
、HTTP ( webHttp binding ) 経由でアクセスできます。
で飾ってみました[OperationContract(IsOneWay=true)]
。
[OperationContract(IsOneWay=true)]
[WebInvoke(Method="POST", UriTemplate="upload", ResponseFormat=WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Bare)]
void UploadDocument(System.IO.Stream stream);
さらに、次の行をコメントアウトしました。
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.OK;
サービス自体が 200 のステータスを設定するため、すべてが問題ないため、役に立たないと思ったからです。
サービス用に生成されたWCFクライアントは使用しません。ファイルを送信するには、プレーンなajaxリクエストを使用します。
問題
これは、ファイア アンド フォーゲット リクエストではありません。同期とブロックです。どうすれば本当のファイア アンド フォーゲット アクションを実行できますか? C#プロキシ クライアントなしで使用できますか?
編集
- クラスを使用できません
Task
。.net Framework 3.5 にバインドされています。 - さて、私には 2 つの部分があります:アップロード自体と後処理です。ファイルがアップロードされたときに、このパーツをチェーンするか、非同期後処理をインスタンス化するにはどうすればよいですか?