2016-07-07 10 views
4

コンテキストは私が生成されたクライアントを使用してCRMプラグインからWCFサービスを呼び出すいSystem.Security.SecurityException

をスローします。 (System.ServiceModel.ClientBase<T>)CRMプラグインは、サンドボックス分離モードで動作する必要があります。 WCFクライアントは、純粋なwsdlとxsdから生成されました。 Xmlのシリアライゼーションを使用しているようですので、リフレクションは必要ありません。

プラグインの実行がスロー:

System.Security.SecurityException:タイプの許可の要求「System.Security.Permissions.SecurityPermission、

をスタックトレース、あるようです

サーバースタックトレース:WCFクライアントの実装のコアから来る System.ServiceModel.Channels.ServiceChannel.HandleでSystem.ServiceModel.Channels.ServiceChannel.Call(Stringアクション、Boolean oneway、ProxyOperationRuntime操作、Object [] ins、Object [] outs、TimeSpanタイムアウト)での返信(ProxyOperationRuntime操作、ProxyRpc & rpc) System.ServiceModel.Channelsで [0]に再スローSystem.ServiceModel.Channels.ServiceChannelProxy.Invokeで.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCallで、ProxyOperationRuntime動作) (IMessageがメッセージ)

例外:System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessageで (IMessage reqMsg、IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData & msgData、Int32型)Microsoft.Crm.Sandbox.SandboxCustomActivity.ExecuteでMicrosoft.Crm.Sandbox.ISandboxHost.ExecuteCustomWorkflowActivityAndReturnTraceInfo(SandboxCallInfo callInfo、SandboxCustomActivityExecutionContext RequestContextの、のGUID pluginAssemblyId、のInt32 sourceHash、文字列のAssemblyName、のGuid pluginTypeId、文字pluginTypeName、列assemblyContents、ブールreturnTraceInfo) で(SandboxClientクライアント、SandboxCallTracker callTracker、IExecutionContext RequestContextの、文字列assemblyContents、ブールreturnTraceInfo)Microsoft.Crm.Sandbox.SandboxCodeUnit.Execute(IExecutionContextコンテキスト)で

質問

WCFクライアントをサンドボックス分離モードおよびCRM Onlineで使用できない文は正しいですか? (または何かが欠けていますか?)

もしそうなら、回避策はありますか?すべてのメッセージのレンダリングと解析を再実装する必要がありますか?

+0

[サンプル:サンドボックスプラグインからのWebアクセス](https://msdn.microsoft.com/en-us/library/gg509030.aspx)をご覧になりましたか? –

+0

はい、これは私の最初のgoogleの結果_before_私は質問をした。 Unfortunatelly WebClientは、WCF SOAPクライアント(生成された型を処理し、SOAP req/reponsesをレンダリングする)よりもはるかに低レベルのコンポーネントです.WebClientを使用すると、SOAPを実装しなければならず、多くの標準に準拠しなければなりません。 –

答えて

0

WCFサービスはHTTPSでホストされていますか?これは、CRM Onlineのサンドボックスプラグインでは必須です。 IPアドレスは使用できません。

+0

WCFサービスはありません。私はCRMプラグイン内で生成されたWCFクライアントを使用して、標準のSOAPエンドポイントにアクセスします。エンドポイントはhttpsで、url(IPではなく)によって指定されます。 –

1

ビジュアルスタジオで生成できるスタンダード 'サービス参照'(またはそれに関する古いWeb参照)は、サンドボックスモードでは機能しません。既定でGACに登録されていないクラスのサンドボックスではサポートされていないMicrosoftシリアライザ(System.Runtime.Serialization)を使用します。

http://www.instantquick.com/index.php/serialization-in-sandbox-solutions?c=elumenotion-blog-archive/random-whatnot

は、私の知る限りでは、このための簡単な修正はありません。リンクは2つの可能な代替ソリューションを提供しますが、どちらも直接サービス参照では機能しません。

関連する問題