web-dev-qa-db-ja.com

VS2012サービス参照の追加が構成ファイルを更新しない

新しい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>

クライアントサービスリファレンス

enter image description here

いくつかの調査の後、私はこれらのStackOverflowの質問を見つけました

質問1

質問2

質問

そしてこの投稿

ブログ投稿

上記のそれぞれは、私が行った「参照アセンブリでのタイプの再利用」フラグのチェックを外すという同じ問題を参照しています。

enter image description here

問題は、問題が修正されなかったことです。サービス参照を更新、削除、再作成しようとしましたが、構成ファイルが更新されません。

質問

これはサーバー側の構成に問題がありますか?それとも、これはクライアント側の問題ですか?プロキシ生成が期待どおりに機能するようにどちらかを変更するにはどうすればよいですか?

14
Phil Murray

OK、 WebHttpBinding WCFバインディングを実装するサービスへのサービス参照の追加に問題があるようです。

これについては Carlos Figueiraブログ投稿 で説明されています。

7
Phil Murray

今日もVS2012で同じ問題が発生しました。

テスト、プリプロダクション、プロダクションのセットがありますweb.config構成、「プレビュートランスフォーメーション」を使用すると、VS2012パッチを適用していることがわかります。 web.config」と関連する設定。

Preview

...しかし...私がデプロイしたとき、まあ、それは変更なしでデフォルトの「web.config」ファイルを含んでいるように見えました。

原因は、VS2012が構成を台無しにしたようで、[公開]ダイアログで、突然、プリプロダクション構成がデバッグに関連付けられたためです。え?

Publish

これを「デバッグ」から「プリプロダクション」に変更すると、問題が修正されました。

または、少なくとも、一歩前進しましたが、VS2012が展開しようとしたときに、構成名がめちゃくちゃになるという問題がまだあります。

Deploy

(落ち込んでため息。)

現在VS2013をダウンロードしています。うまくいけば、このリリースはバグが少なくなるでしょう。

0
Mike Gledhill

私の場合、Webサービス側でバインディングパラメータを間違って設定したことが原因でした。

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

これをSystem.TimeSpan(0、10、0);に設定した後。バインディング構成はweb.configファイルに生成されます。

0
Yang Zhang

maxBufferPoolSize="2097152" maxBufferSize="2097152"ファイルからweb.configを削除します。次に、サービスを更新してみてください。バインディングが正しく記載されていることを確認してください。

0
Ajay