問題タブ [webactivator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - app_start または webactivator を使用してエリアを登録する方法は?
電話するのは避けたい
AreaRegistration.RegisterAllAreas()
すべてのスタートアップ ロジックを App_Start フォルダー内の個々のクラスに移動しようとしているためです。しかし、私はこれを機能させることに失敗しました。最初のオプションは、次のようなコードを使用しようとしました。
PreApplicationStartMethod は System.Web 名前空間から来ています。この場合、領域を登録する呼び出しが早すぎます。
David Ebbo によるこの投稿に基づく 2 番目のアプローチでは、 WebActivator を使用します。
残念ながら、エラーはスローされませんが、エリアへの移動の試行は失敗します (まるで登録が行われなかったかのように)。
Global.asax からの直接呼び出しではなく、アセンブリ ディレクティブを使用してスタートアップ クラスから ASP.NET MVC 5 に領域を登録する適切な方法は何ですか?
更新 1:これが私の AreaRegistration コードです。
何らかの理由でデフォルトは無視されますが、/admin/home/index/0 への移動は機能します。/admin、/admin/home、および /admin/home/index すべて 404。
c# - Unity.AspNet.WebApi を使用して global.asax の型を解決する方法
NuGet を介して Unity.AspNet.WebApi を Asp.Net WebApi アプリケーションに取得しました。すべてのコントローラーは、コンストラクター インジェクションによってクラスを解決できます。簡単でシンプル。
ただし、ここでは UnityContainer に直接アクセスできないため、global.asax のクラスを解決する方法がわかりません。以下で試してみましたが、うまくいっているようです。より良い方法はありますか?
また、これは起動コードであるため、UnityContainer を登録する WebActivator と衝突するかどうかは不明です。Application_Start() メソッドで常に Dependencyresolver の準備ができているかどうかが心配です。
powershell - NuGet:Powershell を介してコード行を追加する可能性はありますか?
まとめた NuGet パッケージがいくつかあります。そのうちの 1 つは、他のすべてのパッケージから参照される共通のプロジェクトです。
この共通プロジェクトは構成クラスをフォルダーに挿入し、App_Start
このクラスのメソッドが WebActivator によって呼び出されます。
他のパッケージの 1 つで、このメソッドにもう 1 行コードを追加したいのですが、これを行う方法を見つけるのに苦労しています。
この 1 行のコードだけを含む追加のクラスを非常に簡単に追加できることはわかっていますが、可能であれば、Install.ps1
powershell スクリプトを使用してコード行を既存の構成クラスに追加することをお勧めします。
プロ処理された*.cs.ppファイルを使用すると、既存のファイルが上書きされ (または新しいファイルが追加され)、*.cs.transformはそのようなファイルでは機能しません。
クラスがどこにあり、それが何と呼ばれているか、そしてメソッドが何と呼ばれているかを知っているので、Powershell はそのメソッドの最後に行を追加する手段を提供しますか?
asp.net-mvc - Azure CloudConfigurationManager.GetSetting が null を返す理由
エミュレーターでローカルに実行されるクラウド サービス Web ロール プロジェクトがありますが、展開すると実行されません。与えられたエラーは次のとおりです。
関連する行のコードは、github のスタック トレースで確認できます。
https://github.com/michael-lang/candor-common/
CloudTableProxy のエラーにつながる行は次のとおりです。
カスタム エラー「The cloud connectionName has not been configured.」がスローされないため、CloudConfigurationManager.GetSetting に渡された _connectionName が null ではないことがわかります。したがって、CloudConfigurationManager は、指定された名前に対して null を返す呼び出しです。この名前はローカルで実行すると値を返すため、クラウド Web ロールにデプロイしたときに値が見つからない理由がわかりません。接続名がタイプミスで入力された場合、ローカルでも機能しません。確かに、使用する接続に名前を付ける私の一般的なログ構成は次のとおりです。
同じ Candor.Common コンポーネントを使用するクラウド サービス Web ロールを使用したまったく異なるソリューションも持っているため、それらが問題であるとは思いません。
同じラップトップを使用して両方のソリューションを開発しているため、どちらも Azure 2.2 Tools バージョンを使用しています。各ソリューションのクラウド サービス プロジェクトのプロパティを調べると、これが確認されます。
すべてのコンポーネントと NuGet パッケージ参照を調べて、ソリューションを通じてバージョンの不一致がないことを確認しました。機能するソリューションと機能しないソリューションの間で、同じコンポーネントが copy-local=true に設定されます。また、バインディング リダイレクトも同じです。これは私の最大の問題でしたが、この接続の問題が発生する前に解決されました。
機能していないサービスの展開構成:
また、最近、これらと同じ接続名を Web アプリケーションの appsettings に入れてみました。これは、コードが RoleEnvironment.OnStart の前に実行されていたという 3 年前のコメントへの対応でした。ただし、この試行でも同じエラーが発生します。
試行の様子は次のとおりです。
このエラーのコードは、WebActivator 2.0.6 を使用してアプリケーションの起動時に実行されますが、私の作業ソリューションは WebActivator 2.0.4 を使用します。しかし、WebActivator のリリース ノートには、Debug から "Retail" へのコンパイルの変更と、2 つのバージョン間のライセンスの変更のみが示されています。これらの変更は 1 年前のものです。
タイミングが問題だった場合は、エラーの呼び出しの直前に Thread.Sleep(1000) を追加しようとしましたが、どちらも機能しなかったため、削除します。
これは、機能するソリューションと機能しないソリューションの両方で構成された最初のプロバイダーです。
エラーが発生した Web アプリケーションで使用されたパッケージのリストを次に示します。
私の動作するソリューションと動作しないソリューションの間にはパッケージの違いがいくつかありますが、これらがエラーに当てはまるとは思いませんでした。MVC 5.0 から 5.2.3 に、javascript 関連のパッケージをアップグレードし、Candor.WindowsAzure を 1.2.10 から 1.3 にアップグレードしました。関係があるように思えるかもしれませんが、唯一のコード変更は、バッチ更新メソッドの実装を置き換えることでした。
実用的なソリューション プロジェクト パッケージ:
c# - WebActivatorEx causing ArgumentException on Application Start
I keep getting the following ArgumentException when trying to visit a page after installing the WebActivatorEx nuget package.
If I remove the WebActivatorEx package everything works again but I need WebActivatorEx in order to use DI.
I can't find anything online to suggest what the issue might be. I've tried creating a Startup
class in the Pharma.Mvc
namespace with a static method called Configuration
which does not appear to fix the issue.
Also, before I installed the package there was no Pharma.Mvc
namespace nor was there a Startup
class. So I'm really confused as to why this is happening.
I'm targeting the ASP.NET 4.5.1 Framework when I build the application however I have noticed that in the stack trace at the bottom it reads Microsoft .NET 4 Framework Version:4.0.30319
and I'm not sure if this is correct or not.