1

最近、サイトのリファクタリングを開始した結果、次のような状況になりました。フロントエンド ユーザー用のすべてのサーフェス コントローラー、ビューなどを含む別のプロジェクトがあります。このプロジェクトには、AutoFac を使用してインターフェイス、コントローラーなどを登録する StartupEventHandler もあります。バックエンド ユーザー用のコントローラーなどを含む 2 つ目のプロジェクト ファイルを開始しました。このプロジェクトはまた、startupeventhandler で AutoFac を使用し、フロントエンドとバックエンドの両方がそれらの間で同じサービスを共有するため、実質的に同じ iterface を登録します。

サイトを起動すると、フロントエンドがよく見えます。しかし、umbraco バックエンドを経由すると、ビューがレンダリングされず、「パラメーターのないコンストラクターが見つかりません」というエラーが表示されます。再構築して再起動すると、バックエンド ページはエラーなしでレンダリングされますが、フロントエンド ページで同じエラーが発生します。サイトを再開するまで。

私の推測では、AutoFac と 2 つのスタートアップ ハンドラーを使用する必要があります。ハンドラーはそれぞれ、独自のアセンブリと名前空間 ...web.client および ...web.admin に存在します。

これを解決する方法についての手がかりは誰にでもあります。おそらく独自の起動ハンドラも持っているプラ​​グインがたくさんあるので、Umbraco と関係があるとは思いません。

4

1 に答える 1

1

適切な解決策を見つけたと思います。質問で言ったように、別のプロジェクト productname.customername.web.client と productname.customername.web.admin がありました。私が行ったことは、これらのプロジェクトからすべての起動イベント ロジックを取り出し、新しいプロジェクト productname.customername.web を作成してそこに配置することです。そこから、クライアント プロジェクトと管理プロジェクトの両方への参照を追加し、コントローラーを登録しました。今はうまくいきます。

于 2013-10-16T06:45:44.240 に答える