Webサイト内にAjax対応のWebサービスがあります。WCF-Ajax対応のWebサービス。デプロイ時にサービスが定義されていません
サービスは、ウェブサイトのルート内のWebサービスのフォルダに座って、フォルダはまた、それ自身のWeb.configファイルが含まれています(Ajaxのweb.configファイルの競合私のサイトの別の層の上にコンフィグ用のバインディングなど)。
マスターサービスのscriptmanagerにWebサービスを追加し、JQueryを使用してページ内のサービスを呼び出しました。
これは、IIS 7(Vista)でローカルで実行されている状態で正常に動作しています。
しかし、Webサイト(ファイルシステムをローカルにテスト環境にコピーする必要があるため、ローカルにファイルシステムを公開する)をテスト環境(Windows Server 2008 R2上でIIs 7.5を実行)にコピーすると、Webサービス動作しないと、 "サービスが定義されていません"というJavascriptエラーが表示されます。
私がサービスを参照すると、問題なくwsdlを見ることができますが、service.svc/js(同じURLがページを探しています)を表示しようとすると404エラーが見つかりません。
私はこの件に関して多くのグーグルを行っていますが、推奨されるWeb.config修正が多数ありますが、複数の組み合わせを試しましたが、これまで何も動作していないようです。
サービスは非常に基本的です。
[ServiceContract(Namespace = "MyService")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyService
{
[OperationContract]
public JSONObject DoWork()
{
...Do some logic
return JSONObject;
}
}
JSONObjectは、ページに送信されるいくつかのプロパティを保持するクラスです。私が言ったように、これはすべてIISでローカルにホストされています。
--- EDIT
は、ここで、Webサービスと同じディレクトリに座っているのWeb.Configです:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="default" />
</webHttpBinding>
</bindings>
<services>
<service name="MyWebsite.WebServices.MyService"
behaviorConfiguration="MyWebsite.WebServices.MyServiceBehavior" >
<endpoint address="" behaviorConfiguration="MyWebsite.WebServices.MyServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="MyWebsite.WebServices.MyService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyWebsite.WebServices.MyServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="MyWebsite.WebServices.MyServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
私も私のルートweb.configファイルで次のセクションがあります。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
設定をweb.configに投稿できますか? – Rajesh
配備の相違点は何ですか?サービスを有効にしているフォルダは、対象サーバ上の仮想ディレクトリまたはアプリケーションですか?同じバージョンの.NETフレームワークなどを使用していますか? –
Webserviceフォルダは、WebアプリケーションのRoot内の単なるフォルダです。 .NETのバージョンは同じですが、唯一の主な違いは、VistaではIIS 7、Server 2008 R2ではIIS 7.5です。 – Morgeh