2016-06-15 5 views
0

絶対値ではなく相対的なWSDLにスキーマ位置を設定する方法はありますか?私はこれに対する解決策を探していましたが、途中でWsdl世代についてもっと学んでいますが、Wsdlのこの部分をどこで設定できるのか分かりませんでした。この相対パス作ることを望んで探して相対パスを使用するようにWCF WebServiceでWSDLを強制する

Partial WSDL Absolute Path

Partial WSDL Relative Path

イム。

これはwebconfigでこれを強制する方法があると私は思っていますが、自分自身でまだ解決策を見つけることができていません。可能であれば、どんな助けでも大歓迎です。それが不可能な場合は、私もそれを解決策として受け入れます。ありがとう!

+0

最初の質問...なぜそれをしたいですか?標準です – techspider

+1

IBMのアプライアンスを使用してトラフィックをルーティングし、相対パスを使用したいと考えています。現時点では標準とは言えませんが、相対パスを使用するように求められました。アプライアンスは相対パスを設定するために使用されましたが、最近のファームウェアアップデートでこれが停止しました。現時点で問題を解決しようとしています。長い話です。私はこれが可能かどうかを知る必要があります。感謝! – Puerto

+0

わからないが、これが達成しようとしているものかどうかを確認するhttp://stackoverflow.com/questions/13154726/how-do-you-share-wcf-wsdl-and-xsds-to-a-client-without-サービスへのアクセス- – techspider

答えて

0

ご迷惑をおかけして申し訳ございません。私は他のいくつかの問題のために引き離されました。だから私のソリューションでは、私自身のWSDLを作成してローカルに保存する必要がありました。基本的には、WebServiceで生成されたものから始めて、それを.WSDLファイルとして保存するだけです。必要な方法を編集します。私のように相対パスが必要な場合は、単に相対パスを追加してWebサービスアプリケーションのルートに保存しました。 、それから私は、web.configファイル内の 'httpGetEnabled = Falseの' serviceMetaDataを無効

-<xsd:schema targetNamespace="http://tempuri.org/Imports"> 

    <xsd:import namespace="http://tempuri.org/" schemaLocation="xsd0.xsd"/> 

    <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="xsd1.xsd"/> 

</xsd:schema> 

:私は保存し、そのような相対パスにschemaLocationsを変えローカルWSDLへ

using the standard link http://localhost:52038/Service1.svc?wsdl 
-<xsd:schema targetNamespace="http://tempuri.org/Imports"> 

    <xsd:import namespace="http://tempuri.org/"schemaLocation="http://localhost:52038/Service1.svc?xsd=xsd0"/> 

    <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="http://localhost:52038/Service1.svc?xsd=xsd1"/> 

</xsd:schema> 

:それはここから行ってきましたWebServiceはもはやWSDLを生成しません。このWSDLを現在消費者に提供していた場合は、私のカスタムローカルWSDLへのパスを与えますhttp://localhost:52038/Service1.wsdl

私はこの件に関してもっと多くのことが言えると思いますが、 。免責事項、これは何かの一般的なPOCに関するサンプルプロジェクトです。ありがとうございました!

関連する問題