これを修正する方法を理解できません。約 1 週間前に発生しましたが、私が行った変更がこれを引き起こした可能性があるかどうかはわかりません。私たちは SVN を使用しており、これらのエラーの可能性のある原因に対して行った変更をロールバックしましたが、asp.net webforms プロジェクトをビルドすると、まだ次のエラーが発生します。
The namespace <global namespace> already contains a definition for 'TrxStatus'
The namespace <global namespace> already contains a definition for 'MessageStatusType'
これら 2 つのエラーは 5 回繰り返され (合計 10 エラー)、ソース ファイルは、プロジェクト内の Web サービスの負荷に対して生成されたコードです。
ファイル名は App_Code.34kjg234jh1.cs (構成されていますが、アイデアはわかります) であり、各ファイルの上部には、どこから生成されているかが示されています。
App_Code\App_WebReferences\SomeService\SomeWebService.wsdl
.wsdl 定義に入ると、次の行に基づいて、すべて同じ名前空間に住んでいると思います:
<s:schema elementFormDefault="qualified" targetNamespace="http://www.thirdpartysite.com/Soa/Foundation/">
<s:import namespace="http://www.thirdpartysite.com/Soa/Foundation/MessageDefinition.xsd" />
これは以前の開発者から継承されたアプリケーションです (ここには 1 つの開発者ショップがあるため、通常は暗闇の中で探し回ります)。そのため、アプリケーションに約 7 つの異なるWeb サービスがあり、すべてがその名前空間を持っている理由がわかりません。定義と問題のある 'TrxStatus' と 'MessageStatusType' を持つ ALL。
名前空間は適切な名前空間であるため (私は信じています)、名前空間を変更したくありませんが、この競合をなくす必要もあります。どちらの方向に進むべきかわかりません。
.wsdl ファイルの 1 つにアクセスして、TrxStatus を TrxStatus_Whatever に変更しようとしましたが、次のエラーが発生しました。
Unable to import binding 'MyWebServiceName' from namespace http://www.thirdpartysite.com/SOA/Foundation
もう 1 つの考えられる手がかりは、さまざまな Web サービスから次のような大量の警告を受け取っていることです。
The 'http://www.thirdpartysite.com/Soa/Foundation/MessageDefinition.xsd:SomeElementName' element is not declared.
これに対する可能な解決策について何か提案はありますか? 根本的な原因は何ですか?これらすべてのサービスを書き直す必要があるとは言わないでください....