2011-12-21 2 views
3

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> 
+1

設定をweb.configに投稿できますか? – Rajesh

+0

配備の相違点は何ですか?サービスを有効にしているフォルダは、対象サーバ上の仮想ディレクトリまたはアプリケーションですか?同じバージョンの.NETフレームワークなどを使用していますか? –

+0

Webserviceフォルダは、WebアプリケーションのRoot内の単なるフォルダです。 .NETのバージョンは同じですが、唯一の主な違いは、VistaではIIS 7、Server 2008 R2ではIIS 7.5です。 – Morgeh

答えて

1

私はこの問題を追跡できました。

パッチが当てられます。次の資料ではIIS 7.5とWindows 7で問題を修正するアップデートを言及したが、パッチは、VistaとWindows Serverにも適用可能である2008年

http://support.microsoft.com/kb/2520479

並べ替えを必要とする問題を修正するために第2のオプションがあります影響を受けるコンピュータのIIS applicationHost.configファイルのハンドラを試してみましたが、実際に問題を解決しています。

2番目のオプションについては、上記の記事で説明しています。

関連する問題