今日私は少しの事件を経験しました。私たちは様々な設定のためのかなり標準的なweb.configトランスフォーム設定を持つプロジェクトを持っています。変換の値が存在しないときに失敗したweb.config変換
<endpoint address="http://myserver/myservice1.svc/basicHttp"
binding="basicHttpBinding" contract="MyAssembly.IItem" name="DataAccessEndPoint"
kind="" endpointConfiguration="" />
<endpoint address="http://myserver/myservice2.svc/basicHttp"
binding="basicHttpBinding" contract="MyAssembly.IItem2" name="LoggingEndPoint"
kind="" endpointConfiguration="" />
そして、このように変換::次のようになり、当社のDAOサービスへのアクセスを制御する部分があり
<endpoint address="http://mytestserver/myservice1.svc" name="DaoEndPoint" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
<endpoint address="http://mytestserver/myservice2.svc" name="LoggingEndPoint" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
うまくいけば、ここでエラーを発見しています - DaoEndPointの名前を一致しません。残念ながら、それを作成した開発者はライブサービスに対してローカルでデバッグしていませんでした。これにより、テストのデプロイメントがになりました。が生存しています。私たちは幸いにもそれをかなり素早く取り上げましたが、ここでは極端な痛みの可能性を見ることができます!
トランスフォームファイルを作成するときに私はあなたの意図を考えていました。変換するトランスフォームを入れたら、何かです。したがって、DaoEndPoint変換があっても、メインの.configファイルに一致するDaoEndPoint項目がなければ、変換(したがって展開)が失敗した場合にはうれしいでしょう。
私は人々の意見のために取り組んでいるのですが、これは役に立ちそうですか?それは普通の過労でしょうか?私は完全にポイントを逃していますか?
また、そこにはこれがありますか?
例外を引き起こすものは何も知りませんが、役立つ可能性があります。メインweb.configに値を空白のままにしておきたい場合があります。変換されない場合は、アプリケーションですぐにエラーが発生します。有用ではありませんが、意図しないPRODアクセスを防止します。 – dbugger
この問題は、値を追加せずにローカルでデバッグすることができないため、devがその値を再び忘れると元の問題に戻ります... –