Visual Studio 2008からRDSサービスを作成(4)(失敗編3)
まだ、解決しておりません。。。
よって、これも失敗例です。
「Visual Studio 2008からRDSサービスを作成(4)(失敗編2)」からの続きです。
- AddPortTest.csに追加したReplaceのハンドラ(修正前)
/// <summary> /// Replace Handler /// </summary> /// <param name ="replace"></param> /// <reteuns></returns> [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public virtual IEnumerator<ITask> ReplaceHandler(Replace replace) { _state = replace.ResponsePort; replace.ResponsePort(DefaultReplaceResponseType.Instance); yield break; }
- コンパイルエラー
-
- 74行目(replace.ResponsePort(DefaultReplaceResponseType.Instance);の部分)
実行不可能なメンバ
'Microsoft.Dss.ServiceModel.Dssp.DsspOperation>.ResponsePort'をメソッドのように使用することはできません。
ResponsePortをメソッドのように使用することはできません。
なるほど。そういえば、一行上で
_state = replace.ResponsePort;
と指定しているのだから、もしかして不要なのかな。。。
とコメントアウトしてみることにしました。
- 修正後
/// <summary> /// Replace Handler /// </summary> /// <param name ="replace"></param> /// <reteuns></returns> [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public virtual IEnumerator<ITask> ReplaceHandler(Replace replace) { _state = replace.ResponsePort; //replace.ResponsePort(DefaultReplaceResponseType.Instance); yield break; }
ですが、喜ぶのはまだ早く。。。
この作成した「AddPortTest」をVPLから呼び出します。
今回、実験したかったことは・・・
「AddPortTest」ブロックを使ってValueを「Data」ブロックに入力した値で書き換える。
です。
1.「Data」ブロックをドラックアンドドロップし、Doubleg型に指定して、中央テキストボックスには「0.5」と入力します。
2.次に上記で作成した「AddPortTest」ブロックをドラックアンドドロップします。
3.「Data」ブロックと、AddPortTest」ブロックをつないでやるとConnectionsダイアログが表示され、To欄Getの下に上記でポートの追加を行った「Replace」が選択可能となっています。
- From:DataValue
- To:Replace
と指定し、OKボタンを押します。
つないだあとはこのような図になります。
4.次に、「AddPortTest」ブロックをもう一つ、ドラックアンドドロップし1個目の「AddPortTest」ブロックと
- From:Replace-Success
- To:Get
と指定し、OKボタンを押して接続します。
5.そして、「log」ブロックをドラックアンドドロップし、2個目の「AddPortTest」ブロックと
- From:Get-Success
- To:LogInfo
6.Data Connectionsダイアログが表示されるので、Target欄のMessage、Gategoryをvalueに指定します。
7.最終的なVPL図は以下のようになります。
この状態で実行し、Dataブロックに入力した値「0.5」がlogに表示されれば成功なのですが、タイムアウトエラーが発生してしまいました。
DsspForwarder:OutboundFailureHandler.Exception:操作がタイムアウトしました。
Action:http://schemas.microsoft.com/xw/2004/10/dssp.html:ReplaceRequest
Body Type:Microsoft.Dss.ServiceModel.Dssp.GetRequestType
Target Service:dssp.tcp://asa-xp:50001/addporttest/**********
Source Service:dssp.tcp://asa-xp:50001/model/addporttest
次回へ続く。。。
そろそろ成功編を書きたいな(;_;)