0

ローカル マシンでこのエラーが発生する原因がわかりません。それは仮想パスか何かと関係があると言っていますが、私は研究を試みましたが、私はまだ.netの学習曲線のペースにあるので、そもそもアイデアがありません

ここが本題です

「/」アプリケーションでサーバー エラーが発生しました。値を null にすることはできません。パラメーター名: virtualPath 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.ArgumentNullException: 値を null にすることはできません。パラメータ名: virtualPath

ソース エラー:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

スタックトレース:

[ArgumentNullException: 値を null にすることはできません。パラメータ名: virtualPath] System.Web.VirtualPath.Create(String virtualPath, VirtualPathOptions options) +8956140
System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(String virtualPath, Boolean isFile) +31
System.Web.Hosting.MapPathBasedVirtualPathProvider.DirectoryExists(String virtualDir) +6
Sitecore.Pipelines.HttpRequest.FileResolver.Process(HttpRequestArgs 引数) +105 (Object , Object[] ) +64
Sitecore.Pipelines.PipelineMethod.Invoke(Object[] パラメーター) +36
Sitecore.Pipelines.CorePipeline.Run (PipelineArgs args) +140
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists) +158
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain) +64
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args) +50 Sitecore.Nexus.Web.HttpModule.(Object sender, EventArgs e) +326
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

この問題の調査を開始するための推奨事項、またはこの問題の原因は何ですか?

4

1 に答える 1

1

これはバッチ ハンドラーで発生していました。これは、仮想パスを使用せずにサーバー上で要求を再作成していたためです。デフォルトのWebサイトから離れたローカルIISでホストしていたので、パスはhttp://localhost/MYAPP/somecontroller. バッチ ハンドラでリクエストを作成したときに、実行しようとしてhttp://localhost/somecontrollerエラーが発生しました。

サーバー側で実行していたコードは次のとおりです。

var requestUri = new Uri(request.RequestUri, batchRequest.Url);

ローカル開発のために私が変更したもの

var requestUri = new Uri(request.RequestUri, batchRequest.Url.Substring(1));

batchRequest.Url は /controller/method に評価され、最初のスラッシュを削除すると、ローカル アプリ名がパスに保持されていました。

于 2014-11-16T06:06:21.223 に答える