私はしばらくの間、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);
私は何を間違っていますか?