2013-03-03 85 views
7

ServiceStackで構築されたWebサービスで動作するVS 2010または2012のサービス参照を取得できません。 AssemblyInfo.csファイルにContractNameSpace属性を追加し、すべてのDTOが同じネームスペースにあるが運がないことを保証するなど、私はguideのgithubに従ってきました。代わりに、以下に含まれているいくつかのビルド警告のエラーメッセージが表示されます。サービス参照の追加エラー「wsdl:portTypeをインポートできません」

誰かが間違っていることについて何か提案がありますか?

Warning 1 Custom tool warning: Cannot import wsdl:portType 
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter 
Error: Schema with target namespace 'http://schemas.servicestack.net/types' could not be found. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='ISyncReply'] 

Warning 2 Custom tool warning: Cannot import wsdl:binding 
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. 
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='ISyncReply'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_ISyncReply'] 

Warning 3 Custom tool warning: Cannot import wsdl:port 
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. 
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_ISyncReply'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:service[@name='SyncReply']/wsdl:port[@name='WSHttpBinding_ISyncReply'] 

Warning 4 Custom tool warning: Cannot import wsdl:portType 
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter 
Error: Schema with target namespace 'http://schemas.servicestack.net/types' could not be found. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='IOneWay'] 

Warning 5 Custom tool warning: Cannot import wsdl:binding 
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. 
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='IOneWay'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_IOneWay'] 

Warning 6 Custom tool warning: Cannot import wsdl:port 
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. 
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_IOneWay'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:service[@name='AsyncOneWay']/wsdl:port[@name='WSHttpBinding_IOneWay'] 

Warning 1 Custom tool warning: Cannot import wsdl:portType 
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter 
Error: Schema with target namespace 'http://schemas.servicestack.net/types' could not be found. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='ISyncReply'] 

Warning 2 Custom tool warning: Cannot import wsdl:binding 
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. 
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='ISyncReply'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_ISyncReply'] 

Warning 3 Custom tool warning: Cannot import wsdl:port 
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. 
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_ISyncReply'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:service[@name='SyncReply']/wsdl:port[@name='WSHttpBinding_ISyncReply'] 

Warning 4 Custom tool warning: Cannot import wsdl:portType 
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter 
Error: Schema with target namespace 'http://schemas.servicestack.net/types' could not be found. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='IOneWay'] 

Warning 5 Custom tool warning: Cannot import wsdl:binding 
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. 
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:portType[@name='IOneWay'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_IOneWay'] 

Warning 6 Custom tool warning: Cannot import wsdl:port 
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. 
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:binding[@name='WSHttpBinding_IOneWay'] 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://schemas.servicestack.net/types']/wsdl:service[@name='AsyncOneWay']/wsdl:port[@name='WSHttpBinding_IOneWay'] 
+4

は、サービス参照設定ヘルプの「参照されるアセンブリで再利用型」を無効にしてい役に立てば幸い? – Moofafa

+0

ようこそSOにようこそ質問を残すためにコメントセクションを使用してください –

+0

私は本当にこれも苦労しています、私のDTOのdatacontractとdatamember attribtutesを持っていると私は本当に簡単にそれを働かせて、あなたの上にあなたのようにまだクラッシュします – ozz

答えて

5

私の問題の根本を発見しました。私のDTOの1つは、[DataContract][DataMember]属性で装飾されていませんでした。

これは、ServiceStackによって生成されたWSDLにこのDTOの型情報が含まれていないことを意味します。したがって、このDTO型VSで参照されたWSDLのメッセージサブセクションの1つが見つからず、例外がスローされました。

うまくいけば、これは他の誰かを助けるでしょう。私が間違ったことを理解するのにかなり時間がかかりました。

+1

これは既に[SOAP Support Wikiページ](https://github.com/ServiceStack/ServiceStack/wiki/SOAP-support)のDTOオブジェクトに[DataContract]属性があることを確認しています... ' – mythz

0

もう一つの理由は、targetNamespaceが競合を起こしている可能性があります。tempuri.orgのインスタンスを削除してください。一貫性のある名前空間を適切に置き、上記のエラーを解決します。

targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IMyInterafaceService' 

は、それが

+0

一貫して使用されている限り、「tempuri.org」の使用には本質的に間違ったものはありません。 – Abel

関連する問題