'/'应用程序中的服务器错误。值不能为null问题

时间:2013-03-14 03:28:00

标签: c# asp.net iis

我无法理解本地计算机上此错误可能存在的问题。 它说了一些与虚拟路径有关的东西,但我尝试过研究,我真的没有想法开始,因为我仍然处于学习曲线的步伐.net

这是主要问题

  '/'应用程序中的服务器错误。值不能为空。参数名称:   virtualPath描述:在此期间发生未处理的异常   执行当前的Web请求。请查看堆栈跟踪   有关错误及其来源的更多信息   代码。

     

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

     

来源错误:

     

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

     

堆栈追踪:

     

[ArgumentNullException:Value不能为null。参数名称:   virtualPath] System.Web.VirtualPath.Create(String virtualPath,   VirtualPathOptions选项)+8956140
  System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(字符串   virtualPath,Boolean isFile)+31
  System.Web.Hosting.MapPathBasedVirtualPathProvider.DirectoryExists(字符串   virtualDir)+6
  Sitecore.Pipelines.HttpRequest.FileResolver.Process(HttpRequestArgs   args)+105(对象,对象[])+64
  Sitecore.Pipelines.PipelineMethod.Invoke(Object [] parameters)+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

任何建议从何处开始调查此问题或可能是此问题的罪魁祸首?

1 个答案:

答案 0 :(得分:0)

这是在批处理程序中发生的,这是因为我在没有虚拟路径的服务器上重新创建请求。我在默认网站上的本地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 /方法,删除第一个斜杠导致本地应用程序名称保留在路径中。