0

この例のPranayRanaの功績:http: //www.codeproject.com/Articles/223572/Calling-Cross-Domain-WCF-service-using-Jquery-Java

実際のWCFへのリンクで失敗する問題があります:http: //jsfiddle.net/TyrHW/

マークアップ:

<%@ ServiceHost Language="C#" Debug="true" Service="WCF1.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%>

C#WCFサービス

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;

namespace WCF1
{
        [DataContract]
        public class Customer
        {
            [DataMember]
            public string Name;

            [DataMember]
        public string Address;


        }


  [ServiceContract(Namespace = "JsonpAjaxService")]
  [AspNetCompatibilityRequirements(RequirementsMode =   AspNetCompatibilityRequirementsMode.Allowed)]

    public class Service1
    {
        [WebGet(ResponseFormat = WebMessageFormat.Json)]
        public Customer GetCustomer()
        {
            return new Customer() { Name = "Jacob Pines", Address = "999 S William St." };
        }
    }
    }

web.config

<?xml version="1.0"?>
<configuration>

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

    </system.web>

    <system.serviceModel >
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
            <standardEndpoints>
                <webScriptEndpoint>
                        <standardEndpoint name="" crossDomainScriptAccessEnabled="true"/>
                </webScriptEndpoint>
            </standardEndpoints>


    </system.serviceModel>


    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>

    </system.webServer>

    <system.web>
        <customErrors mode="Off"/>
    </system.web>


</configuration>

ローカルでは、godaddy.net4.0ホストと同じ結果が得られます。asp.netレベルを確認しました。goddadyでのIISセキュリティは匿名に設定されています。ブラウザでサービスへのURLを入力すると、Godaddyに送信した認証に明らかな問題が発生します。同じことをローカルで行うと、jsFiddleからは未定義になりますが、正常なWebサービスに見えるものが得られます。

それは私にとってまったく新しいことです..だからそれは使命でした。ありがとう。

4

1 に答える 1

1

次の記事からの引用:

これはすべてカッシーニで実行すると正常に機能しますが、IISでホストする場合は、2つのことに注意する必要があります。まず、IISとWCFが正しくインストールおよび登録されていることを確認する必要があります。IISがSVCファイルを咳き込みたくないと思われる場合(http://// AjaxService.svcを試して確認できます)、%WINDIR%\Microsoft.NETからコマンドServiceModelReg.exe/ i/xを実行してみてください。 \ Framework \ v3.0 \ WindowsCommunicationFoundation。このコマンドを実行した後、IISを再起動します。次に、デフォルトのASP.NET 2.0 Webサイトを作成した場合、次のエラーメッセージが表示されることがあります。

IIS specified authentication schemes 'IntegratedWindowsAuthentication, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.

これを修正するには、IISマネージャーでWebサイトを右クリックし、[プロパティ]を選択します。次に、[ディレクトリ]タブをクリックし、[匿名アクセスおよび認証制御]領域の[編集]ボタンをクリックします。匿名アクセスと統合Windows認証の両方が選択されていることがわかります。それらの1つを選択解除してから、IISを再起動します。その後、アプリケーションはスムーズに動作するはずです。

あなたの場合、統合Windows認証を基本認証に置き換えてください。

于 2013-01-27T17:23:05.143 に答える