使用 .Net3.5 SP1 部署基于 Web 的 URL 路由网站时出现 ConfigurationErrorsException
我正在将 URL 路由用于基于 Web 的表单和 .NET 3.5 SP1。它在我的开发机器上工作正常,但是当我使用 windowxp 托管它时会导致异常。即使我无法打开主页。任何人请告诉我问题是什么..
Public Sub HyperLinkRoutes()
System.Web.Routing.RouteTable.Routes.Add("Kms_Hyperlink_Document", New System.Web.Routing.Route("GetFiles/Kms_Hyperlink_Document/{DocumentID}", New RouteHandler("~/KMS/PreviewHyperlink.aspx")))
End Sub
public class RouteHandler : IRouteHandler
{
public RouteHandler()
{
}
public RouteHandler(string virtualPath)
{
_virtualPath = virtualPath;
}
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
if (requestContext.RouteData.Values["DocumentID"] != null)
{
var display = BuildManager.CreateInstanceFromVirtualPath(
_virtualPath, typeof(Page)) as Page ;
if (display != null)
{
//display.DocumentID = requestContext.RouteData.Values["DocumentID"] as string;
foreach (var value in requestContext.RouteData.Values)
{
requestContext.HttpContext.Items[value.Key] = value.Value;
}
return display;
}
else
{
return null;
}
}
else
{
return null;
}
}
string _virtualPath;
}
异常信息: 异常类型:ConfigurationErrorsException 异常消息:找不到指定的模块。 (HRESULT 异常:0x8007007E)
堆栈跟踪:位于 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective) 在 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 在 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) 在 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 在 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) 在 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(虚拟目录 vdir,布尔忽略错误) 在System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir,VirtualPath virtualDir,布尔ignoreErrors) 在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) 在System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,布尔noBuild,布尔allowCrossApp,布尔allowBuildInPrecompile) 在System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext上下文,VirtualPath virtualPath,布尔noBuild,布尔allowCrossApp,布尔allowBuildInPrecompile) 在System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext上下文,布尔allowCrossApp,布尔noAssert) 在System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,类型requiredBaseType,HttpContext上下文,布尔allowCrossApp,布尔noAssert) 在System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext上下文,字符串requestType,VirtualPath virtualPath,字符串physicalPath) 在System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext上下文,字符串requestType,VirtualPath virtualPath,字符串physicalPath) 在 System.Web.HttpApplication.MapHttpHandler(HttpContext 上下文,字符串 requestType,VirtualPath 路径,字符串 pathTranslated,布尔值 useAppConfig) 在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean&completedSynchronously)
I am using URL Routing for web based form with .NET 3.5 SP1. Its work fine on my devlopement machine but when I host it with windowxp cause exception. even I m unable to open home page. any one plz what is the problem..
Public Sub HyperLinkRoutes()
System.Web.Routing.RouteTable.Routes.Add("Kms_Hyperlink_Document", New System.Web.Routing.Route("GetFiles/Kms_Hyperlink_Document/{DocumentID}", New RouteHandler("~/KMS/PreviewHyperlink.aspx")))
End Sub
public class RouteHandler : IRouteHandler
{
public RouteHandler()
{
}
public RouteHandler(string virtualPath)
{
_virtualPath = virtualPath;
}
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
if (requestContext.RouteData.Values["DocumentID"] != null)
{
var display = BuildManager.CreateInstanceFromVirtualPath(
_virtualPath, typeof(Page)) as Page ;
if (display != null)
{
//display.DocumentID = requestContext.RouteData.Values["DocumentID"] as string;
foreach (var value in requestContext.RouteData.Values)
{
requestContext.HttpContext.Items[value.Key] = value.Value;
}
return display;
}
else
{
return null;
}
}
else
{
return null;
}
}
string _virtualPath;
}
Exception information:
Exception type: ConfigurationErrorsException
Exception message: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Stack trace: at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
at System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)
at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)
at System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir)
at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要 IIS 6.0 或更高版本才能完成这些工作。 XP仅提供IIS 5.1。你可以尝试一下 IIS Express 之类的东西。
You need IIS 6.0 or higher for that stuff. XP only provides IIS 5.1. You could try the IIS Express thingy.