2012-04-16 12 views
0

ビジュアルWebパーツSharepoint 2010のサンドボックスからAzure WCFサービスを呼び出す際に問題があります。インストールされているすべてのローカルコンピュータWindows 7 64 Ultimate - Sharepoint Foundation 2010 Azure SDKを使用したVisual Studio 2010ローカルのAzureエミュレータから始まるWebサービス。ローカルコンピュータのWebパーツ。私はスタンダールマスターを使用する場合 のapp.configを生成するWebパーツに、「サービス参照の追加」、そして投げるエラー:Azure WCF Service + Sharepoint 2010サンドボックスビジュアルWebパーツ=エラー

ServiceReference1.Service1Client serv = new ServiceReference1.Service1Client(); 
Label1.Text = serv.GetData(9); 

ServiceModelで契約「ServiceReference1.IService1」を参照して、デフォルトのエンドポイント要素を見つけることができませんでしたクライアント構成セクション。 これは、アプリケーションに設定ファイルが見つかりませんでした。または、この契約に一致するエンドポイント要素がクライアント要素内に見つからなかった可能性があります。

私はプログラム的に接続を作成 -

EndpointAddress adr = new EndpointAddress(new Uri("http://127.0.0.1:81/Service1.svc")); 
BasicHttpBinding basic = new BasicHttpBinding(); 
ChannelFactory<ServiceReference1.IService1Channel> fact = new ChannelFactory<ServiceReference1.IService1Channel>(basic, adr); 
Label1.Text = fact.CreateChannel().GetData(8); 

スローエラー:タイプの許可を

要求「System.Net.WebPermission、システム、バージョン= 2.0.0.0、文化=中立、PublicKeyToken = b77a5c561934e089 "となります。

app.configをWebパーツ:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_IService1" /> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://127.0.0.1:81/Service1.svc" binding="basicHttpBinding" 
       bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1" 
       name="BasicHttpBinding_IService1" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

web.configファイルAzureのWCFサービス:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    </configSections> 
    <!-- To collect diagnostic traces, uncomment the section below or merge with existing system.diagnostics section. 
     To persist the traces to storage, update the DiagnosticsConnectionString setting with your storage credentials. 
     To avoid performance degradation, remember to disable tracing on production deployments. 
    <system.diagnostics>  
    <sharedListeners> 
     <add name="AzureLocalStorage" type="WCFServiceWebRole1.AzureLocalStorageTraceListener, WCFServiceWebRole1"/> 
    </sharedListeners> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing"> 
     <listeners> 
      <add name="AzureLocalStorage"/> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Verbose"> 
     <listeners> 
      <add name="AzureLocalStorage"/> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> --> 
    <system.diagnostics> 
    <trace> 
     <listeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="true"/> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 

P.S. AzureとSharepoint Onlineの両方の作業を展開すると、エラーが再び発生します。プログラムで接続を作成するのは、サンドボックスの ソリューションのapp.configがWebパーツとともにデプロイされていないためです.Web.config Sharepoint 2010でコードを複製する必要がありますが、Sharepoint Onlineではこのファイルが開発者からクローズされています。

答えて

0

まず、SharePoint Designer 2010を使用して、SQL Server、Windows Communication Foundation(WCF)サービスまたは.NETタイプを使用してデータを消費する外部コンテンツタイプを作成できることを確認しました。

次に、SharePoint BCSはSOAPとODataの両方をサポートしていますが、WCF Data ServicesはODataサービスをサポートしているため、WCF Data Serviceを使用するにはODataベース接続が必要です。データビューのWebパーツでは、ODataフィードで機能するGETリクエストを発行できます。

SharePoint Online Office 365は、.NET/C#コードとソリューション展開されたWebパーツが可能であることを意味するサンドボックスソリューションをサポートしていますが、サンドボックスソリューションではサポートしていないため記述する方法でSP Webパーツを接続できるかどうかはわかりませんアウトバウンドウェブ通話を行う。

最後の部分を確認しましたか?

0

あなたがタイプの許可のためのSharePoint リクエストから、正しいエラーが表示された "システム、System.Net.WebPermission、バージョン= 2.0.0.0、文化=中立、なPublicKeyToken = b77a5c561934e089"。 これは、サンドボックスの制限が原因です。 this MSDNの記事からサンドボックスコードに拒否されているすべてのアクセス許可が表示されます。そしてWebPermissionとSocketPermissionはサンドボックスソリューションのコードでは使用できません。

外部サービスにアクセスする場合は、TCPまたはHTTPプロトコルを使用しても問題ありません。完全な信頼ソリューションに移行する必要があります。

関連する問題