0

私は Service.svc ファイルを含む Web サイトを持っています。これを [新しいアイテムの追加] -> [AJAX 対応の WCF サービス] を使用して作成しました。数週間、すべて正常に動作しました。今日、EPplus.dll をインポートしていくつかの Excel ファイルを生成しました。コンパイルしようとすると、このエラーが発生します

Error   1   Reference.svcmap: 
Failed to generate code for the service reference 'QUAY.Tractebel.COP.Servicos'.
Cannot import wsdl:portType  Detail: An exception was thrown while running a WSDL import extension:
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: Type 'OfficeOpenXml.ExcelRangeBase' is a recursive collection data contract which is not supported. 
Consider modifying the definition of collection 'OfficeOpenXml.ExcelRangeBase' to remove references to itself.  
XPath to Error Source: //wsdl:definitions[@targetNamespace='']/wsdl:portType[@name='Servicos']  App_WebReferences/QUAY/Tractebel/COP/Servicos/  

私はそれを解決する方法がわかりません、誰かが私を助けることができますか?

4

1 に答える 1

3

私が使用するカスタムwcfクラスを参照しているときに同じ問題が発生しました。奇妙な問題は、古い開発用 PC (Windows Vista 32 ビット、Visual Studio 2010) ではこの問題が発生せず、新しいシステム (Windows 8 64 ビット) でのみポップアップすることです。ばぁ。

ただし、App_WebReferencesを開く問題を回避しました->「サービス名」->依存するRefrenceアイコンを右クリック->「サービス参照の構成」

この画面で、オプション ボタンを [参照されているすべてのアセンブリで型を再利用する] から [指定されたアセンブリで型を再利用する] に移動し、EPPlus を除くすべての依存ライブラリをチェックします。

コンパイルして...出来上がり

誰かが論理的な説明もあれば、喜んで聞きます

于 2013-01-05T16:39:39.213 に答える