2013-08-06 7 views
12

開発マシンで現在IIS Express上で動作しているwebHttpBindingを使用して新しいIISホストWCFサービスを作成しました。サービス参照を追加しようとすると、サービスが正しく構築されます。 Reference.csファイルは正常に表示されますが、web.configまたはapp.configファイルは更新されていません。VS2012サービスリファレンスを追加しない設定ファイルを更新しない

警告またはエラーメッセージは受信されません。

サービスとクライアントの両方が.Net 4.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の質問

Question 1

Question 2

Question 3

そして、このポスト

Blog post

上記REFの各私が行った "References types in references assemblies"フラグを解除するのと同じ問題になります。

enter image description here

問題は、それが問題を解決していなかったです。私は、サービス参照の更新と削除と再作成を試みましたが、設定ファイルは更新されません。これは、サーバー側の設定に問題

質問

ですか?またはこれはクライアント側の問題ですか?プロキシの生成が期待通りに機能するように、どちらを変更するのですか?

答えて

6

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

これは私がVS2012で今日も同じ問題を抱えていたCarlos Figueira Blog Post

+0

これが私の問題の原因でした。 Visual Studioからサービス参照を生成するときに、RESTfulサービスのように動作するように構成されたWCFサービスにこの問題があります – Sal

0

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

+0

バインディングのすべてのオプションを削除し、削除し、サービス参照を再作成しましたが、問題は解決しませんでした。 –

+0

あなたは拘束力があります。しかしそれは正しい方法です。 –

0

で議論されています。

私はTest、PreProduction、Productionのセットを持っています。web。コンフィグ構成、私は「プレビュー変換」を使用し、VS2012 は、関連する設定と私の「web.configファイルを」パッチ適用たことを見ることができました。..

Preview

...しかし...ときに私デフォルトの "web.config"ファイルを変更せずにインクルードしたように見えました。

原因はVS2012が構成を混乱させていたように見えました.Publishダイアログで突然、私のPreProduction構成がDebugに関連付けられていました。ハァッ?

"デバッグ" から "にPreProduction" にこれを変更する

Publish

は私のために問題を修正しました。

少なくとも、私は一歩前進しましたが、展開しようとしたときにVS2012が設定名を混乱させるという問題がまだ残っています。

Deploy

(落ち込んため息。)現在、VS2013をダウンロード

。うまくいけば、このリリースはバギーが少なくなるでしょう。

0

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

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

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

関連する問題