我正在开发一块现有的网站,并有很多问题试图将我的文件上传到服务器。一切运行良好本地,但一旦我把我的文件在服务器上的东西开始打破。ASP.NET 3.5无法看到我的代码
现在我有一个页面,得到这个错误
“分析器错误信息:‘[命名空间] [页面名称]’未能加载类型
如果我走了。这个名字空间和pagename是在后面的代码中声明的,这在页头中被引用。
我也刚刚注意到,在我之前的所有页面都没有代码。
我正在开发一块现有的网站,并有很多问题试图将我的文件上传到服务器。一切运行良好本地,但一旦我把我的文件在服务器上的东西开始打破。ASP.NET 3.5无法看到我的代码
现在我有一个页面,得到这个错误
“分析器错误信息:‘[命名空间] [页面名称]’未能加载类型
如果我走了。这个名字空间和pagename是在后面的代码中声明的,这在页头中被引用。
我也刚刚注意到,在我之前的所有页面都没有代码。
因此,我最终与在该网站上工作的其他团队的首席开发人员进行了交谈。他解释说,他们做一个解决方案重建,然后将任何更改为* x文件和/ bin .dll。出于某种原因,当我要求它更新时,我的Subversion客户端并没有实际更新任何内容,所以我的分支没有其他小组制作的新控件。当我构建我的解决方案时,它没有包含新控件的.dll文件,所以当我上传我的dll时,新的控件没有定义,并且我得到了相同的消息。当我把新的dll放下时,我的控件没有被定义。
无论如何,我解决了这个问题。感谢您的答案。
当你有一个代码隐藏文件时,它需要被编译成一个DLL,并且该DLL需要位于Web服务器的bin目录中。如果没有Inherits
,它实际上并不能正常工作 - 你的代码隐藏内容不会在那里 - 它最初可能只显示正常,但没有任何事件会触发。
如果网站的其余部分全部使用.aspx页面中包含的代码完成,那么这些页面都是独立的。但是如果你想使用代码隐藏,那么你需要发布DLL。
在Web服务器上放置文件有两种选择。
实际上有三个,但我认为你现在只需要处理这两个。它们在“灵活部署”部分的http://msdn.microsoft.com/en-us/library/ms178466(v=vs.100).aspx中进一步描述。
你的前任显然使用了第一种方法。解决此问题的唯一方法是将编译后的.dll文件从\ bin目录中取出,并使用Reflector或Teleriks's Just Decompile之类的工具对其进行反编译。 (后者是免费的,前者在有限的试用期内免费)
另外,如果你可以得到完整的源代码,你可以简单地删除所有的内容,并使用非编译的方法。当然,会有停机时间,你需要非常仔细地测试...
测试最简单的方法来启动你的代码并发布代码。在Visual Studio项目的内部右键单击您的应用程序,然后单击发布,然后选择位置,您可以在本地系统上创建一个文件夹,然后选择仅运行此应用程序所需的文件,然后选择发布。它只会复制运行应用程序所需的文件,并且您可以将这些文件复制到您的服务器,并且所有内容都应该正确。我还将复制你的web.config/app.config文件,确保文件中的所有内容都是正确的,或者在发布完成后从目录中删除该文件。
请分享代码和页面指令。 – NoviceProgrammer 2013-03-06 18:15:49