1

私はしばらくの間、Ajax対応のWCFサービスに取り組んできましたが、Windows認証を使用したことはありません. VS 2010 から直接実行すると問題なく動作しますが、Web サーバーに展開するとエラーがスローされます。

これは私のweb.configです:

<configuration>
  <system.web>
    <compilation debug="false" targetFramework="4.0"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
    <authentication mode="Windows" />
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpEndpointBinding">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="GISAlloc.Services.GISServiceBehavior">
          <serviceMetadata httpGetEnabled="false"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="GISAlloc.Services.GISServiceAspNetAjaxBehavior">
          <enableWebScript/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
    <services>
      <service name="GISAlloc.Services.GISService" behaviorConfiguration="GISAlloc.Services.GISServiceBehavior">
        <endpoint address="" bindingConfiguration="BasicHttpEndpointBinding" binding="basicHttpBinding" contract="GISAlloc.Services.GISService"/>
      </service>
    </services>
  </system.serviceModel>
</configuration>

しかし、asp.net からデータを取得しようとすると、エラー 500 が表示されます。これは Windows ログからのものです。

WebHost は要求を処理できませんでした。送信者情報: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/51925686 例外: System.ServiceModel.ServiceActivationException: コンパイル中の例外のため、サービス '/Services/GISService.svc' をアクティブ化できません。例外メッセージは次のとおりです。IIS で構成された拡張保護設定が、トランスポートで構成された設定と一致しません。ExtendedProtectionPolicy.PolicyEnforcement の値が一致しません。IIS の値は WhenSupported ですが、WCF トランスポートの値は Never です。 ---> System.NotSupportedException: IIS で構成された拡張保護の設定が、トランスポートで構成された設定と一致しません。ExtendedProtectionPolicy.PolicyEnforcement の値が一致しません。

これは私のスクリプトのコードです:

var navService = new GISAlloc.GISService();
navService.GetGISList(shownav, null, null);

私は何を間違っていますか?

4

1 に答える 1