0

より具体的には、 [SoapDocumentMethod(OneWay=true)]を使用して Web サービスで SPContext を参照するにはどうすればよいですか?

サイトの作成時にジョブを実行する必要がある機能を作成しています。ジョブが完了するまでに約 4 分かかります。そこで、機能がアクティブ化されたときに呼び出すことができる Web サービスを作成しました。これは機能しますが、非同期で実行する必要があります。SoapDocumentMethod の OneWay プロパティが見つかりました。これはうまく機能しますが、SPContext は現在 NULL です。

_vti_bin 仮想ディレクトリに Web サービスがあるため、各 Windows Sharepoint Services サイトで利用できます。SPContext.Current.Web を使用してサイトを取得し、長時間実行する操作を実行していました。すぐに SOAP 応答を返し、プロセスを実行させることで、ただ起動して忘れたかったのです。

現在の SPContext を取得するにはどうすればよいですか? 私は自分のWebサービスでこれを行うことができました:

SPWeb mySite = SPContext.Current.Web;

Web サービスに[SoapDocumentMethod(OneWay=true)]属性を適用すると 、同じコンテキストを取得できますか?

または、URL から SPWeb を再作成する必要がありますか?

これは次のスレッドに似ています: webservice oneway and new SPSite(myUrl)


更新: 次の 2 つの方法を試しましたが、うまくいきませんでした。

SPWeb targetSite = SPControl.GetContextWeb(this.Context);

SPWeb targetSite2 = SPContext.GetContext(this.Context).Web;
4

1 に答える 1

0

一方向メソッドには、戻り値または出力パラメーターを含めることはできません

しかし、彼らはパラメーターを持っていますね。

webservice メソッドの呼び出しを行う場合、featurereceiver から現在のサイトの url を渡してから 、web サービス メソッドでusing(SPSite site = new SPSite(urlPassedAsParameter))を行うことはできませんか?

FeatureActivated オーバーライドの SPFeatureReceiverProperties には、現在の SPWeb または SPSite が SPFeatureReceiverProperties.Parent として含まれています。

于 2009-06-11T09:42:20.857 に答える