0

次の問題があります。私がこれまでに行った手順を説明しましょう...

  1. Visual Studio で新しい WCF サービス アプリケーションを作成しました
  2. 次に、Nuget を介してプロジェクトを更新し、最新の Web http ライブラリ (webapi.dll) を取得しました。
  3. 次に、次のようなサービスメソッドを作成しました

`

[ServiceContract]
public interface IService
{
        [OperationContract]
        [WebInvoke(Method="POST", UriTemplate="{value}")]
        string GetData(int value, Stream inputDocument);
}

`

ブラウザでmy .svcを表示しようとすると、次のようなエラーが発生します

これは構成の問題であることはわかっていますが、web.configで何を変更する必要があるのか​​ わかりません。注意してください。これは、新しい HTTP サポートの前に WCF で一般的な問題だったようです。新しい API ではそのままでは機能しません。

ポインタはありますか?

ありがとう

[編集] 私は自分の設定を含めました...

<system.serviceModel>
    <services>
      <service name="MyService.Service" behaviorConfiguration="serviceBehaviour">
        <endpoint behaviorConfiguration="endPointBehaviour" address="" binding="webHttpBinding" contract="MyService.IService"/>
      </service>
    </services>    
    <bindings>
      <webHttpBinding>
        <binding transferMode="Streamed" name="webHttpBinding" />
      </webHttpBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="endPointBehaviour">
          <webHttp/>
        </behavior>
      </endpointBehaviors>

      <serviceBehaviors>
        <behavior name="serviceBehaviour">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>    
  </system.serviceModel>
4

2 に答える 2

1

新しい WCF Web API のものと古い WCF REST のものを混同しています。IIS で Web API サービスを実行する方法の最も簡単な例としてHttpHelloResourceサンプルを見てください。コンソールでサービスを実行するさらに簡単な例については、私のブログ投稿をご覧ください。

ストリームの受け入れに関しては、最も簡単なオプションは次のような操作だと思います。

[ServiceContract]
public interface IService
{
        [OperationContract]
        [WebInvoke(Method="POST", UriTemplate="{value}")]
        string GetData(int value, HttpRequestMessage request);
}

そして、次のようにしてストリームを取得できます

var stream = request.Content.ContentReadStream
于 2011-05-09T13:56:08.783 に答える
0

わかりました、エラーメッセージが私を間違った道に導いていたようです。エラーメッセージはもっと説明的である必要があると思います。基本的に、コードに問題はありません。サービスが WCF サービスではないため、ブラウザで .svc ファイルを指定しても意味がありません。私は先に進み、コードを介してサービスにアクセスすることでこれを学びました。そして、それは機能します。助けてくれてありがとう

于 2011-05-09T12:47:39.447 に答える