質問

私が関連している可能性があり問題のカップルを持つか、ないかもしれませんよ。私は私のデータサービスへの参照を追加するには、Visual Studioでサービス参照の追加]を使用する場合、それが生成するreference.csがコンパイルされないことに気づきました。これは、不足している名前空間について不平を言います。私がコンパイルしてそれを修正することができますが、これは、私は、参照を更新するたびに発生し、そしてそれは、そのような「意志この原因他の問題」。

のように、あまりにも他のレベルで心配です

また、私はこれを行うとき、私のホストサーバ(データサービスをホストするコンソールアプリケーション)はこれをログに記録していることに気づきました

An exception occurred [System.Data.Services.DataServiceException] :: The URL 
representing the root of the service only supports GET requests.

このサービスの設定です:

  <service behaviorConfiguration="behaviour" name="StatsPlus.Server.HostedServices.SPDataServiceHost">
    <endpoint address="svc" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8752/DataService/"/>
      </baseAddresses>
    </host>
  </service>

と行動ます:

    <behavior name="behaviour">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
      <dataContractSerializer maxItemsInObjectGraph="10"/>
    </behavior>

私はsvcutil http://localhost:8752/DataService/を実行しようとすると、私はこれを取得ます:

HTTP GET Error  
URI: http://localhost:8752/DataService
There was an error downloading 'http://localhost:8752/DataService'.  
The request failed with HTTP status 405: Method Not Allowed.  

任意のアイデア?感謝

おかげ

役に立ちましたか?

解決

私はあなたが間違ったアドレスに接続していると思います。あなたはベースアドレスを持つ

<add baseAddress="http://localhost:8752/DataService/"/>

とその相対エンドポイントアドレスの上に

<endpoint address="svc" binding="webHttpBinding" 

は、完全なURLを2つの組み合わせになりますのでます:

http://localhost:8752/DataService/svc

あなたが接続しようとしましたが??

あなたは本当に、「MEX」WCF RESTサービスとメタデータ交換エンドポイントを持つことができる場合は、

私はわかりません。私は、WCFデータサービスのクライアント側のプロキシがHTTPエンドポイントからの特別なURLコールを介してそのメタデータを取得するという印象の下にありました。そのため、おそらく同様にあなたの設定からそれを削除しよう。(私は信じて、あなたがそのサービスにsvcutilを使用することはできません - 私は間違っていない場合はsvcutilは、唯一のSOAPサービス呼び出しのためである)

あなたはwebHttpBindingとセルフホスティングを使用しているので、また、あなたがwebHttpの振る舞いを追加する必要があります:

<behavior name="behaviour">
  <serviceMetadata httpGetEnabled="true"/>
  <serviceDebug includeExceptionDetailInFaults="true"/>
  <dataContractSerializer maxItemsInObjectGraph="10"/>
  <webHttp />
</behavior>
あなたはこれらの2つの手順を行う場合は、

は、私はあなたがあなたのWCFデータサービスで取得することができるはずだと思います。それを試してみて、私たちに知らせて!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top