サービスの.svcファイルを参照している間、エラーを取得します。コンパイラは.SVCファイルを生成していない"InvalidOperationException:操作の型がストリームである単一のパラメータを持つ必要があります"
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/upload?filename={filename}&objrid={objrid}")]
string uploadfile(string filename, long objrid, Stream data);`
が、これを: InvalidOperationExceptionが:操作メソッド名で要求をストリームするための操作は、そのタイプのストリームである」 サービス契約には、単一のパラメータを持っている必要があります。 。?。web.configファイルに どのように私はこの問題を解決することができます
を操作 正常に動作している。しかし、そのサービスの他の方法が機能していない: サービスタグ:
を<service behaviorConfiguration="TransferServiceBehavior" name="namespace.Service">
<endpoint address="/Service" behaviorConfiguration="webby" binding="webHttpBinding" contract="namespace.Icontract" />
<endpoint binding="basicHttpBinding" contract="namespace.Icontract" />
</service>
behaviorConfiguration:この操作は正常に動作しているが、同じサービス契約の他の操作は機能していない
: その他の操作を:
[OperationContract]
[WebGet(RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "/ProcessViewRequestMobile")]
Stream ProcessDownload();
<behavior name="TransferServiceBehavior">
<serviceMetadata httpGetEnabled="false"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" maxConcurrentInstances="500"/>
</behavior>
がcinfigを結合
私が最初の操作をコメントすると、2番目の操作はうまく動作します。 私はどのようにして両方の方法を動作させることができますか? 同じサービス契約の両方のメソッドを追加する必要があります。 ありがとうございます。
類似の例については、fallowing linkからダウンロードしてください。http://www.satalketo.co.uk/FileUploadWithFilename.zip –
サービスタグから追加のエンドポイントを削除すると検出されました。それはうまく動作します(サービス内のすべてのメソッドが動作していますが).svcファイルがまだコンパイルされていません。(同じエラー)。 サービスタグから追加エンドポイントを削除することで私の問題は解決しますが、 誰かが適切な答えを持っている場合は投稿してください。 –
"ProcessDownload"のResponseFormatと戻り値の型StreamはJsonであってはなりません。ただそれを削除してください。この操作のBodyStyle - Bare。 – Regfor