新しいIISホストWCFサービスを webHttpBinding を使用して作成しました。これは現在開発マシンのIIS Expressで実行されています。 「サービス参照の追加」を実行しようとすると、サービスが正しく構築され、Reference.csファイルは正常に見えますが、web.configファイルまたはapp.configファイルが更新されていません。
警告やエラーメッセージは受信されません。
サービスとクライアントの両方が.Net4.5を対象としています。
サービス構成
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webInteropSecureBinding" allowCookies="false" maxBufferPoolSize="2097152" maxBufferSize="2097152" maxReceivedMessageSize="2097152">
<security mode="Transport" />
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="PsmDataProvider.PsmProvider" behaviorConfiguration="SecureRest">
<clear />
<endpoint address="" binding="webHttpBinding" bindingConfiguration="webInteropSecureBinding" name="PsmProvider" contract="PsmDataProvider.IPsmProvider" listenUriMode="Explicit" behaviorConfiguration="webHttpBehavior" />
<endpoint address="mex" binding="mexHttpsBinding" name="mex" contract="IMetadataExchange" listenUriMode="Explicit" />
<Host>
<baseAddresses>
<add baseAddress="https://localhost:44300/PsmProvider/" />
</baseAddresses>
</Host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SecureRest">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
クライアント構成
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
クライアントサービスリファレンス
いくつかの調査の後、私はこれらのStackOverflowの質問を見つけました
そしてこの投稿
上記のそれぞれは、私が行った「参照アセンブリでのタイプの再利用」フラグのチェックを外すという同じ問題を参照しています。
問題は、問題が修正されなかったことです。サービス参照を更新、削除、再作成しようとしましたが、構成ファイルが更新されません。
質問
これはサーバー側の構成に問題がありますか?それとも、これはクライアント側の問題ですか?プロキシ生成が期待どおりに機能するようにどちらかを変更するにはどうすればよいですか?
OK、 WebHttpBinding WCFバインディングを実装するサービスへのサービス参照の追加に問題があるようです。
これについては Carlos Figueiraブログ投稿 で説明されています。
今日もVS2012で同じ問題が発生しました。
テスト、プリプロダクション、プロダクションのセットがありますweb.config構成、「プレビュートランスフォーメーション」を使用すると、VS2012がパッチを適用していることがわかります。 web.config」と関連する設定。
...しかし...私がデプロイしたとき、まあ、それは変更なしでデフォルトの「web.config」ファイルを含んでいるように見えました。
原因は、VS2012が構成を台無しにしたようで、[公開]ダイアログで、突然、プリプロダクション構成がデバッグに関連付けられたためです。え?
これを「デバッグ」から「プリプロダクション」に変更すると、問題が修正されました。
または、少なくとも、一歩前進しましたが、VS2012が展開しようとしたときに、構成名がめちゃくちゃになるという問題がまだあります。
(落ち込んでため息。)
現在VS2013をダウンロードしています。うまくいけば、このリリースはバグが少なくなるでしょう。
私の場合、Webサービス側でバインディングパラメータを間違って設定したことが原因でした。
binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;
これをSystem.TimeSpan(0、10、0);に設定した後。バインディング構成はweb.configファイルに生成されます。
maxBufferPoolSize="2097152" maxBufferSize="2097152"
ファイルからweb.config
を削除します。次に、サービスを更新してみてください。バインディングが正しく記載されていることを確認してください。