2011-10-26 18 views
0

これは私をうまく駆動しています。私は.net 4、wcfサービスがjsonpを出力しています。それはvnetと組み込みのWebサーバーを使用して動作しますが、iis7のWindows 7 64bitでホストしようとすると、何の応答も得られません。jsonp with wcfはvnetサーバーとは動作しますが、IISでは動作しません

私はIIS7でホストされている間、SVCファイルに移動しようとすると、私は

「このサービスのセキュリティ設定が 『匿名』認証を必要とするが、それは、このサービスをホストするIISアプリケーションに対して有効になっていません。」を取得

私はIIS7

でホストされているサービスからの応答を得ることはありませんクライアントjQueryのJSONPリクエストを経由してアクセスしようとして対内でホストする場合、サービス(web.configファイル)の設定​​に問題がない場合はここでは、ネットのWebサーバー(IISだけでは動作しません)

は、サイトが確保NTLM /窓でなければならない設定

<system.serviceModel> 
    <behaviors> 
    <endpointBehaviors> 
     <behavior name="webHttpBehavior"> 
     <webHttp /> 
     </behavior> 
    </endpointBehaviors> 
    </behaviors> 
    <bindings> 
    <webHttpBinding> 
     <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" /> 
    </webHttpBinding> 
    </bindings> 
    <services> 
    <service name="ServiceSite.CustomersService"> 
     <endpoint address="" binding="webHttpBinding" 
       bindingConfiguration="webHttpBindingWithJsonP" contract="ServiceSite.CustomersService" 
       behaviorConfiguration="webHttpBehavior"/> 
    </service> 
    </services> 
</system.serviceModel> 

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
</system.web> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

です。 は、私は本当に、認証サービス ではサポートされていませんjavascriptのコールバック私は今、クロスドメインを取得し、SVCファイルを閲覧するとweb.configファイルのバインディング部分

  <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Ntlm"/> 
     </security> 

に、次の追加しましたか?これは本当ですかjsonpはサポートされていませんか?

答えて

0

これはおそらく、Webサイトの設定が間違っていることを示します。 IISマネージャーのWebサイトの認証機能にアクセスし、設定されていることを確認します。

Sample

+0

サイトで匿名認証を無効にする必要があります(ntlmを保護する必要があります)。申し訳ありませんが、私はその問題を文書化しませんでした。 – David

0

ため、私はJSONPクロスドメインはあなたが常に独自のセキュリティシステムを実装する必要があり、今日の欠点でどのように機能するかをかなり確信しています。

JSONPのクロスドメイン認証にSSLとHMACのセキュリティを使用しています。私はサービスで自分自身の認証をします。

JSONPを実行するときに、実際のXMLHTTPリクエストオブジェクトではなく、タグを追加することで行われるため、リクエストにヘッダーなどを設定することはできません。

関連する問題