Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET 3.5无法看到我的代码落后_Asp.net_Code Behind - Fatal编程技术网

ASP.NET 3.5无法看到我的代码落后

ASP.NET 3.5无法看到我的代码落后,asp.net,code-behind,Asp.net,Code Behind,我正在开发一个现有网站的一部分,在尝试将文件上载到服务器时遇到了许多问题。本地运行一切正常,但一旦我将文件放到服务器上,事情就开始崩溃 现在我有一个页面得到了这个错误 分析器错误消息:无法加载类型“[命名空间].[PageName]” 。如果我取出inherits语句,它就会工作。命名空间和pagename在代码隐藏中声明,该代码在页眉中引用 我还注意到,在我之前的所有页面都没有代码落后。当你有一个代码落后文件时,它需要被编译成一个DLL,并且该DLL需要在Web服务器的bin目录中。如果没有继

我正在开发一个现有网站的一部分,在尝试将文件上载到服务器时遇到了许多问题。本地运行一切正常,但一旦我将文件放到服务器上,事情就开始崩溃

现在我有一个页面得到了这个错误

分析器错误消息:无法加载类型“[命名空间].[PageName]”

。如果我取出inherits语句,它就会工作。命名空间和pagename在代码隐藏中声明,该代码在页眉中引用


我还注意到,在我之前的所有页面都没有代码落后。

当你有一个代码落后文件时,它需要被编译成一个DLL,并且该DLL需要在Web服务器的bin目录中。如果没有
继承
,它实际上无法正常工作-那里不会有任何来自代码落后的东西-它可能最初仅显示ok,但不会触发任何事件


如果站点的其余部分都使用了.aspx页面中包含的代码,那么这些页面都是独立的。但是如果您想使用codebehinds,那么您需要发布DLL。

当您有一个codebehind文件时,需要将其编译成DLL,并且该DLL需要位于Web服务器的bin目录中。它不起作用如果没有
继承
,我可以正常工作-那里不会有来自codebehind的任何内容-它最初可能只显示ok,但不会触发任何事件


如果站点的其余部分都是使用.aspx页面中包含的代码完成的,那么这些页面都是独立的。但是,如果要使用codebehinds,则需要发布DLL。

有两种方法可以将文件放到web服务器上

  • 一种选择是编译它并使用“发布”功能,其中所有代码隐藏文件都不在服务器上,而是编译到.dll
  • 另一种方法是不编译该站点,只需将所有aspx ans.cs(或.vb)文件复制到那里,并解压缩即可
实际上有三种,但我认为您现在只需要处理这两种。在“灵活部署”一节中会进一步介绍它们

您的前任显然使用了第一种方法。解决此问题的唯一方法是将编译后的.dll文件从\bin目录中取出,然后使用或之类的工具对其进行反编译。(后者是免费的,前者在有限的试用期内是免费的。)


或者,如果您可以获得完整的源代码,您可以简单地删除所有已经发布的内容,并使用非编译方法发布。当然,会有停机时间,您需要非常仔细地进行测试…

将文件放到web服务器上有两种选择

  • 一种选择是编译它并使用“发布”功能,其中所有代码隐藏文件都不在服务器上,而是编译到.dll
  • 另一种方法是不编译该站点,只需将所有aspx ans.cs(或.vb)文件复制到那里,并解压缩即可
实际上有三种,但我认为您现在只需要处理这两种。在“灵活部署”一节中会进一步介绍它们

您的前任显然使用了第一种方法。解决此问题的唯一方法是将编译后的.dll文件从\bin目录中取出,然后使用或之类的工具对其进行反编译。(后者是免费的,前者在有限的试用期内是免费的。)


或者,如果您可以获得完整的源代码,您可以简单地删除所有已发布的内容,并使用非编译方法发布。当然,会有停机时间,您需要非常仔细地进行测试…

测试启动和运行代码的最简单方法是发布代码。在项目内部Visual Studio右键单击应用程序并单击“发布”,然后在本地系统上创建一个文件夹并仅选择运行此应用程序所需的文件,然后选择“发布”。它将仅复制运行应用程序所需的文件,您可以将这些文件复制到服务器,并且所有操作都应正确无误。我还将复制您的web.config/app.config文件,以确保该文件中的所有内容都正确无误,或在发布完成后从目录中删除该文件。

测试启动并运行代码的最简单方法是发布代码。在Visual Studio中的项目内部,右键单击应用程序,然后单击“发布”对于位置,您只需在本地系统上创建一个文件夹,并仅选择运行此应用程序所需的文件,然后选择“发布”。它将仅复制运行此应用程序所需的文件,您可以将这些文件复制到您的服务器,所有内容都应正确。我还将复制您的web.config/app.config文件,因此请确保发布完成后,该文件中的所有内容都是正确的,或者从目录中删除该文件。

因此,我最终与在该网站上工作的另一个团队的首席开发人员进行了交谈。他解释说,他们进行了解决方案重建,然后只将任何更改的文件移动为*x文件和/bin.dll。出于某种原因,我的subversion客户端没有实际运行当我要求它更新时,请不要更新任何内容,这样我的分支就没有其他组创建的一些新控件。当我构建解决方案时,它没有包含新控件的.dll,因此当我上载我的dll时,新控件没有定义,我得到了相同的消息。当我取下新dll时,我的控件没有定义


无论如何,我已经解决了这个问题。谢谢你的回答。

因此,我最终与在该网站上工作的另一个团队的首席开发人员进行了交谈。他解释说,他们进行解决方案重建,然后只将任何更改移动为*x文件和/bin.dll。出于某种原因,我的subversion客户端在我要求更新时实际上没有更新任何内容,所以我的branch没有一些新控件,不是吗