2016-08-22 10 views
0

でWCFサービスを使用しているとき、私はCSLAとWCFプロジェクトを持っていると私は私のIISサーバーでこのサービスおよびMVCアプリケーションを公開しているが、Webアプリ問題MVC

システムからサービスを呼び出すとき、それは1つのエラーを投げています.ServiceModel.Security.SecurityNegotiationException:呼び出し元がサービスによって認証されていません。 ---> System.ServiceModel.FaultException:認証が失敗したため、セキュリティトークンの要求を満たすことができませんでした。

これは私がこのように私のMVCのweb.configファイルでこのサービスを消費する必要があり、私のサービスのweb.config

<system.serviceModel> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <services> 
     <service name="Csla.Server.Hosts.WcfPortal" behaviorConfiguration="returnFaults"> 
     <endpoint binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_IWcfPortal" contract="Csla.Server.Hosts.IWcfPortal" /> 
     </service> 
     <service name="Csla.Server.Hosts.Mobile.WcfPortal" behaviorConfiguration="returnFaults"> 
     <endpoint binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IWcfPortal" contract="Csla.Server.Hosts.Mobile.IWcfPortal" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="basicHttpBinding_IWcfPortal" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"> 
      <readerQuotas maxBytesPerRead="2147483647" maxArrayLength="2147483647" maxStringContentLength="2147483647" maxNameTableCharCount="2147483647" maxDepth="2147483647" /> 
     </binding> 
     </basicHttpBinding> 
     <wsHttpBinding> 
     <binding name="wsHttpBinding_IWcfPortal" maxReceivedMessageSize="2147483647"> 
      <readerQuotas maxBytesPerRead="2147483647" maxArrayLength="2147483647" maxStringContentLength="2147483647" maxNameTableCharCount="2147483647" maxDepth="2147483647" /> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="returnFaults"> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      <serviceMetadata httpGetEnabled="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

です。

<add key="CslaAuthentication" value="Csla" /> 
<add key="CslaDataPortalProxy" value="Csla.DataPortalClient.WcfProxy, Csla" /> 
<add key="CslaDataPortalUrl" value="http://www.someurl.net/WcfFullPortal.svc" /> 

私のサービスプロジェクトから直接サービスを呼び出した後、正常に動作していました。私は出版されたホスト名(http://www.someurl.net/WcfFullPortal.svc)を使用する場合にも細かい

<add key="CslaDataPortalUrl" value="http://10.4.56.75/WcfFullPortal.svc" /> 

唯一の問題を作業

<add key="CslaDataPortalUrl" value="http://localhost:11170/WcfFullPortal.svc" /> 

も公表IPアドレスを使用してみました、。私はこのURLをブラウザで開いています。

答えて

0

web.config <system.serviceModel>セクションのセクションの直後に、次のバインド設定を追加します。

<bindings> 
     <wsHttpBinding> 
      <binding name="TheBindingConfig"> 
       <security mode="None" /> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
+0

おかげ@Rayを追加します。 しかし、これは私のために働いていない。同じエラーが表示されます。 – Nitheesh

+0

解決策を見つけたら、私と共有できますか?ありがとう – Ray

+0

私はこの問題を修正しました。上記をご覧ください。 – Nitheesh

0

だけ Csla.DataPortalClient.HttpProxyへと<add key="CslaDataPortalUrl" value="http://www.someurl.net/WcfFullPortal.svc" />

<add key="CslaDataPortalUrl" value="http://www.someurl.net/DataPortal/PostAsync" />Csla.DataPortalClient.WcfProxyを変更しても、あなたの再生のため

protected void Application_AuthenticateRequest(Object sender, EventArgs e) 
     { 
      HttpContext.Current.User = new Csla.Security.UnauthenticatedPrincipal(); 
     } 
Global.asax.cs