C# 找不到自定义控件的ASP.NET文件

C# 找不到自定义控件的ASP.NET文件,c#,asp.net,custom-controls,C#,Asp.net,Custom Controls,我已经在两台服务器上部署了相同的网站应用程序。在服务器A上,该应用程序工作正常。在服务器B上,尝试查看加载特定自定义控件的页面时,会出现以下错误消息 Error Message: The file '/Website/Controls/MyCustomControl.ascx' does not exist. Stack Trace: at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.

我已经在两台服务器上部署了相同的网站应用程序。在服务器A上,该应用程序工作正常。在服务器B上,尝试查看加载特定自定义控件的页面时,会出现以下错误消息

Error Message: The file '/Website/Controls/MyCustomControl.ascx' does not exist.
Stack Trace: at System.Web.UI.Util.CheckVirtualFileExists(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.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at
System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at 
System.Web.UI.TemplateControl.LoadControl(String virtualPath)
这两台服务器使用的是相同的版本,以及Microsoft Server的service pack

我已验证此控件的已编译DLL是否在网站的bin目录中,以及两个网站部署的bin是否相同。除了使用的连接字符串外,这两个部署的web配置也相同。这两个网站上的权限对应用程序池、IUSR和用于托管网站的帐户具有完全控制权

我还验证了应该驻留在GAC中的应用程序引用的所有DLL都已安装到两台服务器上的GAC中


此特定控件的加载方式与其他自定义控件的加载方式相同,这些自定义控件已验证可在两个部署上工作。

virtualPath参数/实例是什么样子的,并且该用户控件是部署/项目的一部分吗?您是否验证该文件确实存在于服务器B上的文件系统上,服务器A(我想是IIS)的网站上是否有虚拟目录?您是使用web部署还是通过文件系统部署?发布设置是否设置为清除目录?虚拟路径为“~/controls/MyCustomControl.ascx”。自定义控件在部署之前驻留在“website/controls/MyCustomControl.ascx”中,并在构建过程中编译到bin中的DLL中。此DLL存在于服务器B上,在部署之前,IIS中没有服务器A的虚拟目录“website/controls/MyCustomControl.ascx”,并且会被编译为DLL。如果您正在编译控件,则不应尝试在运行时从文件编译和构建它,这就是上面的操作所做的。。使用
LoadControl(Type,Object[])
其中
Type
是控件的类型
virtualPath
参数/实例是什么样子的,并且该用户控件是部署/项目的一部分吗?您是否验证了该文件确实存在于服务器B的文件系统中,服务器A的网站上是否有虚拟目录(检查,我猜是IIS)您使用的是web部署还是通过文件系统部署?发布设置是否设置为清除目录?虚拟路径为“~/controls/MyCustomControl.ascx”。自定义控件位于“website/controls/MyCustomControl.ascx”中部署之前,并在生成过程中编译到bin中的DLL。此DLL存在于服务器B上,并且IIS中没有服务器a的虚拟目录。“网站/controls/MyCustomControl.ascx”在部署之前,如果您正在编译控件,则不应尝试在运行时从文件编译和构建它,这是上面的操作所做的。使用
LoadControl(Type,Object[])
其中
Type
是控件的类型