2009-07-29 20 views
1

公開Webサーバー上のIISでホストされているWCFサービスがあり、検出可能である必要があります。WCFサービスディスカバリのDNS解決

http://myserver.mydomain/myfolder/myService.svcを参照すると、表示されるページには、指定したURLではなく実際のマシン名が表示されます。 http://myRealServer.myRealDomain/myFolder/myService.svc?wsdlをリンクとして使用してWSDLを表示します。

同様に、soapUIなどのツールを使用してサービスに接続すると、追加の「wsdl0」出力などへのリンクには、提供されたURLではなく実際のサーバーの詳細が提供されます(したがって、 。

私の質問:このURLを正しく表示するにはどうすれば変更できますか?

注:私の開発環境はWin2003でIIS6を使用し、ライブ環境はWin2008でIIS7です。この問題は両方の環境で発生します。

+0

http://stackoverflow.com/questions/1078894/generated-wcf-proxy-configuration-uses-servers-local-name/ –

+0

@Partarioの重複するように思える:私は上からホストヘッダー溶液を試みました違いはありません。要素の変更を含めても、これをもう一度試してみます。 –

答えて

0

あなたができることは、静的なWSDLを提供して、それを利用可能にする前に好みに合わせて調整して修正することです。

この場合、実際の実行中のサービスにクエリを実行してWSDLを作成する代わりに、静的なWSDLが「そのまま」提供されます。これはパフォーマンスの向上にもなります。 WSDLやメタデータのためのリクエストが来たときに、この静的WSDLはなります、今

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="StaticWsdl"> 
      <serviceMetadata httpGetEnabled="true" 
       externalMetadataLocation="http://localhost:8000/YourService/YourWSDL.wsdl"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

:これを実行するためには、このようなWSDLファイルの名前と場所を指定する

が必要代わりに提供されます。

これにより、渡されるデータのXMLスキーマを含む、必要なすべての情報を含む単一のWSDLを作成することもできます。外部WSDLまたはXSDフラグメントのインポートまたは参照はもう必要ありません。

マルク・

+0

@marc_s:これは通常のIISホストヘッダーの問題ではありませんか?外部名用のホストヘッダーがない場合は、マシン名を使用しますか? –

+0

@John:わからない - 私はその特定の問題に精通していない(私自身はIISでホストしていないので) –

+0

@marc_s&@John:ホストヘッダーの問題ではないようだ。私はこれを追加しようとしましたが、それは違いはありません。 –

1

ないIIS7(私はそれが可能でなければならないと確信しているが)わからしかし、IIS6であなたのウェブサイトのホストヘッダーを設定することができます。これを "myserver.mydomain"に設定すると、物事を並べ替えることができます。 Generated WCF proxy configuration uses server's local nameを参照してください。

+0

@Partario:サイトにホストヘッダーを追加しようとしましたが、提供されるホストヘッダー値ではなく実際のマシン名が表示され続けます。しかし、ありがとう。 –

関連する問題