0

我无法理解我的本地机器上的这个错误可能是什么问题。它说与虚拟路径或其他东西有关,但我尝试过研究,我真的没有开始的想法,因为我仍然处于.net学习曲线的步伐

这是主要问题

“/”应用程序中的服务器错误。值不能为空。参数名称:virtualPath 描述:当前Web请求执行过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentNullException:值不能为空。参数名称:virtualPath

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[ArgumentNullException:值不能为空。参数名称: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 args) +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

这是在批处理程序中发生在我身上的,这是因为我在没有虚拟路径的服务器上重新创建请求。我在默认网站之外的本地 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 回答